starfix 0.1.0__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.
@@ -0,0 +1,43 @@
1
+ # DevContainer image
2
+ FROM ubuntu:24.04
3
+
4
+ RUN apt-get update &&\
5
+ apt-get install software-properties-common -y && \
6
+ apt-add-repository ppa:git-core/ppa && \
7
+ apt-get install git -y
8
+
9
+ RUN \
10
+ # dev setup
11
+ apt update && \
12
+ apt-get install build-essential sudo jq bash-completion graphviz rsync software-properties-common curl gnupg lsb-release -y && \
13
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
14
+ echo '. /etc/bash_completion' >> /root/.bashrc && \
15
+ echo 'export PS1="\[\e[32;1m\]\u\[\e[m\]@\[\e[34;1m\]\H\[\e[m\]:\[\e[33;1m\]\w\[\e[m\]$ "' >> /root/.bashrc && \
16
+ apt-get clean
17
+
18
+ ENV PATH="/root/.cargo/bin:${PATH}"
19
+ RUN apt-get update && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y && \
20
+ # rust auto formatting
21
+ rustup component add rustfmt && \
22
+ # rust style linter
23
+ rustup component add clippy && \
24
+ # rust code coverage
25
+ cargo install cargo-llvm-cov && \
26
+ rustup component add llvm-tools-preview && \
27
+ # rust crate structure diagram
28
+ cargo install cargo-modules && \
29
+ # expand rust macros (useful in debugging)
30
+ cargo install cargo-expand && \
31
+ apt-get clean
32
+
33
+ ENV PATH=${PATH}:/root/.local/bin
34
+ RUN \
35
+ # install python manager
36
+ curl -LsSf https://astral.sh/uv/install.sh | sh && \
37
+ uv venv -p 3.10 ~/.local/share/base && \
38
+ # pip package based on C lib/client
39
+ uv pip install cffi maturin[patchelf] -p ~/.local/share/base && \
40
+ # useful in examples
41
+ uv pip install ipykernel eclipse-zenoh pyarrow -p ~/.local/share/base && \
42
+ echo '. ~/.local/share/base/bin/activate' >> ~/.bashrc
43
+ ENV VIRTUAL_ENV=/root/.local/share/base
@@ -0,0 +1,29 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/rust
3
+ {
4
+ "name": "Rust",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "build": {
7
+ "dockerfile": "Dockerfile"
8
+ },
9
+ "customizations": {
10
+ "vscode": {
11
+ "extensions": [
12
+ "rust-lang.rust-analyzer", // Rust VSCode features
13
+ "vadimcn.vscode-lldb", // Rust CodeLLDB debugger
14
+ "ms-vscode.hexeditor", // Binary preview in HEX
15
+ "tamasfe.even-better-toml", // *.toml language support
16
+ "eamodio.gitlens", // Git explorer in VSCode
17
+ "streetsidesoftware.code-spell-checker", // Catch spelling errors in docs
18
+ "GitHub.copilot-chat", // GitHub Copilot AI assistant
19
+ "tintinweb.graphviz-interactive-preview", // Graphviz DOT preview
20
+ "ms-python.python", // Python IDE
21
+ "ms-toolsai.jupyter", // Jupyter IDE
22
+ "ms-python.black-formatter" // Python code formatter
23
+ ]
24
+ }
25
+ },
26
+ "features": {
27
+ "ghcr.io/meaningful-ooo/devcontainer-features/fish:2": {} // Fish shell
28
+ }
29
+ }
@@ -0,0 +1,181 @@
1
+ # This file is autogenerated by maturin v1.9.6
2
+ # To update, run
3
+ #
4
+ # maturin generate-ci github
5
+ #
6
+ name: maturin-build-release
7
+
8
+ on:
9
+ push:
10
+ branches:
11
+ - main
12
+ tags:
13
+ - '*'
14
+ pull_request:
15
+ workflow_dispatch:
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ jobs:
21
+ linux:
22
+ runs-on: ${{ matrix.platform.runner }}
23
+ strategy:
24
+ matrix:
25
+ platform:
26
+ - runner: ubuntu-22.04
27
+ target: x86_64
28
+ # - runner: ubuntu-22.04
29
+ # target: x86
30
+ # - runner: ubuntu-22.04
31
+ # target: aarch64
32
+ # - runner: ubuntu-22.04
33
+ # target: armv7
34
+ # - runner: ubuntu-22.04
35
+ # target: s390x
36
+ # - runner: ubuntu-22.04
37
+ # target: ppc64le
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+ - uses: actions/setup-python@v5
41
+ with:
42
+ python-version: 3.x
43
+ - name: Build wheels
44
+ uses: PyO3/maturin-action@v1
45
+ with:
46
+ target: ${{ matrix.platform.target }}
47
+ args: --release --out dist --find-interpreter
48
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
49
+ manylinux: auto
50
+ - name: Upload wheels
51
+ uses: actions/upload-artifact@v4
52
+ with:
53
+ name: wheels-linux-${{ matrix.platform.target }}
54
+ path: dist
55
+
56
+ # musllinux:
57
+ # runs-on: ${{ matrix.platform.runner }}
58
+ # strategy:
59
+ # matrix:
60
+ # platform:
61
+ # - runner: ubuntu-22.04
62
+ # target: x86_64
63
+ # - runner: ubuntu-22.04
64
+ # target: x86
65
+ # - runner: ubuntu-22.04
66
+ # target: aarch64
67
+ # - runner: ubuntu-22.04
68
+ # target: armv7
69
+ # steps:
70
+ # - uses: actions/checkout@v4
71
+ # - uses: actions/setup-python@v5
72
+ # with:
73
+ # python-version: 3.x
74
+ # - name: Build wheels
75
+ # uses: PyO3/maturin-action@v1
76
+ # with:
77
+ # target: ${{ matrix.platform.target }}
78
+ # args: --release --out dist --find-interpreter
79
+ # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
80
+ # manylinux: musllinux_1_2
81
+ # - name: Upload wheels
82
+ # uses: actions/upload-artifact@v4
83
+ # with:
84
+ # name: wheels-musllinux-${{ matrix.platform.target }}
85
+ # path: dist
86
+
87
+ # windows:
88
+ # runs-on: ${{ matrix.platform.runner }}
89
+ # strategy:
90
+ # matrix:
91
+ # platform:
92
+ # - runner: windows-latest
93
+ # target: x64
94
+ # - runner: windows-latest
95
+ # target: x86
96
+ # steps:
97
+ # - uses: actions/checkout@v4
98
+ # - uses: actions/setup-python@v5
99
+ # with:
100
+ # python-version: 3.x
101
+ # architecture: ${{ matrix.platform.target }}
102
+ # - name: Build wheels
103
+ # uses: PyO3/maturin-action@v1
104
+ # with:
105
+ # target: ${{ matrix.platform.target }}
106
+ # args: --release --out dist --find-interpreter
107
+ # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
108
+ # - name: Upload wheels
109
+ # uses: actions/upload-artifact@v4
110
+ # with:
111
+ # name: wheels-windows-${{ matrix.platform.target }}
112
+ # path: dist
113
+
114
+ # macos:
115
+ # runs-on: ${{ matrix.platform.runner }}
116
+ # strategy:
117
+ # matrix:
118
+ # platform:
119
+ # - runner: macos-13
120
+ # target: x86_64
121
+ # - runner: macos-14
122
+ # target: aarch64
123
+ # steps:
124
+ # - uses: actions/checkout@v4
125
+ # - uses: actions/setup-python@v5
126
+ # with:
127
+ # python-version: 3.x
128
+ # - name: Build wheels
129
+ # uses: PyO3/maturin-action@v1
130
+ # with:
131
+ # target: ${{ matrix.platform.target }}
132
+ # args: --release --out dist --find-interpreter
133
+ # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
134
+ # - name: Upload wheels
135
+ # uses: actions/upload-artifact@v4
136
+ # with:
137
+ # name: wheels-macos-${{ matrix.platform.target }}
138
+ # path: dist
139
+
140
+ sdist:
141
+ runs-on: ubuntu-latest
142
+ steps:
143
+ - uses: actions/checkout@v4
144
+ - name: Build sdist
145
+ uses: PyO3/maturin-action@v1
146
+ with:
147
+ command: sdist
148
+ args: --out dist
149
+ - name: Upload sdist
150
+ uses: actions/upload-artifact@v4
151
+ with:
152
+ name: wheels-sdist
153
+ path: dist
154
+
155
+ release:
156
+ environment: build-and-release
157
+ name: Release
158
+ runs-on: ubuntu-latest
159
+ if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
160
+ needs: [linux, sdist]
161
+ permissions:
162
+ # Use to sign the release artifacts
163
+ id-token: write
164
+ # Used to upload release artifacts
165
+ contents: write
166
+ # Used to generate artifact attestation
167
+ attestations: write
168
+ steps:
169
+ - uses: actions/download-artifact@v4
170
+ - name: Generate artifact attestation
171
+ uses: actions/attest-build-provenance@v2
172
+ with:
173
+ subject-path: 'wheels-*/*'
174
+ - name: Publish to PyPI
175
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
176
+ uses: PyO3/maturin-action@v1
177
+ env:
178
+ MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
179
+ with:
180
+ command: upload
181
+ args: --non-interactive --skip-existing wheels-*/*
@@ -0,0 +1,22 @@
1
+ name: Rust
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+
9
+ env:
10
+ CARGO_TERM_COLOR: always
11
+
12
+ jobs:
13
+ build:
14
+
15
+ runs-on: ubuntu-latest
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Build
20
+ run: cargo build --verbose
21
+ - name: Run tests
22
+ run: cargo test --verbose
@@ -0,0 +1,233 @@
1
+ # Maturin/uniffi generated files
2
+ python/starfix/_internal
3
+ python/starfix/*.so
4
+ python/starfix/*.pyd
5
+ python/starfix/*.dylib
6
+
7
+ .trash
8
+ .env
9
+ Cargo.lock
10
+ target
11
+ lcov.info
12
+ *.tar.gz
13
+ *.dot
14
+ tests/.tmp
15
+ *.pyc
16
+
17
+ # Byte-compiled / optimized / DLL files
18
+ __pycache__/
19
+ *.py[codz]
20
+ *$py.class
21
+
22
+ # C extensions
23
+ *.so
24
+
25
+ # Distribution / packaging
26
+ .Python
27
+ build/
28
+ develop-eggs/
29
+ dist/
30
+ downloads/
31
+ eggs/
32
+ .eggs/
33
+ lib/
34
+ lib64/
35
+ parts/
36
+ sdist/
37
+ var/
38
+ wheels/
39
+ share/python-wheels/
40
+ *.egg-info/
41
+ .installed.cfg
42
+ *.egg
43
+ MANIFEST
44
+
45
+ # PyInstaller
46
+ # Usually these files are written by a python script from a template
47
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
48
+ *.manifest
49
+ *.spec
50
+
51
+ # Installer logs
52
+ pip-log.txt
53
+ pip-delete-this-directory.txt
54
+
55
+ # Unit test / coverage reports
56
+ htmlcov/
57
+ .tox/
58
+ .nox/
59
+ .coverage
60
+ .coverage.*
61
+ .cache
62
+ nosetests.xml
63
+ coverage.xml
64
+ *.cover
65
+ *.py.cover
66
+ .hypothesis/
67
+ .pytest_cache/
68
+ cover/
69
+
70
+ # Translations
71
+ *.mo
72
+ *.pot
73
+
74
+ # Django stuff:
75
+ *.log
76
+ local_settings.py
77
+ db.sqlite3
78
+ db.sqlite3-journal
79
+
80
+ # Flask stuff:
81
+ instance/
82
+ .webassets-cache
83
+
84
+ # Scrapy stuff:
85
+ .scrapy
86
+
87
+ # Sphinx documentation
88
+ docs/_build/
89
+
90
+ # PyBuilder
91
+ .pybuilder/
92
+ target/
93
+
94
+ # Jupyter Notebook
95
+ .ipynb_checkpoints
96
+
97
+ # IPython
98
+ profile_default/
99
+ ipython_config.py
100
+
101
+ # pyenv
102
+ # For a library or package, you might want to ignore these files since the code is
103
+ # intended to run in multiple environments; otherwise, check them in:
104
+ # .python-version
105
+
106
+ # pipenv
107
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
108
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
109
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
110
+ # install all needed dependencies.
111
+ # Pipfile.lock
112
+
113
+ # UV
114
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
115
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
116
+ # commonly ignored for libraries.
117
+ # uv.lock
118
+
119
+ # poetry
120
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
121
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
122
+ # commonly ignored for libraries.
123
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
124
+ # poetry.lock
125
+ # poetry.toml
126
+
127
+ # pdm
128
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
129
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
130
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
131
+ # pdm.lock
132
+ # pdm.toml
133
+ .pdm-python
134
+ .pdm-build/
135
+
136
+ # pixi
137
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
138
+ # pixi.lock
139
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
140
+ # in the .venv directory. It is recommended not to include this directory in version control.
141
+ .pixi
142
+
143
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
144
+ __pypackages__/
145
+
146
+ # Celery stuff
147
+ celerybeat-schedule
148
+ celerybeat.pid
149
+
150
+ # Redis
151
+ *.rdb
152
+ *.aof
153
+ *.pid
154
+
155
+ # RabbitMQ
156
+ mnesia/
157
+ rabbitmq/
158
+ rabbitmq-data/
159
+
160
+ # ActiveMQ
161
+ activemq-data/
162
+
163
+ # SageMath parsed files
164
+ *.sage.py
165
+
166
+ # Environments
167
+ .env
168
+ .envrc
169
+ .venv
170
+ env/
171
+ venv/
172
+ ENV/
173
+ env.bak/
174
+ venv.bak/
175
+
176
+ # Spyder project settings
177
+ .spyderproject
178
+ .spyproject
179
+
180
+ # Rope project settings
181
+ .ropeproject
182
+
183
+ # mkdocs documentation
184
+ /site
185
+
186
+ # mypy
187
+ .mypy_cache/
188
+ .dmypy.json
189
+ dmypy.json
190
+
191
+ # Pyre type checker
192
+ .pyre/
193
+
194
+ # pytype static type analyzer
195
+ .pytype/
196
+
197
+ # Cython debug symbols
198
+ cython_debug/
199
+
200
+ # PyCharm
201
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
202
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
203
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
204
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
205
+ # .idea/
206
+
207
+ # Abstra
208
+ # Abstra is an AI-powered process automation framework.
209
+ # Ignore directories containing user credentials, local state, and settings.
210
+ # Learn more at https://abstra.io/docs
211
+ .abstra/
212
+
213
+ # Visual Studio Code
214
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
215
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
216
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
217
+ # you could uncomment the following to ignore the entire vscode folder
218
+ # .vscode/
219
+
220
+ # Ruff stuff:
221
+ .ruff_cache/
222
+
223
+ # PyPI configuration file
224
+ .pypirc
225
+
226
+ # Marimo
227
+ marimo/_static/
228
+ marimo/_lsp/
229
+ __marimo__/
230
+
231
+ # Streamlit
232
+ .streamlit/secrets.toml
233
+