pychromy 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,19 @@
1
+ name: CI
2
+ on:
3
+ push: {branches: [main]}
4
+ pull_request:
5
+ jobs:
6
+ test:
7
+ runs-on: ${{ matrix.os }}
8
+ strategy:
9
+ matrix:
10
+ os: [ubuntu-latest, macos-latest, windows-latest]
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - uses: actions/setup-python@v5
14
+ with: {python-version: "3.12"}
15
+ - uses: dtolnay/rust-toolchain@stable
16
+ - run: pip install maturin pytest
17
+ - run: maturin build --release --out dist
18
+ - run: pip install --no-index --find-links dist pychromy
19
+ - run: pytest tests/ -q
@@ -0,0 +1,49 @@
1
+ # Wheels and sdist for every platform on a version tag, published to PyPI
2
+ # by Trusted Publishing (OIDC): no token, no secret. PyPI side: a (pending)
3
+ # publisher for project pychromy, owner castlaboratory, repository pychromy,
4
+ # workflow release.yaml, environment pypi.
5
+ name: Release
6
+ on:
7
+ push:
8
+ tags: ["v*"]
9
+ jobs:
10
+ wheels:
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest, windows-latest]
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: PyO3/maturin-action@v1
18
+ with:
19
+ command: build
20
+ args: --release --out dist
21
+ manylinux: auto
22
+ - uses: actions/upload-artifact@v4
23
+ with:
24
+ name: wheels-${{ matrix.os }}
25
+ path: dist
26
+ sdist:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ - uses: PyO3/maturin-action@v1
31
+ with:
32
+ command: sdist
33
+ args: --out dist
34
+ - uses: actions/upload-artifact@v4
35
+ with:
36
+ name: sdist
37
+ path: dist
38
+ publish:
39
+ needs: [wheels, sdist]
40
+ runs-on: ubuntu-latest
41
+ environment: pypi
42
+ permissions:
43
+ id-token: write
44
+ steps:
45
+ - uses: actions/download-artifact@v4
46
+ with:
47
+ merge-multiple: true
48
+ path: dist
49
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,7 @@
1
+ target/
2
+ Cargo.lock
3
+ __pycache__/
4
+ .pytest_cache/
5
+ *.so
6
+ dist/
7
+ .DS_Store
@@ -0,0 +1,179 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 3
4
+
5
+ [[package]]
6
+ name = "autocfg"
7
+ version = "1.5.1"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
10
+
11
+ [[package]]
12
+ name = "chromy-core"
13
+ version = "0.1.0"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "18fa9f22dccf43cabad1ebba75ab6baa0e9dcb9c063169b1a473637699cbccc7"
16
+
17
+ [[package]]
18
+ name = "heck"
19
+ version = "0.5.0"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
22
+
23
+ [[package]]
24
+ name = "indoc"
25
+ version = "2.0.8"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "a37b2691796cffeb8a8cd305ac66e65841559f147f4e63231d0eafa4db5384d1"
28
+ dependencies = [
29
+ "rustversion",
30
+ ]
31
+
32
+ [[package]]
33
+ name = "libc"
34
+ version = "0.2.191"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a"
37
+
38
+ [[package]]
39
+ name = "memoffset"
40
+ version = "0.9.1"
41
+ source = "registry+https://github.com/rust-lang/crates.io-index"
42
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
43
+ dependencies = [
44
+ "autocfg",
45
+ ]
46
+
47
+ [[package]]
48
+ name = "once_cell"
49
+ version = "1.21.4"
50
+ source = "registry+https://github.com/rust-lang/crates.io-index"
51
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
52
+
53
+ [[package]]
54
+ name = "portable-atomic"
55
+ version = "1.15.0"
56
+ source = "registry+https://github.com/rust-lang/crates.io-index"
57
+ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
58
+
59
+ [[package]]
60
+ name = "proc-macro2"
61
+ version = "1.0.107"
62
+ source = "registry+https://github.com/rust-lang/crates.io-index"
63
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
64
+ dependencies = [
65
+ "unicode-ident",
66
+ ]
67
+
68
+ [[package]]
69
+ name = "pychromy-python"
70
+ version = "0.1.0"
71
+ dependencies = [
72
+ "chromy-core",
73
+ "pyo3",
74
+ ]
75
+
76
+ [[package]]
77
+ name = "pyo3"
78
+ version = "0.26.0"
79
+ source = "registry+https://github.com/rust-lang/crates.io-index"
80
+ checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383"
81
+ dependencies = [
82
+ "indoc",
83
+ "libc",
84
+ "memoffset",
85
+ "once_cell",
86
+ "portable-atomic",
87
+ "pyo3-build-config",
88
+ "pyo3-ffi",
89
+ "pyo3-macros",
90
+ "unindent",
91
+ ]
92
+
93
+ [[package]]
94
+ name = "pyo3-build-config"
95
+ version = "0.26.0"
96
+ source = "registry+https://github.com/rust-lang/crates.io-index"
97
+ checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f"
98
+ dependencies = [
99
+ "target-lexicon",
100
+ ]
101
+
102
+ [[package]]
103
+ name = "pyo3-ffi"
104
+ version = "0.26.0"
105
+ source = "registry+https://github.com/rust-lang/crates.io-index"
106
+ checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105"
107
+ dependencies = [
108
+ "libc",
109
+ "pyo3-build-config",
110
+ ]
111
+
112
+ [[package]]
113
+ name = "pyo3-macros"
114
+ version = "0.26.0"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded"
117
+ dependencies = [
118
+ "proc-macro2",
119
+ "pyo3-macros-backend",
120
+ "quote",
121
+ "syn",
122
+ ]
123
+
124
+ [[package]]
125
+ name = "pyo3-macros-backend"
126
+ version = "0.26.0"
127
+ source = "registry+https://github.com/rust-lang/crates.io-index"
128
+ checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf"
129
+ dependencies = [
130
+ "heck",
131
+ "proc-macro2",
132
+ "pyo3-build-config",
133
+ "quote",
134
+ "syn",
135
+ ]
136
+
137
+ [[package]]
138
+ name = "quote"
139
+ version = "1.0.47"
140
+ source = "registry+https://github.com/rust-lang/crates.io-index"
141
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
142
+ dependencies = [
143
+ "proc-macro2",
144
+ ]
145
+
146
+ [[package]]
147
+ name = "rustversion"
148
+ version = "1.0.23"
149
+ source = "registry+https://github.com/rust-lang/crates.io-index"
150
+ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
151
+
152
+ [[package]]
153
+ name = "syn"
154
+ version = "2.0.119"
155
+ source = "registry+https://github.com/rust-lang/crates.io-index"
156
+ checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
157
+ dependencies = [
158
+ "proc-macro2",
159
+ "quote",
160
+ "unicode-ident",
161
+ ]
162
+
163
+ [[package]]
164
+ name = "target-lexicon"
165
+ version = "0.13.5"
166
+ source = "registry+https://github.com/rust-lang/crates.io-index"
167
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
168
+
169
+ [[package]]
170
+ name = "unicode-ident"
171
+ version = "1.0.27"
172
+ source = "registry+https://github.com/rust-lang/crates.io-index"
173
+ checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563"
174
+
175
+ [[package]]
176
+ name = "unindent"
177
+ version = "0.2.4"
178
+ source = "registry+https://github.com/rust-lang/crates.io-index"
179
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
@@ -0,0 +1,37 @@
1
+ # The Python binding, built by maturin. Its own workspace: this crate is a
2
+ # cdylib for a Python interpreter and has nothing to say about how the
3
+ # engine itself is built.
4
+ [workspace]
5
+
6
+ [package]
7
+ name = "pychromy-python"
8
+ version = "0.1.0"
9
+ description = "Python bindings for chromy-core: Chromy's sequential sampling with probability minimum replacement"
10
+ edition = "2021"
11
+ license = "GPL-3.0-or-later"
12
+ repository = "https://github.com/castlaboratory/pychromy"
13
+ authors = [
14
+ "André Leite <leite@castlab.org>",
15
+ "Raydonal Ospina <raydonal@castlab.org>",
16
+ "Cristiano Ferraz <cferraz@castlab.org>",
17
+ "David Eloi dos Santos Bitencourt <profdavidsb@gmail.com>",
18
+ "Clara Ribeiro de Santana <clara.rsantana@ufpe.br>",
19
+ ]
20
+ rust-version = "1.77"
21
+ publish = false
22
+ readme = "README.md"
23
+
24
+ [lib]
25
+ name = "pychromy"
26
+ crate-type = ["cdylib"]
27
+
28
+ [dependencies]
29
+ chromy-core = "0.1.0"
30
+ # abi3-py39: one wheel per platform serves every Python from 3.9 up.
31
+ pyo3 = { version = "0.26", features = ["extension-module", "abi3-py39"] }
32
+
33
+ [profile.release]
34
+ opt-level = "s"
35
+ lto = true
36
+ codegen-units = 1
37
+ strip = true