-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpyproject.toml
125 lines (109 loc) · 2.88 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
122
123
124
125
[tool.poetry]
name = "entro"
version = "0.1.0"
description = "Python package for interacting with blockchains"
authors = ["Eli Barbieri <eli@nethermind.io>"]
readme = "README.md"
packages = [
{include = "nethermind"},
]
[tool.poetry.dependencies]
python = "^3.10"
pandas = "^2.2.2"
web3 = ">=4.0.0"
sqlalchemy = {extras = ["asyncio", "postgres"], version = "^2.0.24"}
psycopg2-binary = "^2.9.1"
aiohttp = "^3.8.6"
rich = "^13.7.0"
idealis = {git = "https://github.com/NethermindEth/idealis"}
click = "^8.1.7"
[tool.poetry.group.dev.dependencies]
pre-commit = "^3.0.1"
pylint = ">=3.0.0"
isort = "^5.11.4"
mypy = "^0.991"
black = "^22.10.0"
pytest = "^6.2.5"
pytest-asyncio = "^0.16.0"
pytest-timeout = "^2.1.0"
python-dotenv = "^1.0.0"
docker = "^7.1.0"
pandas-stubs = "^2.1.1.230928"
pytest-mock = "^3.14.0"
[tool.poetry.group.evm]
optional = true
[tool.poetry.group.evm.dependencies]
pyrevm = ">=0.3.0"
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
Sphinx = "^6.1.3"
sphinx-book-theme = "^1.0.1"
[tool.poetry.scripts]
entro = "nethermind.entro.cli:entro_cli"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.black]
line-length = 120
exclude = '''
/(
\.eggs
| \.coverage
| \.env
| \.git
| \.github
| \.pytest_cache
| \.mypy_cache
| \.venv
| _build
| build
| cache
| dist
)/
'''
[tool.isort]
profile = "black"
atomic = true
include_trailing_comma = true
use_parentheses = true
src_paths = ["nethermind", "tests", "integration_tests"]
filter_files = true
known_first_party = "nethermind"
py_version='310'
[tool.pylint.main]
max-line-length = 120
jobs = 12
ignore-paths = [ "^tests\\.*$", "^docs\\.*$", "^integration_tests\\.*$" ]
py-version = "3.10"
suggestion-mode = true
disable=[
"C0114",
"W1514",
"R0903",
"R1719",
"W1203",
"R0801",
"W0707", # raise-missing-from
]
[tool.pylint.design]
max-args = 9 # Maximum number of arguments for function / method.
max-attributes = 15 # Maximum number of attributes for a class (see R0902).
max-bool-expr = 5 # Maximum number of boolean expressions in an if statement (see R0916).
max-branches = 12 # Maximum number of branch for function / method body.
max-locals = 15 # Maximum number of locals for function / method body.
max-parents = 7 # Maximum number of parents for a class (see R0901).
max-public-methods = 20 # Maximum number of public methods for a class (see R0904).
max-returns = 6 # Maximum number of return / yield for function / method body.
max-statements = 50 # Maximum number of statements in function / method body.
min-public-methods = 2 # Minimum number of public methods for a class (see R0903).
[tool.pylint.imports]
known-third-party = ["sqlalchemy", "py-evm", "nethermind"]
[tool.mypy]
explicit_package_bases = true
namespace_packages = true
exclude = [
"^docs\\.py$",
"^tests\\.py$",
"^integration_tests\\.py$",
]