apyds 0.0.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- apyds-0.0.12/.clang-format +120 -0
- apyds-0.0.12/.devcontainer/devcontainer.json +31 -0
- apyds-0.0.12/.devcontainer/post-create.sh +6 -0
- apyds-0.0.12/.github/dependabot.yml +37 -0
- apyds-0.0.12/.github/workflows/bnf-jest.yml +86 -0
- apyds-0.0.12/.github/workflows/bnf-pytest.yml +87 -0
- apyds-0.0.12/.github/workflows/ctest.yml +29 -0
- apyds-0.0.12/.github/workflows/docs.yml +37 -0
- apyds-0.0.12/.github/workflows/egg-jest.yml +80 -0
- apyds-0.0.12/.github/workflows/egg-pytest.yml +81 -0
- apyds-0.0.12/.github/workflows/example.yml +88 -0
- apyds-0.0.12/.github/workflows/jest.yml +93 -0
- apyds-0.0.12/.github/workflows/pre-commit.yml +16 -0
- apyds-0.0.12/.github/workflows/pytest.yml +117 -0
- apyds-0.0.12/.gitignore +131 -0
- apyds-0.0.12/.pre-commit-config.yaml +19 -0
- apyds-0.0.12/CMakeLists.txt +59 -0
- apyds-0.0.12/CONTRIBUTING.md +146 -0
- apyds-0.0.12/LICENSE.md +660 -0
- apyds-0.0.12/PKG-INFO +408 -0
- apyds-0.0.12/README.md +390 -0
- apyds-0.0.12/apyds/.gitignore +1 -0
- apyds-0.0.12/apyds/__init__.py +25 -0
- apyds-0.0.12/apyds/_ds.pyi +676 -0
- apyds-0.0.12/apyds/buffer_size.py +55 -0
- apyds-0.0.12/apyds/common.py +125 -0
- apyds-0.0.12/apyds/ds.cc +171 -0
- apyds-0.0.12/apyds/ds.py +13 -0
- apyds-0.0.12/apyds/item_t.py +31 -0
- apyds-0.0.12/apyds/list_t.py +49 -0
- apyds-0.0.12/apyds/py.typed +0 -0
- apyds-0.0.12/apyds/rule_t.py +144 -0
- apyds-0.0.12/apyds/search_t.py +79 -0
- apyds-0.0.12/apyds/string_t.py +22 -0
- apyds-0.0.12/apyds/term_t.py +126 -0
- apyds-0.0.12/apyds/variable_t.py +31 -0
- apyds-0.0.12/atsds/.gitignore +4 -0
- apyds-0.0.12/atsds/ds.cc +189 -0
- apyds-0.0.12/atsds/index.mts +623 -0
- apyds-0.0.12/biome.json +18 -0
- apyds-0.0.12/bnf/Ds.g4 +37 -0
- apyds-0.0.12/bnf/Dsp.g4 +48 -0
- apyds-0.0.12/bnf/README.md +193 -0
- apyds-0.0.12/bnf/apyds_bnf/__init__.py +103 -0
- apyds-0.0.12/bnf/apyds_bnf/py.typed +0 -0
- apyds-0.0.12/bnf/atsds_bnf/index.d.mts +13 -0
- apyds-0.0.12/bnf/atsds_bnf/index.mjs +137 -0
- apyds-0.0.12/bnf/jest.config.mjs +4 -0
- apyds-0.0.12/bnf/package-lock.json +9126 -0
- apyds-0.0.12/bnf/package.json +41 -0
- apyds-0.0.12/bnf/pyproject.toml +51 -0
- apyds-0.0.12/bnf/rollup.config.mjs +22 -0
- apyds-0.0.12/bnf/setup.py +49 -0
- apyds-0.0.12/bnf/tests/test_parse_unparse.mjs +175 -0
- apyds-0.0.12/bnf/tests/test_parse_unparse.py +181 -0
- apyds-0.0.12/bnf/uv.lock +277 -0
- apyds-0.0.12/docs/api/cpp.md +622 -0
- apyds-0.0.12/docs/api/python.md +538 -0
- apyds-0.0.12/docs/api/typescript.md +550 -0
- apyds-0.0.12/docs/concepts/rules.md +392 -0
- apyds-0.0.12/docs/concepts/search.md +311 -0
- apyds-0.0.12/docs/concepts/terms.md +377 -0
- apyds-0.0.12/docs/examples/Sudoku.ejs +144 -0
- apyds-0.0.12/docs/examples/Sudoku.vue +401 -0
- apyds-0.0.12/docs/examples/basic.md +166 -0
- apyds-0.0.12/docs/examples/sudoku.md +43 -0
- apyds-0.0.12/docs/getting-started/installation.md +206 -0
- apyds-0.0.12/docs/getting-started/quickstart.md +241 -0
- apyds-0.0.12/docs/index.md +61 -0
- apyds-0.0.12/docs/support-packages/bnf.md +123 -0
- apyds-0.0.12/docs/support-packages/egg.md +196 -0
- apyds-0.0.12/egg/README.md +229 -0
- apyds-0.0.12/egg/apyds_egg/__init__.py +215 -0
- apyds-0.0.12/egg/apyds_egg/py.typed +0 -0
- apyds-0.0.12/egg/atsds_egg/index.mts +259 -0
- apyds-0.0.12/egg/jest.config.mjs +8 -0
- apyds-0.0.12/egg/package-lock.json +7239 -0
- apyds-0.0.12/egg/package.json +42 -0
- apyds-0.0.12/egg/pyproject.toml +51 -0
- apyds-0.0.12/egg/rollup.config.mjs +27 -0
- apyds-0.0.12/egg/tests/test_egraph.mjs +226 -0
- apyds-0.0.12/egg/tests/test_egraph.py +224 -0
- apyds-0.0.12/egg/tsconfig.json +11 -0
- apyds-0.0.12/egg/uv.lock +295 -0
- apyds-0.0.12/examples/main.cc +68 -0
- apyds-0.0.12/examples/main.mjs +50 -0
- apyds-0.0.12/examples/main.py +48 -0
- apyds-0.0.12/include/ds/config.hh +17 -0
- apyds-0.0.12/include/ds/ds.hh +11 -0
- apyds-0.0.12/include/ds/helper.hh +30 -0
- apyds-0.0.12/include/ds/item.hh +52 -0
- apyds-0.0.12/include/ds/list.hh +126 -0
- apyds-0.0.12/include/ds/rule.hh +128 -0
- apyds-0.0.12/include/ds/search.hh +71 -0
- apyds-0.0.12/include/ds/string.hh +97 -0
- apyds-0.0.12/include/ds/term.hh +167 -0
- apyds-0.0.12/include/ds/utility.hh +35 -0
- apyds-0.0.12/include/ds/variable.hh +52 -0
- apyds-0.0.12/jest.config.mjs +8 -0
- apyds-0.0.12/mkdocs.yml +106 -0
- apyds-0.0.12/package-lock.json +7270 -0
- apyds-0.0.12/package.json +41 -0
- apyds-0.0.12/ports/ds/portfile.cmake +19 -0
- apyds-0.0.12/ports/ds/vcpkg.json +17 -0
- apyds-0.0.12/pyproject.toml +63 -0
- apyds-0.0.12/rollup.config.mjs +30 -0
- apyds-0.0.12/src/ground.cc +108 -0
- apyds-0.0.12/src/item.cc +27 -0
- apyds-0.0.12/src/list.cc +131 -0
- apyds-0.0.12/src/match.cc +306 -0
- apyds-0.0.12/src/rename.cc +158 -0
- apyds-0.0.12/src/rule.cc +142 -0
- apyds-0.0.12/src/search.cc +123 -0
- apyds-0.0.12/src/string.cc +102 -0
- apyds-0.0.12/src/term.cc +114 -0
- apyds-0.0.12/src/utility.cc +45 -0
- apyds-0.0.12/src/variable.cc +32 -0
- apyds-0.0.12/tests/test_ground.cc +132 -0
- apyds-0.0.12/tests/test_item.cc +65 -0
- apyds-0.0.12/tests/test_item.mjs +55 -0
- apyds-0.0.12/tests/test_item.py +64 -0
- apyds-0.0.12/tests/test_list.cc +162 -0
- apyds-0.0.12/tests/test_list.mjs +64 -0
- apyds-0.0.12/tests/test_list.py +76 -0
- apyds-0.0.12/tests/test_match.cc +106 -0
- apyds-0.0.12/tests/test_rename.cc +148 -0
- apyds-0.0.12/tests/test_rule.cc +182 -0
- apyds-0.0.12/tests/test_rule.mjs +123 -0
- apyds-0.0.12/tests/test_rule.py +135 -0
- apyds-0.0.12/tests/test_search.cc +104 -0
- apyds-0.0.12/tests/test_search.mjs +90 -0
- apyds-0.0.12/tests/test_search.py +96 -0
- apyds-0.0.12/tests/test_string.cc +136 -0
- apyds-0.0.12/tests/test_string.mjs +51 -0
- apyds-0.0.12/tests/test_string.py +60 -0
- apyds-0.0.12/tests/test_term.cc +201 -0
- apyds-0.0.12/tests/test_term.mjs +124 -0
- apyds-0.0.12/tests/test_term.py +135 -0
- apyds-0.0.12/tests/test_variable.cc +65 -0
- apyds-0.0.12/tests/test_variable.mjs +55 -0
- apyds-0.0.12/tests/test_variable.py +64 -0
- apyds-0.0.12/tsconfig.json +11 -0
- apyds-0.0.12/uv.lock +829 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
AccessModifierOffset: -2
|
|
2
|
+
AlignAfterOpenBracket: BlockIndent
|
|
3
|
+
AlignArrayOfStructures: None
|
|
4
|
+
AlignConsecutiveAssignments: false
|
|
5
|
+
AlignConsecutiveBitFields: false
|
|
6
|
+
AlignConsecutiveDeclarations: false
|
|
7
|
+
AlignConsecutiveMacros: false
|
|
8
|
+
AlignEscapedNewlines: DontAlign
|
|
9
|
+
AlignOperands: Align
|
|
10
|
+
AlignTrailingComments: false
|
|
11
|
+
AllowAllArgumentsOnNextLine: false
|
|
12
|
+
AllowAllParametersOfDeclarationOnNextLine: false
|
|
13
|
+
AllowShortBlocksOnASingleLine: false
|
|
14
|
+
AllowShortCaseLabelsOnASingleLine: false
|
|
15
|
+
AllowShortEnumsOnASingleLine: false
|
|
16
|
+
AllowShortFunctionsOnASingleLine: Empty
|
|
17
|
+
AllowShortIfStatementsOnASingleLine: false
|
|
18
|
+
AllowShortLambdasOnASingleLine: All
|
|
19
|
+
AllowShortLoopsOnASingleLine: false
|
|
20
|
+
AlwaysBreakAfterReturnType: None
|
|
21
|
+
AlwaysBreakBeforeMultilineStrings: false
|
|
22
|
+
AlwaysBreakTemplateDeclarations: Yes
|
|
23
|
+
AttributeMacros: ["__restrict"]
|
|
24
|
+
BinPackArguments: false
|
|
25
|
+
BinPackParameters: false
|
|
26
|
+
BitFieldColonSpacing: Both
|
|
27
|
+
BreakAfterAttributes: Never
|
|
28
|
+
BreakBeforeBinaryOperators: None
|
|
29
|
+
BreakBeforeBraces: Attach
|
|
30
|
+
BreakBeforeConceptDeclarations: Always
|
|
31
|
+
BreakBeforeInlineASMColon: OnlyMultiline
|
|
32
|
+
BreakBeforeTernaryOperators: false
|
|
33
|
+
BreakConstructorInitializers: AfterColon
|
|
34
|
+
BreakInheritanceList: AfterColon
|
|
35
|
+
BreakStringLiterals: true
|
|
36
|
+
ColumnLimit: 150
|
|
37
|
+
CompactNamespaces: false
|
|
38
|
+
ConstructorInitializerIndentWidth: 4
|
|
39
|
+
ContinuationIndentWidth: 4
|
|
40
|
+
Cpp11BracedListStyle: true
|
|
41
|
+
DerivePointerAlignment: false
|
|
42
|
+
DisableFormat: false
|
|
43
|
+
EmptyLineAfterAccessModifier: Never
|
|
44
|
+
EmptyLineBeforeAccessModifier: Leave
|
|
45
|
+
ExperimentalAutoDetectBinPacking: false
|
|
46
|
+
FixNamespaceComments: true
|
|
47
|
+
ForEachMacros: []
|
|
48
|
+
IfMacros: []
|
|
49
|
+
IncludeBlocks: Preserve
|
|
50
|
+
IndentAccessModifiers: false
|
|
51
|
+
IndentCaseBlocks: false
|
|
52
|
+
IndentCaseLabels: false
|
|
53
|
+
IndentExternBlock: Indent
|
|
54
|
+
IndentGotoLabels: true
|
|
55
|
+
IndentPPDirectives: None
|
|
56
|
+
IndentRequires: true
|
|
57
|
+
IndentWidth: 4
|
|
58
|
+
IndentWrappedFunctionNames: false
|
|
59
|
+
InsertBraces: true
|
|
60
|
+
InsertNewlineAtEOF: true
|
|
61
|
+
InsertTrailingCommas: Wrapped
|
|
62
|
+
KeepEmptyLinesAtTheStartOfBlocks: false
|
|
63
|
+
LambdaBodyIndentation: Signature
|
|
64
|
+
Language: Cpp
|
|
65
|
+
LineEnding: LF
|
|
66
|
+
MaxEmptyLinesToKeep: 1
|
|
67
|
+
NamespaceIndentation: All
|
|
68
|
+
NamespaceMacros: []
|
|
69
|
+
PPIndentWidth: 0
|
|
70
|
+
PackConstructorInitializers: CurrentLine
|
|
71
|
+
PenaltyBreakAssignment: 2
|
|
72
|
+
PenaltyBreakBeforeFirstCallParameter: 1
|
|
73
|
+
PenaltyBreakComment: 300
|
|
74
|
+
PenaltyBreakFirstLessLess: 120
|
|
75
|
+
PenaltyBreakOpenParenthesis: 0
|
|
76
|
+
PenaltyBreakString: 1000
|
|
77
|
+
PenaltyBreakTemplateDeclaration: 10
|
|
78
|
+
PenaltyExcessCharacter: 1000000
|
|
79
|
+
PenaltyIndentedWhitespace: 0
|
|
80
|
+
PenaltyReturnTypeOnItsOwnLine: 200
|
|
81
|
+
PointerAlignment: Left
|
|
82
|
+
QualifierAlignment: Left
|
|
83
|
+
ReferenceAlignment: Left
|
|
84
|
+
ReflowComments: true
|
|
85
|
+
RemoveBracesLLVM: false
|
|
86
|
+
RemoveSemicolon: true
|
|
87
|
+
RequiresClausePosition: OwnLine
|
|
88
|
+
RequiresExpressionIndentation: Keyword
|
|
89
|
+
SeparateDefinitionBlocks: Leave
|
|
90
|
+
ShortNamespaceLines: 0
|
|
91
|
+
SortIncludes: CaseSensitive
|
|
92
|
+
SortUsingDeclarations: Lexicographic
|
|
93
|
+
SpaceAfterCStyleCast: false
|
|
94
|
+
SpaceAfterLogicalNot: false
|
|
95
|
+
SpaceAfterTemplateKeyword: false
|
|
96
|
+
SpaceAroundPointerQualifiers: Before
|
|
97
|
+
SpaceBeforeAssignmentOperators: true
|
|
98
|
+
SpaceBeforeCaseColon: false
|
|
99
|
+
SpaceBeforeCpp11BracedList: false
|
|
100
|
+
SpaceBeforeCtorInitializerColon: true
|
|
101
|
+
SpaceBeforeInheritanceColon: true
|
|
102
|
+
SpaceBeforeParens: ControlStatements
|
|
103
|
+
SpaceBeforeRangeBasedForLoopColon: true
|
|
104
|
+
SpaceBeforeSquareBrackets: false
|
|
105
|
+
SpaceInEmptyBlock: true
|
|
106
|
+
SpaceInEmptyParentheses: false
|
|
107
|
+
SpacesBeforeTrailingComments: 1
|
|
108
|
+
SpacesInAngles: false
|
|
109
|
+
SpacesInCStyleCastParentheses: false
|
|
110
|
+
SpacesInConditionalStatement: false
|
|
111
|
+
SpacesInContainerLiterals: false
|
|
112
|
+
SpacesInParentheses: false
|
|
113
|
+
SpacesInSquareBrackets: false
|
|
114
|
+
Standard: Latest
|
|
115
|
+
StatementAttributeLikeMacros: []
|
|
116
|
+
StatementMacros: []
|
|
117
|
+
TypenameMacros: []
|
|
118
|
+
TabWidth: 4
|
|
119
|
+
UseTab: Never
|
|
120
|
+
WhitespaceSensitiveMacros: []
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "DS Development Container",
|
|
3
|
+
"image": "mcr.microsoft.com/devcontainers/base:debian",
|
|
4
|
+
"features": {
|
|
5
|
+
"ghcr.io/devcontainers/features/python:1": {
|
|
6
|
+
"installJupyterlab": true,
|
|
7
|
+
"version": "latest"
|
|
8
|
+
},
|
|
9
|
+
"ghcr.io/devcontainers/features/node:1": {
|
|
10
|
+
"version": "latest"
|
|
11
|
+
},
|
|
12
|
+
"ghcr.io/devcontainers-extra/features/uv:1": {
|
|
13
|
+
"version": "latest"
|
|
14
|
+
},
|
|
15
|
+
"ghcr.io/ebaskoro/devcontainer-features/emscripten:1": {
|
|
16
|
+
"version": "latest"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"postCreateCommand": ".devcontainer/post-create.sh",
|
|
20
|
+
"customizations": {
|
|
21
|
+
"vscode": {
|
|
22
|
+
"extensions": [
|
|
23
|
+
"ms-vscode.cpptools-extension-pack",
|
|
24
|
+
"clang-format.vscode-clang-format",
|
|
25
|
+
"ms-python.python",
|
|
26
|
+
"charliermarsh.ruff",
|
|
27
|
+
"biomejs.biome"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
|
|
4
|
+
- package-ecosystem: "github-actions"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
|
|
9
|
+
- package-ecosystem: "npm"
|
|
10
|
+
directory: "/"
|
|
11
|
+
schedule:
|
|
12
|
+
interval: "weekly"
|
|
13
|
+
|
|
14
|
+
- package-ecosystem: "npm"
|
|
15
|
+
directory: "/bnf"
|
|
16
|
+
schedule:
|
|
17
|
+
interval: "weekly"
|
|
18
|
+
|
|
19
|
+
- package-ecosystem: "npm"
|
|
20
|
+
directory: "/egg"
|
|
21
|
+
schedule:
|
|
22
|
+
interval: "weekly"
|
|
23
|
+
|
|
24
|
+
- package-ecosystem: "uv"
|
|
25
|
+
directory: "/"
|
|
26
|
+
schedule:
|
|
27
|
+
interval: "weekly"
|
|
28
|
+
|
|
29
|
+
- package-ecosystem: "uv"
|
|
30
|
+
directory: "/bnf"
|
|
31
|
+
schedule:
|
|
32
|
+
interval: "weekly"
|
|
33
|
+
|
|
34
|
+
- package-ecosystem: "uv"
|
|
35
|
+
directory: "/egg"
|
|
36
|
+
schedule:
|
|
37
|
+
interval: "weekly"
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
name: bnf-jest
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
- pull_request
|
|
7
|
+
- push
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
NODE_LATEST_VERSION: '24'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
jest:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
node-version: ['20', '22', '24']
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- name: install antlr4
|
|
25
|
+
run: pip install antlr4-tools
|
|
26
|
+
|
|
27
|
+
- uses: actions/setup-node@v6
|
|
28
|
+
with:
|
|
29
|
+
node-version: ${{ matrix.node-version }}
|
|
30
|
+
cache: 'npm'
|
|
31
|
+
|
|
32
|
+
- name: dependencies
|
|
33
|
+
working-directory: bnf
|
|
34
|
+
run: npm ci
|
|
35
|
+
|
|
36
|
+
- name: jest
|
|
37
|
+
working-directory: bnf
|
|
38
|
+
run: npm run all
|
|
39
|
+
|
|
40
|
+
npm:
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
needs: jest
|
|
43
|
+
|
|
44
|
+
if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags')"
|
|
45
|
+
|
|
46
|
+
environment:
|
|
47
|
+
name: npm-bnf
|
|
48
|
+
url: https://www.npmjs.com/package/atsds-bnf
|
|
49
|
+
permissions:
|
|
50
|
+
id-token: write
|
|
51
|
+
|
|
52
|
+
steps:
|
|
53
|
+
- uses: actions/checkout@v6
|
|
54
|
+
|
|
55
|
+
- name: recovery tag information
|
|
56
|
+
run: git fetch --tags --force
|
|
57
|
+
|
|
58
|
+
- name: install antlr4
|
|
59
|
+
run: pip install antlr4-tools
|
|
60
|
+
|
|
61
|
+
- uses: actions/setup-node@v6
|
|
62
|
+
with:
|
|
63
|
+
node-version: ${{ env.NODE_LATEST_VERSION }}
|
|
64
|
+
cache: 'npm'
|
|
65
|
+
|
|
66
|
+
- name: version
|
|
67
|
+
working-directory: bnf
|
|
68
|
+
run: npm version from-git --no-git-tag-version
|
|
69
|
+
|
|
70
|
+
- name: extract tag
|
|
71
|
+
run: |
|
|
72
|
+
GIT_TAG=${GITHUB_REF#refs/tags/}
|
|
73
|
+
TAG=$(echo $GIT_TAG | sed -E 's/^v//' | sed -E 's/[0-9\.-]//g' | sed -E 's/^$/latest/g')
|
|
74
|
+
echo TAG=$TAG >> $GITHUB_ENV
|
|
75
|
+
|
|
76
|
+
- name: dependencies
|
|
77
|
+
working-directory: bnf
|
|
78
|
+
run: npm ci
|
|
79
|
+
|
|
80
|
+
- name: build
|
|
81
|
+
working-directory: bnf
|
|
82
|
+
run: npm run build
|
|
83
|
+
|
|
84
|
+
- name: publish
|
|
85
|
+
working-directory: bnf
|
|
86
|
+
run: npm publish --tag $TAG
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
name: bnf-pytest
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
- pull_request
|
|
7
|
+
- push
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
PYTHON_LATEST_VERSION: '3.14'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
pytest:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
python-version: ['3.11', '3.12', '3.13', '3.14']
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- name: install antlr4
|
|
25
|
+
run: pip install antlr4-tools
|
|
26
|
+
|
|
27
|
+
- uses: astral-sh/setup-uv@v7
|
|
28
|
+
with:
|
|
29
|
+
python-version: ${{ matrix.python-version }}
|
|
30
|
+
enable-cache: true
|
|
31
|
+
|
|
32
|
+
- name: dependencies
|
|
33
|
+
working-directory: bnf
|
|
34
|
+
run: uv sync --locked --extra dev
|
|
35
|
+
|
|
36
|
+
- name: pytest
|
|
37
|
+
working-directory: bnf
|
|
38
|
+
run: uv run pytest
|
|
39
|
+
|
|
40
|
+
build:
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
needs: pytest
|
|
43
|
+
|
|
44
|
+
if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags')"
|
|
45
|
+
|
|
46
|
+
steps:
|
|
47
|
+
- uses: actions/checkout@v6
|
|
48
|
+
|
|
49
|
+
- name: recovery tag information
|
|
50
|
+
run: git fetch --tags --force
|
|
51
|
+
|
|
52
|
+
- name: install antlr4
|
|
53
|
+
run: pip install antlr4-tools
|
|
54
|
+
|
|
55
|
+
- uses: astral-sh/setup-uv@v7
|
|
56
|
+
with:
|
|
57
|
+
python-version: ${{ matrix.python-version }}
|
|
58
|
+
enable-cache: true
|
|
59
|
+
|
|
60
|
+
- name: build
|
|
61
|
+
working-directory: bnf
|
|
62
|
+
run: uv build
|
|
63
|
+
|
|
64
|
+
- uses: actions/upload-artifact@v6
|
|
65
|
+
with:
|
|
66
|
+
name: dist
|
|
67
|
+
path: bnf/dist/
|
|
68
|
+
|
|
69
|
+
upload:
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
needs: build
|
|
72
|
+
|
|
73
|
+
environment:
|
|
74
|
+
name: pypi-bnf
|
|
75
|
+
url: https://pypi.org/project/apyds-bnf
|
|
76
|
+
permissions:
|
|
77
|
+
id-token: write
|
|
78
|
+
|
|
79
|
+
steps:
|
|
80
|
+
- uses: actions/download-artifact@v7
|
|
81
|
+
with:
|
|
82
|
+
name: dist
|
|
83
|
+
path: dist
|
|
84
|
+
|
|
85
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
86
|
+
with:
|
|
87
|
+
packages-dir: dist
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: ctest
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
- pull_request
|
|
7
|
+
- push
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
ctest:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v6
|
|
15
|
+
|
|
16
|
+
- name: dependencies
|
|
17
|
+
run: sudo apt-get update && sudo apt-get install -y libgtest-dev
|
|
18
|
+
|
|
19
|
+
- name: mkdir
|
|
20
|
+
run: mkdir ${{runner.workspace}}/build
|
|
21
|
+
|
|
22
|
+
- name: configure
|
|
23
|
+
run: cmake -S ${{github.workspace}} -B ${{runner.workspace}}/build
|
|
24
|
+
|
|
25
|
+
- name: build
|
|
26
|
+
run: cmake --build ${{runner.workspace}}/build --target test_executables
|
|
27
|
+
|
|
28
|
+
- name: ctest
|
|
29
|
+
run: ctest --test-dir ${{runner.workspace}}/build
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: docs
|
|
2
|
+
permissions:
|
|
3
|
+
contents: write
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
tags:
|
|
8
|
+
- "v*"
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
docs:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v6
|
|
16
|
+
|
|
17
|
+
- name: recovery tag information
|
|
18
|
+
run: git fetch --tags --force
|
|
19
|
+
|
|
20
|
+
- uses: astral-sh/setup-uv@v7
|
|
21
|
+
with:
|
|
22
|
+
python-version: '3.14'
|
|
23
|
+
enable-cache: true
|
|
24
|
+
|
|
25
|
+
- name: install dependencies
|
|
26
|
+
run: uv sync --locked --extra docs
|
|
27
|
+
|
|
28
|
+
- name: configure git
|
|
29
|
+
run: |
|
|
30
|
+
git config --global user.name "github-actions[bot]"
|
|
31
|
+
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
32
|
+
|
|
33
|
+
- name: build docs
|
|
34
|
+
run: uv run mike deploy --push --update-aliases --alias-type=redirect ${GITHUB_REF#refs/tags/} latest
|
|
35
|
+
|
|
36
|
+
- name: set default
|
|
37
|
+
run: uv run mike set-default --push latest
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: egg-jest
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
- pull_request
|
|
7
|
+
- push
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
NODE_LATEST_VERSION: '24'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
jest:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
node-version: ['20', '22', '24']
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- uses: actions/setup-node@v6
|
|
25
|
+
with:
|
|
26
|
+
node-version: ${{ matrix.node-version }}
|
|
27
|
+
cache: 'npm'
|
|
28
|
+
|
|
29
|
+
- name: dependencies
|
|
30
|
+
working-directory: egg
|
|
31
|
+
run: npm ci
|
|
32
|
+
|
|
33
|
+
- name: jest
|
|
34
|
+
working-directory: egg
|
|
35
|
+
run: npm run all
|
|
36
|
+
|
|
37
|
+
npm:
|
|
38
|
+
runs-on: ubuntu-latest
|
|
39
|
+
needs: jest
|
|
40
|
+
|
|
41
|
+
if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags')"
|
|
42
|
+
|
|
43
|
+
environment:
|
|
44
|
+
name: npm-egg
|
|
45
|
+
url: https://www.npmjs.com/package/atsds-egg
|
|
46
|
+
permissions:
|
|
47
|
+
id-token: write
|
|
48
|
+
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@v6
|
|
51
|
+
|
|
52
|
+
- name: recovery tag information
|
|
53
|
+
run: git fetch --tags --force
|
|
54
|
+
|
|
55
|
+
- uses: actions/setup-node@v6
|
|
56
|
+
with:
|
|
57
|
+
node-version: ${{ env.NODE_LATEST_VERSION }}
|
|
58
|
+
cache: 'npm'
|
|
59
|
+
|
|
60
|
+
- name: version
|
|
61
|
+
working-directory: egg
|
|
62
|
+
run: npm version from-git --no-git-tag-version
|
|
63
|
+
|
|
64
|
+
- name: extract tag
|
|
65
|
+
run: |
|
|
66
|
+
GIT_TAG=${GITHUB_REF#refs/tags/}
|
|
67
|
+
TAG=$(echo $GIT_TAG | sed -E 's/^v//' | sed -E 's/[0-9\.-]//g' | sed -E 's/^$/latest/g')
|
|
68
|
+
echo TAG=$TAG >> $GITHUB_ENV
|
|
69
|
+
|
|
70
|
+
- name: dependencies
|
|
71
|
+
working-directory: egg
|
|
72
|
+
run: npm ci
|
|
73
|
+
|
|
74
|
+
- name: build
|
|
75
|
+
working-directory: egg
|
|
76
|
+
run: npm run build
|
|
77
|
+
|
|
78
|
+
- name: publish
|
|
79
|
+
working-directory: egg
|
|
80
|
+
run: npm publish --tag $TAG
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
name: egg-pytest
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
- pull_request
|
|
7
|
+
- push
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
PYTHON_LATEST_VERSION: '3.14'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
pytest:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
python-version: ['3.11', '3.12', '3.13', '3.14']
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- uses: astral-sh/setup-uv@v7
|
|
25
|
+
with:
|
|
26
|
+
python-version: ${{ matrix.python-version }}
|
|
27
|
+
enable-cache: true
|
|
28
|
+
|
|
29
|
+
- name: dependencies
|
|
30
|
+
working-directory: egg
|
|
31
|
+
run: uv sync --locked --extra dev
|
|
32
|
+
|
|
33
|
+
- name: pytest
|
|
34
|
+
working-directory: egg
|
|
35
|
+
run: uv run pytest
|
|
36
|
+
|
|
37
|
+
build:
|
|
38
|
+
runs-on: ubuntu-latest
|
|
39
|
+
needs: pytest
|
|
40
|
+
|
|
41
|
+
if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags')"
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- uses: actions/checkout@v6
|
|
45
|
+
|
|
46
|
+
- name: recovery tag information
|
|
47
|
+
run: git fetch --tags --force
|
|
48
|
+
|
|
49
|
+
- uses: astral-sh/setup-uv@v7
|
|
50
|
+
with:
|
|
51
|
+
python-version: ${{ env.PYTHON_LATEST_VERSION }}
|
|
52
|
+
enable-cache: true
|
|
53
|
+
|
|
54
|
+
- name: build
|
|
55
|
+
working-directory: egg
|
|
56
|
+
run: uv build
|
|
57
|
+
|
|
58
|
+
- uses: actions/upload-artifact@v6
|
|
59
|
+
with:
|
|
60
|
+
name: dist
|
|
61
|
+
path: egg/dist/
|
|
62
|
+
|
|
63
|
+
upload:
|
|
64
|
+
runs-on: ubuntu-latest
|
|
65
|
+
needs: build
|
|
66
|
+
|
|
67
|
+
environment:
|
|
68
|
+
name: pypi-egg
|
|
69
|
+
url: https://pypi.org/project/apyds-egg
|
|
70
|
+
permissions:
|
|
71
|
+
id-token: write
|
|
72
|
+
|
|
73
|
+
steps:
|
|
74
|
+
- uses: actions/download-artifact@v7
|
|
75
|
+
with:
|
|
76
|
+
name: dist
|
|
77
|
+
path: dist
|
|
78
|
+
|
|
79
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
80
|
+
with:
|
|
81
|
+
packages-dir: dist
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
name: examples
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
- pull_request
|
|
7
|
+
- push
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
EM_CACHE_FOLDER: 'emsdk-cache'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
cxx:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v6
|
|
18
|
+
|
|
19
|
+
- name: dependencies
|
|
20
|
+
run: sudo apt-get update && sudo apt-get install -y libgtest-dev
|
|
21
|
+
|
|
22
|
+
- name: mkdir
|
|
23
|
+
run: mkdir ${{runner.workspace}}/build
|
|
24
|
+
|
|
25
|
+
- name: configure
|
|
26
|
+
run: cmake -S ${{github.workspace}} -B ${{runner.workspace}}/build
|
|
27
|
+
|
|
28
|
+
- name: build
|
|
29
|
+
run: cmake --build ${{runner.workspace}}/build --target main
|
|
30
|
+
|
|
31
|
+
- name: run
|
|
32
|
+
run: ${{runner.workspace}}/build/main
|
|
33
|
+
|
|
34
|
+
python:
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
|
|
37
|
+
strategy:
|
|
38
|
+
fail-fast: false
|
|
39
|
+
matrix:
|
|
40
|
+
python-version: ['3.11', '3.12', '3.13', '3.14']
|
|
41
|
+
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v6
|
|
44
|
+
|
|
45
|
+
- uses: astral-sh/setup-uv@v7
|
|
46
|
+
with:
|
|
47
|
+
python-version: ${{ matrix.python-version }}
|
|
48
|
+
enable-cache: true
|
|
49
|
+
|
|
50
|
+
- name: build
|
|
51
|
+
run: uv sync --locked
|
|
52
|
+
|
|
53
|
+
- name: run
|
|
54
|
+
run: uv run python examples/main.py
|
|
55
|
+
|
|
56
|
+
javascript:
|
|
57
|
+
runs-on: ubuntu-latest
|
|
58
|
+
|
|
59
|
+
strategy:
|
|
60
|
+
fail-fast: false
|
|
61
|
+
matrix:
|
|
62
|
+
node-version: ['20', '22', '24']
|
|
63
|
+
|
|
64
|
+
steps:
|
|
65
|
+
- uses: actions/checkout@v6
|
|
66
|
+
|
|
67
|
+
- uses: actions/setup-node@v6
|
|
68
|
+
with:
|
|
69
|
+
node-version: ${{ matrix.node-version }}
|
|
70
|
+
cache: 'npm'
|
|
71
|
+
|
|
72
|
+
- uses: actions/cache@v5
|
|
73
|
+
with:
|
|
74
|
+
path: ${{ env.EM_CACHE_FOLDER }}
|
|
75
|
+
key: example-em-cache-${{ runner.os }}-${{ matrix.node-version }}
|
|
76
|
+
|
|
77
|
+
- uses: pyodide/setup-emsdk@v15
|
|
78
|
+
with:
|
|
79
|
+
actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
|
|
80
|
+
|
|
81
|
+
- name: dependencies
|
|
82
|
+
run: npm ci
|
|
83
|
+
|
|
84
|
+
- name: build
|
|
85
|
+
run: npm run build
|
|
86
|
+
|
|
87
|
+
- name: run
|
|
88
|
+
run: node dist/example.mjs
|