forked from projectmesa/mesa
-
Notifications
You must be signed in to change notification settings - Fork 1
/
pyproject.toml
130 lines (123 loc) · 3.53 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
126
127
128
129
130
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "Mesa"
description = "Agent-based modeling (ABM) in Python"
license = { text = "Apache 2.0" }
requires-python = ">=3.9"
authors = [
{ name = "Project Mesa Team", email = "projectmesa@googlegroups.com" },
]
keywords = [
"agent",
"based",
"modeling",
"model",
"ABM",
"simulation",
"multi-agent",
]
classifiers = [
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Artificial Life",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Development Status :: 3 - Alpha",
"Natural Language :: English",
]
readme = "README.md"
dependencies = [
"click",
"cookiecutter",
"matplotlib",
"mesa_viz_tornado~=0.1.0,>=0.1.3",
"networkx",
"numpy",
"pandas",
"solara",
"tqdm",
]
dynamic = ["version"]
[project.optional-dependencies]
dev = [
"ruff~=0.1.1", # Update periodically
"coverage",
"pytest >= 4.6",
"pytest-cov",
"sphinx",
]
docs = [
"sphinx",
"ipython",
"pydata_sphinx_theme",
"seaborn",
"myst-nb",
"myst-parser", # Markdown in Sphinx
]
[project.urls]
homepage = "https://github.com/projectmesa/mesa"
repository = "https://github.com/projectmesa/mesa"
[project.scripts]
mesa = "mesa.main:cli"
[tool.hatch.build.targets.wheel]
packages = ["mesa"]
[tool.hatch.version]
path = "mesa/__init__.py"
[tool.ruff]
# See https://github.com/charliermarsh/ruff#rules for error code definitions.
select = [
# "ANN", # annotations TODO
"B", # bugbear
"C4", # comprehensions
"DTZ", # naive datetime
"E", # style errors
"F", # flakes
"I", # import sorting
"ISC", # string concatenation
"N", # naming
"PGH", # pygrep-hooks
"PIE", # miscellaneous
"PLC", # pylint convention
"PLE", # pylint error
# "PLR", # pylint refactor TODO
"PLW", # pylint warning
"Q", # quotes
"RUF", # Ruff
"S", # security
"SIM", # simplify
"T10", # debugger
"UP", # upgrade
"W", # style warnings
"YTT", # sys.version
]
# Ignore list taken from https://github.com/psf/black/blob/master/.flake8
# E203 Whitespace before ':'
# E266 Too many leading '#' for block comment
# E501 Line too long (82 > 79 characters)
# W503 Line break occurred before a binary operator
# But we don't specify them because ruff's Black already
# checks for it.
# See https://github.com/charliermarsh/ruff/issues/1842#issuecomment-1381210185
extend-ignore = [
"E501",
"S101", # Use of `assert` detected
"B017", # `assertRaises(Exception)` should be considered evil TODO
"PGH004", # Use specific rule codes when using `noqa` TODO
"B905", # `zip()` without an explicit `strict=` parameter
"N802", # Function name should be lowercase
"N999", # Invalid module name. We should revisit this in the future, TODO
"RUF012", # Mutable class attributes should be annotated with `typing.ClassVar` TODO
"S310", # Audit URL open for permitted schemes. Allowing use of `file:` or custom schemes is often unexpected.
"S603", # `subprocess` call: check for execution of untrusted input
"ISC001", # ruff format asks to disable this feature
]
extend-exclude = ["docs", "build"]
# Hardcode to Python 3.9.
# Reminder to update mesa-examples if the value below is changed.
target-version = "py39"