11[build-system ]
2+ requires = [ " hatch-vcs" , " hatchling" ,]
23build-backend = " hatchling.build"
34
4- requires = [ " hatch-vcs" , " hatchling" ]
5-
65[project ]
76name = " aleph-sdk-python"
87description = " Lightweight Python Client library for the Aleph.im network"
98readme = " README.md"
10- license = { file = " LICENSE.txt" }
11- authors = [
12- {
name =
" Aleph.im Team" ,
email =
" [email protected] " },
13- ]
149classifiers = [
15- " Development Status :: 4 - Beta" ,
16- " Framework :: aiohttp" ,
17- " Intended Audience :: Developers" ,
18- " License :: OSI Approved :: MIT License" ,
19- " Operating System :: MacOS :: MacOS X" ,
20- " Operating System :: POSIX :: Linux" ,
21- " Programming Language :: Python :: 3 :: Only" ,
22- " Programming Language :: Python :: 3.8" ,
23- " Programming Language :: Python :: 3.9" ,
24- " Programming Language :: Python :: 3.10" ,
25- " Programming Language :: Python :: 3.11" ,
26- " Programming Language :: Python :: 3.12" ,
27- " Topic :: Software Development :: Libraries" ,
10+ " Development Status :: 4 - Beta" ,
11+ " Framework :: aiohttp" ,
12+ " Intended Audience :: Developers" ,
13+ " License :: OSI Approved :: MIT License" ,
14+ " Operating System :: MacOS :: MacOS X" ,
15+ " Operating System :: POSIX :: Linux" ,
16+ " Programming Language :: Python :: 3 :: Only" ,
17+ " Programming Language :: Python :: 3.8" ,
18+ " Programming Language :: Python :: 3.9" ,
19+ " Programming Language :: Python :: 3.10" ,
20+ " Programming Language :: Python :: 3.11" ,
21+ " Programming Language :: Python :: 3.12" ,
22+ " Topic :: Software Development :: Libraries" ,
2823]
29- dynamic = [ " version" ]
3024dependencies = [
31- " aiohttp>=3.8.3" ,
32- " aioresponses>=0.7.6" ,
33- " aleph-message>=0.6" ,
34- " aleph-superfluid>=0.2.1" ,
35- " base58==2.1.1" , # Needed now as default with _load_account changement
36- " coincurve; python_version<'3.11'" ,
37- " coincurve>=19; python_version>='3.11'" ,
38- " eth-abi>=4; python_version>='3.11'" ,
39- " eth-typing==4.3.1" ,
40- " jwcrypto==1.5.6" ,
41- " pynacl==1.5" , # Needed now as default with _load_account changement
42- " python-magic" ,
43- " typing-extensions" ,
44- " web3==6.3" ,
45- ]
46-
47- optional-dependencies.all = [
48- " aleph-sdk-python[cosmos,dns,docs,ledger,mqtt,nuls2,substrate,solana,tezos,encryption]" ,
49- ]
50- optional-dependencies.cosmos = [
51- " cosmospy" ,
52- ]
53- optional-dependencies.dns = [
54- " aiodns" ,
55- ]
56- optional-dependencies.docs = [
57- " sphinxcontrib-plantuml" ,
58- ]
59- optional-dependencies.encryption = [
60- " eciespy; python_version<'3.11'" ,
61- " eciespy>=0.3.13; python_version>='3.11'" ,
62- ]
63- optional-dependencies.ledger = [
64- " ledgereth==0.10" ,
65- ]
66- optional-dependencies.mqtt = [
67- " aiomqtt<=0.1.3" ,
68- " certifi" ,
69- " click" ,
70- ]
71- optional-dependencies.nuls2 = [
72- " aleph-nuls2" ,
73- ]
74- optional-dependencies.solana = [
75- " base58" ,
76- " pynacl" ,
77- ]
78- optional-dependencies.substrate = [
79- " py-sr25519-bindings" ,
80- " substrate-interface" ,
81- ]
82- optional-dependencies.tezos = [
83- " pytezos-crypto==3.13.4.1" ,
84- " pynacl" ,
85- ]
86- urls.Documentation = " https://aleph.im/"
87- urls.Homepage = " https://github.com/aleph-im/aleph-sdk-python"
25+ " aiohttp>=3.8.3" ,
26+ " aioresponses>=0.7.6" ,
27+ " aleph-message>=0.6" ,
28+ " aleph-superfluid>=0.2.1" ,
29+ " base58==2.1.1" ,
30+ ' coincurve>=19; python_version >= "3.11"' ,
31+ ' coincurve; python_version < "3.11"' ,
32+ ' eth-abi>=4; python_version >= "3.11"' ,
33+ " eth-typing==4.3.1" ,
34+ " jwcrypto==1.5.6" ,
35+ " pynacl==1.5" ,
36+ " python-magic" ,
37+ " typing-extensions" ,
38+ " web3==6.3" ,
39+ ]
40+ dynamic = [ " version" ,]
41+
42+ [project .license ]
43+ file = " LICENSE.txt"
44+
45+ [[project .authors ]]
46+ name = " Aleph.im Team"
47+ 48+
49+ [project .urls ]
50+ Documentation = " https://aleph.im/"
51+ Homepage = " https://github.com/aleph-im/aleph-sdk-python"
52+
53+ [project .optional-dependencies ]
54+ all = [ " aleph-sdk-python[cosmos,dns,docs,encryption,ledger,mqtt,nuls2,solana,substrate,tezos]" ,]
55+ cosmos = [ " cosmospy" ,]
56+ dns = [ " aiodns" ,]
57+ docs = [ " sphinxcontrib-plantuml" ,]
58+ encryption = [ ' eciespy>=0.3.13; python_version >= "3.11"' , ' eciespy; python_version < "3.11"' ,]
59+ ledger = [ " ledgereth==0.10" ,]
60+ mqtt = [ " aiomqtt<=0.1.3" , " certifi" , " click" ,]
61+ nuls2 = [ " aleph-nuls2" ,]
62+ solana = [ " base58" , " pynacl" ,]
63+ substrate = [ " py-sr25519-bindings" , " substrate-interface" ,]
64+ tezos = [ " pynacl" , " pytezos-crypto==3.13.4.1" ,]
8865
8966[tool .hatch .metadata ]
9067allow-direct-references = true
@@ -93,158 +70,107 @@ allow-direct-references = true
9370source = " vcs"
9471
9572[tool .hatch .build .targets .wheel ]
96- packages = [
97- " src/aleph" ,
98- " pyproject.toml" ,
99- " README.md" ,
100- " LICENSE.txt" ,
101- ]
73+ packages = [ " src/aleph" , " pyproject.toml" , " README.md" , " LICENSE.txt" ,]
10274
10375[tool .hatch .build .targets .sdist ]
104- include = [
105- " src/aleph" ,
106- " pyproject.toml" ,
107- " README.md" ,
108- " LICENSE.txt" ,
109- ]
76+ include = [ " src/aleph" , " pyproject.toml" , " README.md" , " LICENSE.txt" ,]
11077
11178[[tool .hatch .envs .all .matrix ]]
112- python = [ " 3.9" , " 3.10" , " 3.11" ]
79+ python = [ " 3.9" , " 3.10" , " 3.11" , ]
11380
11481[tool .hatch .envs .testing ]
115- features = [
116- " cosmos" ,
117- " dns" ,
118- " ledger" ,
119- " nuls2" ,
120- " substrate" ,
121- " solana" ,
122- " tezos" ,
123- " encryption" ,
124- ]
82+ features = [ " cosmos" , " dns" , " ledger" , " nuls2" , " substrate" , " solana" , " tezos" , " encryption" ,]
12583dependencies = [
126- " pytest==8.0.1" ,
127- " pytest-cov==4.1.0" ,
128- " pytest-mock==3.12.0" ,
129- " pytest-asyncio==0.23.5" ,
130- " pytest-aiohttp==1.0.5" ,
131- " aioresponses==0.7.6" ,
132- " fastapi" ,
133- " httpx" ,
134- " secp256k1" ,
84+ " pytest==8.0.1" ,
85+ " pytest-cov==4.1.0" ,
86+ " pytest-mock==3.12.0" ,
87+ " pytest-asyncio==0.23.5" ,
88+ " pytest-aiohttp==1.0.5" ,
89+ " aioresponses==0.7.6" ,
90+ " fastapi" ,
91+ " httpx" ,
92+ " secp256k1" ,
13593]
94+
13695[tool .hatch .envs .testing .scripts ]
13796test = " pytest {args:} ./src/ ./tests/ ./examples/"
13897test-cov = " pytest --cov {args:} ./src/ ./tests/ ./examples/"
139- cov-report = [
140- " - coverage combine" ,
141- " coverage report" ,
142- ]
143- cov = [
144- " test-cov" ,
145- " cov-report" ,
146- ]
98+ cov-report = [ " - coverage combine" , " coverage report" ,]
99+ cov = [ " test-cov" , " cov-report" ,]
147100
148101[tool .hatch .envs .linting ]
149102detached = true
150103dependencies = [
151- " black==24.2.0" ,
152- " mypy==1.9.0" ,
153- " mypy-extensions==1.0.0" ,
154- " ruff==0.4.8" ,
155- " isort==5.13.2" ,
156- " pyproject-fmt==2.2.1" ,
104+ " black==24.2.0" ,
105+ " mypy==1.9.0" ,
106+ " mypy-extensions==1.0.0" ,
107+ " ruff==0.4.8" ,
108+ " isort==5.13.2" ,
109+ " pyproject-fmt==2.2.1" ,
157110]
111+
158112[tool .hatch .envs .linting .scripts ]
159113typing = " mypy --config-file=pyproject.toml {args:} ./src/ ./tests/ ./examples/"
160114style = [
161- " ruff check {args:.} ./src/ ./tests/ ./examples/" ,
162- " black --check --diff {args:} ./src/ ./tests/ ./examples/" ,
163- " isort --check-only --profile black {args:} ./src/ ./tests/ ./examples/" ,
164- " pyproject-fmt --check pyproject.toml" ,
115+ " ruff check {args:.} ./src/ ./tests/ ./examples/" ,
116+ " black --check --diff {args:} ./src/ ./tests/ ./examples/" ,
117+ " isort --check-only --profile black {args:} ./src/ ./tests/ ./examples/" ,
118+ " pyproject-fmt --check pyproject.toml" ,
165119]
166120fmt = [
167- " black {args:} ./src/ ./tests/ ./examples/" ,
168- " ruff check --fix {args:.} ./src/ ./tests/ ./examples/" ,
169- " isort --profile black {args:} ./src/ ./tests/ ./examples/" ,
170- " pyproject-fmt pyproject.toml" ,
171- " style" ,
172- ]
173- all = [
174- " style" ,
175- " typing" ,
121+ " black {args:} ./src/ ./tests/ ./examples/" ,
122+ " ruff check --fix {args:.} ./src/ ./tests/ ./examples/" ,
123+ " isort --profile black {args:} ./src/ ./tests/ ./examples/" ,
124+ " pyproject-fmt pyproject.toml" ,
125+ " style" ,
176126]
127+ all = [ " style" , " typing" ,]
177128
178129[tool .isort ]
179130profile = " black"
180131
181132[tool .pytest .ini_options ]
182133minversion = " 6.0"
183- pythonpath = [ " src" ]
184- addopts = " -vv -m \" not ledger_hardware\" "
185- norecursedirs = [ " *.egg" , " dist" , " build" , " .tox" , " .venv" , " */site-packages/*" ]
186- testpaths = [ " tests/unit" ]
187- markers = { ledger_hardware = " marks tests as requiring ledger hardware" }
134+ pythonpath = [ " src" ,]
135+ addopts = ' -vv -m "not ledger_hardware"'
136+ norecursedirs = [ " *.egg" , " dist" , " build" , " .tox" , " .venv" , " */site-packages/*" ,]
137+ testpaths = [ " tests/unit" ,]
138+
139+ [tool .pytest .ini_options .markers ]
140+ ledger_hardware = " marks tests as requiring ledger hardware"
188141
189142[tool .coverage .run ]
190143branch = true
191144parallel = true
192- source = [
193- " src/" ,
194- ]
195- omit = [
196- " */site-packages/*" ,
197- ]
145+ source = [ " src/" ,]
146+ omit = [ " */site-packages/*" ,]
198147
199148[tool .coverage .paths ]
200- source = [
201- " src/" ,
202- ]
203- omit = [
204- " */site-packages/*" ,
205- ]
149+ source = [ " src/" ,]
150+ omit = [ " */site-packages/*" ,]
206151
207152[tool .coverage .report ]
208153show_missing = true
209154skip_empty = true
210155exclude_lines = [
211- # Have to re-enable the standard pragma
212- " pragma: no cover" ,
213-
214- # Don't complain about missing debug-only code:
215- " def __repr__" ,
216- " if self\\ .debug" ,
217-
218- # Don't complain if tests don't hit defensive assertion code:
219- " raise AssertionError" ,
220- " raise NotImplementedError" ,
221-
222- # Don't complain if non-runnable code isn't run:
223- " if 0:" ,
224- " if __name__ == .__main__.:" ,
225-
226- # Don't complain about ineffective code:
227- " pass" ,
156+ " pragma: no cover" ,
157+ " def __repr__" ,
158+ " if self\\ .debug" ,
159+ " raise AssertionError" ,
160+ " raise NotImplementedError" ,
161+ " if 0:" ,
162+ " if __name__ == .__main__.:" ,
163+ " pass" ,
228164]
229165
230166[tool .mypy ]
231167python_version = 3.9
232168mypy_path = " src"
233- exclude = [
234- " conftest.py" ,
235- ]
169+ exclude = [ " conftest.py" ,]
236170show_column_numbers = true
237171check_untyped_defs = true
238-
239- # Import discovery
240- # Install types for third-party library stubs (e.g. from typeshed repository)
241172install_types = true
242173non_interactive = true
243- # Suppresses error messages about imports that cannot be resolved (no py.typed file, no stub file, etc).
244174ignore_missing_imports = true
245- # Don't follow imports
246175follow_imports = " silent"
247-
248- # Miscellaneous strictness flags
249- # Allows variables to be redefined with an arbitrary type, as long as the redefinition is in the same block and nesting level as the original definition.
250176allow_redefinition = true
0 commit comments