Skip to content

Commit ca03553

Browse files
committed
init
0 parents  commit ca03553

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+4296
-0
lines changed

.clang-format

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
Language: Cpp
3+
# BasedOnStyle: WebKit
4+
AccessModifierOffset: -2
5+
AlignAfterOpenBracket: BlockIndent
6+
AlignArrayOfStructures: Left
7+
AlignConsecutiveAssignments: true
8+
AlignEscapedNewlinesLeft: false
9+
AlignOperands: false
10+
AlignTrailingComments: true
11+
AllowAllParametersOfDeclarationOnNextLine: true
12+
AllowShortBlocksOnASingleLine: false
13+
AllowShortCaseLabelsOnASingleLine: false
14+
AllowShortFunctionsOnASingleLine: All
15+
AllowShortIfStatementsOnASingleLine: false
16+
AllowShortLoopsOnASingleLine: false
17+
AlwaysBreakAfterDefinitionReturnType: false
18+
AlwaysBreakBeforeMultilineStrings: false
19+
AlwaysBreakTemplateDeclarations: true
20+
BinPackArguments: true
21+
BinPackParameters: true
22+
BreakBeforeBinaryOperators: All
23+
BreakBeforeBraces: Attach
24+
BreakBeforeTernaryOperators: true
25+
BreakConstructorInitializersBeforeComma: true
26+
BreakStringLiterals: false
27+
ColumnLimit: 120
28+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
29+
ConstructorInitializerIndentWidth: 2
30+
ContinuationIndentWidth: 2
31+
Cpp11BracedListStyle: true
32+
DerivePointerAlignment: false
33+
DisableFormat: false
34+
ExperimentalAutoDetectBinPacking: false
35+
FixNamespaceComments: false
36+
ForEachMacros: [ foreach ]
37+
IndentCaseLabels: true
38+
IndentWidth: 2
39+
IndentWrappedFunctionNames: false
40+
KeepEmptyLinesAtTheStartOfBlocks: true
41+
MacroBlockBegin: ''
42+
MacroBlockEnd: ''
43+
MaxEmptyLinesToKeep: 1
44+
NamespaceIndentation: Inner
45+
ObjCBlockIndentWidth: 2
46+
ObjCSpaceAfterProperty: true
47+
ObjCSpaceBeforeProtocolList: true
48+
PenaltyBreakBeforeFirstCallParameter: 19
49+
PenaltyBreakAssignment: 200
50+
PenaltyBreakComment: 300
51+
PenaltyBreakFirstLessLess: 200
52+
PenaltyBreakString: 10000
53+
PenaltyExcessCharacter: 300
54+
PenaltyBreakOpenParenthesis: 1
55+
PenaltyReturnTypeOnItsOwnLine: 60
56+
PointerAlignment: Left
57+
SpaceAfterCStyleCast: false
58+
SpaceBeforeAssignmentOperators: true
59+
# SpaceBeforeParens: ControlStatements
60+
SpaceBeforeParens: false
61+
SpaceInEmptyParentheses: false
62+
SpacesBeforeTrailingComments: 1
63+
SpacesInAngles: false
64+
SpacesInContainerLiterals: true
65+
SpacesInCStyleCastParentheses: false
66+
SpacesInParentheses: false
67+
SpacesInSquareBrackets: false
68+
Standard: Cpp11
69+
TabWidth: 2
70+
UseTab: Never
71+
SortIncludes: false

.copier-answers.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Changes here will be overwritten by Copier
2+
_commit: 4ea6a58
3+
_src_path: https://github.com/python-project-templates/base.git
4+
add_docs: true
5+
add_extension: cppjswasm
6+
add_wiki: true
7+
email: 3105306+timkpaine@users.noreply.github.com
8+
github: python-project-templates
9+
project_description: A C++-JavaScript-Python project template
10+
project_name: python template cppjswasm
11+
python_version_primary: '3.11'
12+
team: Python Project Template Authors

.gitattributes

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
examples/* linguist-documentation
2+
docs/* linguist-documentation
3+
*.ipynb linguist-documentation
4+
Makefile linguist-documentation
5+
6+
*.cpp text=auto eol=lf
7+
*.css text=auto eol=lf
8+
*.hpp text=auto eol=lf
9+
*.html text=auto eol=lf
10+
*.js text=auto eol=lf
11+
*.json text=auto eol=lf
12+
*.less text=auto eol=lf
13+
*.md text=auto eol=lf
14+
*.py text=auto eol=lf
15+
*.toml text=auto eol=lf
16+
*.ts text=auto eol=lf
17+
*.yaml text=auto eol=lf

.github/CODE_OF_CONDUCT.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at 3105306+timkpaine@users.noreply.github.com. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Desktop (please complete the following information):**
27+
- OS: [e.g. iOS]
28+
- Browser [e.g. chrome, safari]
29+
- Version [e.g. 22]
30+
31+
**Smartphone (please complete the following information):**
32+
- Device: [e.g. iPhone6]
33+
- OS: [e.g. iOS8.1]
34+
- Browser [e.g. stock browser, safari]
35+
- Version [e.g. 22]
36+
37+
**Additional context**
38+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/dependabot.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
labels:
8+
- "part: github_actions"
9+
10+
- package-ecosystem: "pip"
11+
directory: "/"
12+
schedule:
13+
interval: "monthly"
14+
labels:
15+
- "lang: python"
16+
- "part: dependencies"
17+
18+
- package-ecosystem: "npm"
19+
directory: "/js"
20+
schedule:
21+
interval: "monthly"
22+
labels:
23+
- "lang: javascript"
24+
- "part: dependencies"

.github/workflows/build.yaml

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
name: Build Status
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
tags:
8+
- v*
9+
paths-ignore:
10+
- LICENSE
11+
- README.md
12+
pull_request:
13+
branches:
14+
- main
15+
workflow_dispatch:
16+
17+
concurrency:
18+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
19+
cancel-in-progress: true
20+
21+
permissions:
22+
contents: read
23+
checks: write
24+
pull-requests: write
25+
26+
jobs:
27+
build:
28+
runs-on: ${{ matrix.os }}
29+
30+
strategy:
31+
matrix:
32+
os: [ubuntu-latest, macos-latest, windows-latest]
33+
python-version: ["3.11"]
34+
cibuildwheel: ["cp311"]
35+
node-version: [20.x]
36+
37+
steps:
38+
- uses: actions/checkout@v6
39+
40+
- uses: actions-ext/python/setup@main
41+
with:
42+
version: ${{ matrix.python-version }}
43+
44+
- uses: actions-ext/node/setup@main
45+
with:
46+
version: 22.x
47+
48+
- uses: mymindstorm/setup-emsdk@v14
49+
50+
- name: Install dependencies
51+
run: make develop
52+
if: matrix.os != 'windows-latest'
53+
54+
- name: Install dependencies
55+
run: |
56+
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
57+
make develop
58+
shell: cmd
59+
if: matrix.os == 'windows-latest'
60+
61+
- name: Lint
62+
run: make lint
63+
if: matrix.os == 'ubuntu-latest'
64+
65+
- name: Checks
66+
run: make checks
67+
if: matrix.os == 'ubuntu-latest'
68+
69+
- name: Build
70+
run: make build
71+
72+
- name: Test
73+
run: make coverage
74+
75+
- name: Upload test results (Python)
76+
uses: actions/upload-artifact@v6
77+
with:
78+
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
79+
path: '**/junit.xml'
80+
if: matrix.os == 'ubuntu-latest'
81+
82+
- name: Publish Unit Test Results
83+
uses: EnricoMi/publish-unit-test-result-action@v2
84+
with:
85+
files: '**/junit.xml'
86+
if: matrix.os == 'ubuntu-latest'
87+
88+
- name: Upload coverage
89+
uses: codecov/codecov-action@v5
90+
with:
91+
token: ${{ secrets.CODECOV_TOKEN }}
92+
93+
- name: Set up QEMU
94+
uses: docker/setup-qemu-action@v3
95+
with:
96+
platforms: all
97+
if: runner.os == 'Linux' && runner.arch == 'X64'
98+
99+
- name: Make dist
100+
run: |
101+
make dist-py-sdist
102+
make dist-py-wheel
103+
make dist-check
104+
env:
105+
CIBW_BUILD: "${{ matrix.cibuildwheel }}-manylinux*"
106+
if: matrix.os == 'ubuntu-latest'
107+
108+
- name: Make dist
109+
run: |
110+
make dist-py-wheel
111+
make dist-check
112+
env:
113+
CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0
114+
if: matrix.os != 'ubuntu-latest'
115+
116+
- uses: actions/upload-artifact@v6
117+
with:
118+
name: dist-${{matrix.os}}
119+
path: dist

0 commit comments

Comments
 (0)