-
Notifications
You must be signed in to change notification settings - Fork 28
/
pyproject.toml
121 lines (109 loc) · 3.02 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
120
121
[tool.poetry]
name = "lido-oracle"
version = "4.0.3"
description = "Oracle daemon for Lido decentralized staking service. Collects and reports Ethereum 2.0 beacon chain states (the number of visible validators and their summarized balances) to the Lido dApp contract running on Ethereum 1.0 side."
authors = [
"Dmitry Chernukhin",
"Dmitry Suldin",
"George Avsetsin",
"Kirill Varlamov",
"Raman Siamionau",
"Roman Kolpakov",
"Sergey Ivanenko",
"Sergey Khomutinin",
"Smelov Vladimir",
"Vladimir Gorkavenko",
]
license = "GPL 3.0"
[tool.poetry.dependencies]
python = "^3.12"
prometheus-client = "^0.16.0"
timeout-decorator = "^0.5.0"
pytest = "^7.2.1"
pytest-xdist = "^3.2.1"
more-itertools = "^10.1.0"
web3 = "^6.10.0"
web3-multi-provider = "^0.6.0"
json-stream = "^2.3.2"
lazy-object-proxy = "^1.9.0"
oz-merkle-tree = {git = "https://github.com/lidofinance/oz-merkle-tree"}
py-multiformats-cid = "^0.4.4"
[tool.poetry.group.dev.dependencies]
base58 = "^2.1.1"
ipfshttpclient = "^0.7.0"
pydantic = "1.10.6"
pytest-cov = "^4.0.0"
pydantic-factories = "^1.17.2"
# {{{ stubs for mypy
types-requests = "^2.28.11.15"
types-setuptools = "^67.6.0.0"
types-urllib3 = "^1.26.25.8"
# }}}
hypothesis = "^6.68.2"
black = "^24.8"
pylint = "^3.2.3"
mypy = "^1.10.0"
requests-mock = "^1.12.1"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.pytest.ini_options]
markers = [
"unit: tests with using mocks and don't make external requests",
"integration: tests with using providers",
"possible_integration: tests with using providers, but can be run using mocks",
"e2e: complex tests with using providers and real Ethereum network",
]
addopts = "-s -vv --pdbcls pudb.debugger:Debugger"
[tool.coverage.run]
branch = true
[tool.pylint.format]
max-line-length = "120"
min-similarity-lines=6
[tool.pylint."messages control"]
disable = [
# Disabled by default
"raw-checker-failed",
"bad-inline-option",
"locally-disabled",
"file-ignored",
"suppressed-message",
"useless-suppression",
"deprecated-pragma",
"use-symbolic-message-instead",
# Disabled by us
"missing-module-docstring",
"missing-class-docstring",
"missing-function-docstring",
"too-few-public-methods",
"invalid-name",
"unused-argument",
"wrong-import-order",
"ungrouped-imports",
"line-too-long",
"too-many-instance-attributes",
"too-many-arguments",
"too-many-locals",
"unspecified-encoding",
"bare-except",
"fixme",
"cell-var-from-loop",
"invalid-envvar-default",
"global-statement",
"redefined-outer-name",
]
[tool.mypy]
python_version = "3.12"
strict_equality = true
mypy_path = "stubs"
disable_error_code = "valid-type,name-defined"
[[tool.mypy.overrides]]
module = "src.web3py.contract_tweak"
ignore_errors = true # skipped because of extensive copy-paste from the upstream
[tool.black]
line-length = 120
skip-string-normalization = true
[tool.ruff]
line-length = 120
[tool.ruff.format]
quote-style = "preserve"