forked from software-mansion/starknet.py
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
119 lines (103 loc) · 3.84 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
[tool.poetry]
name = "starknet-py"
version = "0.15.2"
description = "A python SDK for Starknet"
authors = ["Tomasz Rejowski <[email protected]>", "Jakub Ptak <[email protected]>"]
include = ["starknet_py", "starknet_py/utils/crypto/libcrypto_c_exports.*"]
exclude = ["starknet_py/tests/*", "starknet_py/**/*_test.py"]
packages = [
{ include = "starknet_py" }
]
license = "MIT"
readme = "README.md"
repository = "https://github.com/software-mansion/starknet.py"
documentation = "https://starknetpy.rtfd.io/"
[tool.poetry.dependencies]
python = ">=3.9, <3.10"
asgiref = "^3.4.1"
crypto-cpp-py = "^1.2.0"
marshmallow = "^3.15.0"
marshmallow-oneofschema = "^3.0.1"
typing-extensions = "^4.3.0"
cairo-lang = "^0.11.0.2"
eth-utils = "^2.1.0"
marshmallow-dataclass = "<8.5.0"
poseidon-py = "^0.1.2"
sphinx = { version = ">=4.3.1,<7.0.0", optional = true }
enum-tools = { extras = ["sphinx"], version = "0.9.0.post1", optional = true }
furo = { version = "^2022.12.7", optional = true }
[tool.poetry.extras]
docs = ["sphinx", "enum-tools", "furo"]
[tool.poetry.group.dev.dependencies]
pytest = "^7.2.2"
black = "^23.1.0"
poethepoet = "^0.19.0"
coverage = "^7.2.1"
pytest-asyncio = "^0.20.3"
sphinx-rtd-theme = "^1.0.0"
pylint = "2.17.2"
setuptools = "^67.5.1"
pytest-mock = "^3.6.1"
pytest-xdist = "^3.2.1"
pyright = "^1.1.298"
pytest-cov = "^4.0.0"
isort = "^5.11.4"
pytest-rerunfailures = "^11.1"
starknet-devnet = "0.5.0"
[tool.poe.tasks]
test.shell = "pytest -n auto -v --reruns 10 --only-rerun aiohttp.client_exceptions.ClientConnectorError --cov=starknet_py starknet_py"
test_ci.shell = "coverage run -m pytest -v --reruns 2 --only-rerun aiohttp.client_exceptions.ClientConnectorError starknet_py --ignore=starknet_py/tests/e2e/docs --ignore=starknet_py/tests/e2e/core"
test_ci_docs.shell = "coverage run -m pytest -v --reruns 2 --only-rerun aiohttp.client_exceptions.ClientConnectorError starknet_py/tests/e2e/docs"
test_unit.shell = "pytest -n auto -v starknet_py --ignore=starknet_py/tests/e2e"
test_e2e.shell = "pytest -n auto -v starknet_py/tests/e2e --ignore=starknet_py/tests/e2e/docs"
test_docs.shell = "pytest -n auto -v starknet_py/tests/e2e/docs"
test_core.shell = "pytest -v starknet_py/tests/e2e/core --net=integration"
test_report.shell = "coverage report"
test_html.shell = "coverage html && open ./htmlcov/index.html"
docs_create = { shell = "make -C docs html" }
docs_open = { shell = "open docs/_build/html/index.html" }
lint = "pylint starknet_py"
format.shell = "isort . && black ."
format_check.shell = "isort --check . && black --check ."
format_diff.shell = "isort --diff . && black --diff ."
typecheck = "pyright starknet_py"
compile_contracts = "bash starknet_py/tests/e2e/mock/compile_contracts.sh"
compile_contracts_v1 = "bash starknet_py/tests/e2e/mock/compile_contracts_v1.sh"
circular_imports_check.shell = "poetry run pytest circular.py"
requirements_check.shell = "poetry export -f requirements.txt --without-hashes --extras docs | cmp - requirements.txt"
ci = ["lint", "format_check", "typecheck", "requirements_check", "test_ci"]
[tool.poetry.build]
generate-setup-file = true
[tool.coverage.run]
source = ["starknet_py"]
[tool.coverage.report]
omit = ["*_test.py", "starknet_py/tests/e2e/*", "starknet_py/utils/docs.py"]
skip_empty = true
[build-system]
requires = [
"setuptools",
"wheel",
"build",
"Cython",
]
build-backend = "setuptools.build_meta"
[tool.black]
target-version = ["py38"]
extend-exclude = """
crypto-cpp
"""
[tool.isort]
profile = "black"
skip_gitignore = true
[tool.pytest.ini_options]
markers = [
"run_on_testnet: marks test that will only run on testnet (when --net=testnet)",
"run_on_devnet: marks test that will only run on devnet (when --net=devnet)"
]
[tool.pyright]
include = ["starknet_py/"]
exclude = [
"**/__pycache__",
"starknet_py/tests/e2e/docs",
]
stubPath = "" # fix "not a valid directory" error