-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
133 lines (124 loc) · 5.11 KB
/
Copy pathpyproject.toml
File metadata and controls
133 lines (124 loc) · 5.11 KB
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
131
132
133
[project]
name = "nflplotpy"
version = "0.9.0"
requires-python = ">=3.8"
description = "Python NFL visualization package - nflplotR equivalent for matplotlib, plotly, and seaborn"
urls = { homepage = "https://github.com/joelfeinberg/nflplotpy"}
authors = [{name = "Joel Feinberg", email = "jbf302@gmail.com"}]
readme = "README.md"
license = {text = "MIT"}
dependencies = [
"appdirs>=1.4.4",
"matplotlib>=3.5.0",
"pillow>=8.0.0",
"requests>=2.25.0",
"pandas>=1.3,<3.0",
"numpy>=1.20,<3.0",
"jinja2>=3.0.0",
]
classifiers = [
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Scientific/Engineering :: Information Analysis',
'Topic :: Scientific/Engineering :: Visualization',
]
keywords = ["nfl", "football", "visualization", "plotting", "matplotlib", "plotly", "seaborn", "nflverse"]
[project.optional-dependencies]
plotly = ["plotly>=5.0.0"]
seaborn = ["seaborn>=0.11.0"]
nfldata = ["nfl_data_py>=0.3.0"]
all = ["plotly>=5.0.0", "seaborn>=0.11.0", "nfl_data_py>=0.3.0"]
dev = [
"pytest>=6.0",
"pytest-cov",
"ruff",
"mypy",
"build",
"twine",
]
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
packages = ["nflplotpy"]
[tool.ruff]
line-length = 88
target-version = "py38"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "N", "UP", "YTT", "S", "BLE", "FBT", "B", "A", "COM", "C4", "DTZ", "T10", "EM", "EXE", "FA", "ISC", "ICN", "G", "INP", "PIE", "T20", "PYI", "PT", "Q", "RSE", "RET", "SLF", "SLOT", "SIM", "TID", "TCH", "INT", "ARG", "PTH", "TD", "FIX", "ERA", "PD", "PGH", "PL", "TRY", "FLY", "NPY", "PERF", "FURB", "LOG", "RUF"]
ignore = [
"E501", # Line too long (handled by formatter)
"COM812", # Missing trailing comma (handled by formatter)
"ISC001", # Implicit string concatenation (handled by formatter)
# Design pattern ignores for better CI compatibility
"FBT001", # Boolean-typed positional argument
"FBT002", # Boolean default positional argument
"FBT003", # Boolean positional value in function call
"ARG001", # Unused function argument
"ARG002", # Unused method argument
"PLR0913", # Too many arguments
"PLR2004", # Magic value used in comparison
"PLR0912", # Too many branches
"PLC0415", # Import should be at top-level
"BLE001", # Do not catch blind exception
"TRY300", # Consider moving statement to else block
"TD002", # Missing author in TODO
"TD003", # Missing issue link for TODO
"FIX002", # Line contains TODO
"PLW0603", # Using global statement is discouraged
"S110", # try-except-pass detected
"N806", # Variable in function should be lowercase
"A002", # Function argument shadowing builtin
"PERF203", # try-except within loop
"PLW2901", # for loop variable overwritten
"PD901", # Avoid generic variable name df
"SIM115", # Use context manager for opening files
"PTH108", # os.unlink should be replaced by Path.unlink
"PTH110", # os.path.exists should be replaced by Path.exists
"PTH118", # os.path.join should be replaced by Path
"PTH120", # os.path.dirname should be replaced by Path.parent
"B904", # Within except clause, raise with from
"T201", # print found (for examples)
"SIM105", # Use contextlib.suppress instead of try-except-pass
"SIM108", # Use ternary operator instead of if-else-block
"NPY002", # Replace legacy np.random calls with Generator
"PLR0915", # Too many statements
"PLC0206", # Extracting value from dictionary without .items()
]
[tool.ruff.lint.per-file-ignores]
"tests/*" = ["ALL"] # Skip linting tests for CI compatibility
"examples/*" = ["ALL"] # Skip linting examples for CI compatibility
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = "--strict-markers --strict-config --cov=nflplotpy"
[tool.mypy]
python_version = "3.8"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true
strict_equality = true