pyrox-client 0.2.2__tar.gz → 0.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/PKG-INFO +2 -1
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/pyproject.toml +1 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/src/pyrox/__init__.py +1 -1
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/src/pyrox/core.py +21 -7
- pyrox_client-0.2.2/.venv-pyrox-test/lib/python3.13/site-packages/pandas/pyproject.toml +0 -819
- pyrox_client-0.2.2/.venv-pyrox-test/lib/python3.13/site-packages/pyarrow/tests/data/orc/README.md +0 -22
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2024_Dallas.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2024_Hamburg.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2024_London.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2024_Paris.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2025_Barcelona.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2025_Berlin.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2025_Glasgow.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2025_Johannesburg.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2025_Malaga.png +0 -0
- pyrox_client-0.2.2/example_notebooks/event_dists/event_2025_Shanghai.png +0 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/.gitignore +0 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/README.md +0 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/img.png +0 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/img_1.png +0 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/src/pyrox/constants.py +0 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/src/pyrox/errors.py +0 -0
- {pyrox_client-0.2.2 → pyrox_client-0.2.3}/src/pyrox/helpers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyrox-client
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: HYROX race data client – retrieve full race results via Python
|
|
5
5
|
Project-URL: Homepage, https://github.com/vmatei2/pyrox-client
|
|
6
6
|
Project-URL: Issues, https://github.com/vmatei2/pyrox-client/issues
|
|
@@ -17,6 +17,7 @@ Requires-Dist: platformdirs>=4.2.0
|
|
|
17
17
|
Requires-Dist: pyarrow>=22.0.0
|
|
18
18
|
Requires-Dist: s3fs>=2024.2.0
|
|
19
19
|
Requires-Dist: statsmodels>=0.14.6
|
|
20
|
+
Requires-Dist: twine>=6.2.0
|
|
20
21
|
Description-Content-Type: text/markdown
|
|
21
22
|
|
|
22
23
|
# pyrox-client
|
|
@@ -195,12 +195,16 @@ class PyroxClient:
|
|
|
195
195
|
if season is not None:
|
|
196
196
|
df = df[df["season"] == int(season)]
|
|
197
197
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
198
|
+
if "file_last_modified" in df.columns:
|
|
199
|
+
races = (
|
|
200
|
+
df[["season", "location", "file_last_modified"]]
|
|
201
|
+
.groupby(["season", "location"], as_index=False)["file_last_modified"]
|
|
202
|
+
.max()
|
|
203
|
+
)
|
|
204
|
+
else:
|
|
205
|
+
races = df[["season", "location"]].drop_duplicates()
|
|
206
|
+
|
|
207
|
+
return races.sort_values(["season", "location"]).reset_index(drop=True)
|
|
204
208
|
|
|
205
209
|
def _manifest_row(
|
|
206
210
|
self, season: int, location: str, year: Optional[int] = None
|
|
@@ -250,6 +254,15 @@ class PyroxClient:
|
|
|
250
254
|
division: Optional[str] = None,
|
|
251
255
|
) -> pd.DataFrame:
|
|
252
256
|
url = self._cdn_url_from_manifest(season, location, year)
|
|
257
|
+
return self._get_race_from_url(url, gender, division)
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
def _get_race_from_url(
|
|
261
|
+
self,
|
|
262
|
+
url: str,
|
|
263
|
+
gender: Optional[str] = None,
|
|
264
|
+
division: Optional[str] = None,
|
|
265
|
+
) -> pd.DataFrame:
|
|
253
266
|
filters = self._filters_for_race(gender, division)
|
|
254
267
|
try:
|
|
255
268
|
with fsspec.open(url, "rb") as f:
|
|
@@ -264,6 +277,7 @@ class PyroxClient:
|
|
|
264
277
|
except Exception as e:
|
|
265
278
|
raise FileNotFoundError(f"CDN read failed for {url}: {e}") from e
|
|
266
279
|
|
|
280
|
+
|
|
267
281
|
def get_race(
|
|
268
282
|
self,
|
|
269
283
|
season: int,
|
|
@@ -514,4 +528,4 @@ def mmss_to_minutes(s: pd.Series) -> pd.Series:
|
|
|
514
528
|
s = s.astype(str).str.strip()
|
|
515
529
|
# if it's MM:SS, promote to 0:MM:SS so pandas parses it
|
|
516
530
|
s = s.where(s.str.count(":") == 2, "0:" + s)
|
|
517
|
-
return pd.to_timedelta(s, errors="coerce").dt.total_seconds() / 60.0
|
|
531
|
+
return pd.to_timedelta(s, errors="coerce").dt.total_seconds() / 60.0
|
|
@@ -1,819 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
# Minimum requirements for the build system to execute.
|
|
3
|
-
# See https://github.com/scipy/scipy/pull/12940 for the AIX issue.
|
|
4
|
-
requires = [
|
|
5
|
-
"meson-python>=0.13.1",
|
|
6
|
-
"meson>=1.2.1,<2",
|
|
7
|
-
"wheel",
|
|
8
|
-
"Cython<4.0.0a0", # Note: sync with setup.py, environment.yml and asv.conf.json
|
|
9
|
-
# Force numpy higher than 2.0rc1, so that built wheels are compatible
|
|
10
|
-
# with both numpy 1 and 2
|
|
11
|
-
"numpy>=2.0",
|
|
12
|
-
"versioneer[toml]"
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
build-backend = "mesonpy"
|
|
16
|
-
|
|
17
|
-
[project]
|
|
18
|
-
name = 'pandas'
|
|
19
|
-
dynamic = [
|
|
20
|
-
'version'
|
|
21
|
-
]
|
|
22
|
-
description = 'Powerful data structures for data analysis, time series, and statistics'
|
|
23
|
-
readme = 'README.md'
|
|
24
|
-
authors = [
|
|
25
|
-
{ name = 'The Pandas Development Team', email='pandas-dev@python.org' },
|
|
26
|
-
]
|
|
27
|
-
license = {file = 'LICENSE'}
|
|
28
|
-
requires-python = '>=3.9'
|
|
29
|
-
dependencies = [
|
|
30
|
-
"numpy>=1.22.4; python_version<'3.11'",
|
|
31
|
-
"numpy>=1.23.2; python_version=='3.11'",
|
|
32
|
-
"numpy>=1.26.0; python_version>='3.12'",
|
|
33
|
-
"python-dateutil>=2.8.2",
|
|
34
|
-
"pytz>=2020.1",
|
|
35
|
-
"tzdata>=2022.7"
|
|
36
|
-
]
|
|
37
|
-
classifiers = [
|
|
38
|
-
'Development Status :: 5 - Production/Stable',
|
|
39
|
-
'Environment :: Console',
|
|
40
|
-
'Intended Audience :: Science/Research',
|
|
41
|
-
'License :: OSI Approved :: BSD License',
|
|
42
|
-
'Operating System :: OS Independent',
|
|
43
|
-
'Programming Language :: Cython',
|
|
44
|
-
'Programming Language :: Python',
|
|
45
|
-
'Programming Language :: Python :: 3',
|
|
46
|
-
'Programming Language :: Python :: 3 :: Only',
|
|
47
|
-
'Programming Language :: Python :: 3.9',
|
|
48
|
-
'Programming Language :: Python :: 3.10',
|
|
49
|
-
'Programming Language :: Python :: 3.11',
|
|
50
|
-
'Programming Language :: Python :: 3.12',
|
|
51
|
-
'Programming Language :: Python :: 3.13',
|
|
52
|
-
'Programming Language :: Python :: 3.14',
|
|
53
|
-
'Topic :: Scientific/Engineering'
|
|
54
|
-
]
|
|
55
|
-
|
|
56
|
-
[project.urls]
|
|
57
|
-
homepage = 'https://pandas.pydata.org'
|
|
58
|
-
documentation = 'https://pandas.pydata.org/docs/'
|
|
59
|
-
repository = 'https://github.com/pandas-dev/pandas'
|
|
60
|
-
|
|
61
|
-
[project.entry-points."pandas_plotting_backends"]
|
|
62
|
-
matplotlib = "pandas:plotting._matplotlib"
|
|
63
|
-
|
|
64
|
-
[project.optional-dependencies]
|
|
65
|
-
test = ['hypothesis>=6.46.1', 'pytest>=7.3.2', 'pytest-xdist>=2.2.0']
|
|
66
|
-
pyarrow = ['pyarrow>=10.0.1']
|
|
67
|
-
performance = ['bottleneck>=1.3.6', 'numba>=0.56.4', 'numexpr>=2.8.4']
|
|
68
|
-
computation = ['scipy>=1.10.0', 'xarray>=2022.12.0']
|
|
69
|
-
fss = ['fsspec>=2022.11.0']
|
|
70
|
-
aws = ['s3fs>=2022.11.0']
|
|
71
|
-
gcp = ['gcsfs>=2022.11.0', 'pandas-gbq>=0.19.0']
|
|
72
|
-
excel = ['odfpy>=1.4.1', 'openpyxl>=3.1.0', 'python-calamine>=0.1.7', 'pyxlsb>=1.0.10', 'xlrd>=2.0.1', 'xlsxwriter>=3.0.5']
|
|
73
|
-
parquet = ['pyarrow>=10.0.1']
|
|
74
|
-
feather = ['pyarrow>=10.0.1']
|
|
75
|
-
hdf5 = [# blosc only available on conda (https://github.com/Blosc/python-blosc/issues/297)
|
|
76
|
-
#'blosc>=1.20.1',
|
|
77
|
-
'tables>=3.8.0']
|
|
78
|
-
spss = ['pyreadstat>=1.2.0']
|
|
79
|
-
postgresql = ['SQLAlchemy>=2.0.0', 'psycopg2>=2.9.6', 'adbc-driver-postgresql>=0.8.0']
|
|
80
|
-
mysql = ['SQLAlchemy>=2.0.0', 'pymysql>=1.0.2']
|
|
81
|
-
sql-other = ['SQLAlchemy>=2.0.0', 'adbc-driver-postgresql>=0.8.0', 'adbc-driver-sqlite>=0.8.0']
|
|
82
|
-
html = ['beautifulsoup4>=4.11.2', 'html5lib>=1.1', 'lxml>=4.9.2']
|
|
83
|
-
xml = ['lxml>=4.9.2']
|
|
84
|
-
plot = ['matplotlib>=3.6.3']
|
|
85
|
-
output-formatting = ['jinja2>=3.1.2', 'tabulate>=0.9.0']
|
|
86
|
-
clipboard = ['PyQt5>=5.15.9', 'qtpy>=2.3.0']
|
|
87
|
-
compression = ['zstandard>=0.19.0']
|
|
88
|
-
consortium-standard = ['dataframe-api-compat>=0.1.7']
|
|
89
|
-
all = ['adbc-driver-postgresql>=0.8.0',
|
|
90
|
-
'adbc-driver-sqlite>=0.8.0',
|
|
91
|
-
'beautifulsoup4>=4.11.2',
|
|
92
|
-
# blosc only available on conda (https://github.com/Blosc/python-blosc/issues/297)
|
|
93
|
-
#'blosc>=1.21.3',
|
|
94
|
-
'bottleneck>=1.3.6',
|
|
95
|
-
'dataframe-api-compat>=0.1.7',
|
|
96
|
-
'fastparquet>=2022.12.0',
|
|
97
|
-
'fsspec>=2022.11.0',
|
|
98
|
-
'gcsfs>=2022.11.0',
|
|
99
|
-
'html5lib>=1.1',
|
|
100
|
-
'hypothesis>=6.46.1',
|
|
101
|
-
'jinja2>=3.1.2',
|
|
102
|
-
'lxml>=4.9.2',
|
|
103
|
-
'matplotlib>=3.6.3',
|
|
104
|
-
'numba>=0.56.4',
|
|
105
|
-
'numexpr>=2.8.4',
|
|
106
|
-
'odfpy>=1.4.1',
|
|
107
|
-
'openpyxl>=3.1.0',
|
|
108
|
-
'pandas-gbq>=0.19.0',
|
|
109
|
-
'psycopg2>=2.9.6',
|
|
110
|
-
'pyarrow>=10.0.1',
|
|
111
|
-
'pymysql>=1.0.2',
|
|
112
|
-
'PyQt5>=5.15.9',
|
|
113
|
-
'pyreadstat>=1.2.0',
|
|
114
|
-
'pytest>=7.3.2',
|
|
115
|
-
'pytest-xdist>=2.2.0',
|
|
116
|
-
'python-calamine>=0.1.7',
|
|
117
|
-
'pyxlsb>=1.0.10',
|
|
118
|
-
'qtpy>=2.3.0',
|
|
119
|
-
'scipy>=1.10.0',
|
|
120
|
-
's3fs>=2022.11.0',
|
|
121
|
-
'SQLAlchemy>=2.0.0',
|
|
122
|
-
'tables>=3.8.0',
|
|
123
|
-
'tabulate>=0.9.0',
|
|
124
|
-
'xarray>=2022.12.0',
|
|
125
|
-
'xlrd>=2.0.1',
|
|
126
|
-
'xlsxwriter>=3.0.5',
|
|
127
|
-
'zstandard>=0.19.0']
|
|
128
|
-
|
|
129
|
-
# TODO: Remove after setuptools support is dropped.
|
|
130
|
-
[tool.setuptools]
|
|
131
|
-
include-package-data = true
|
|
132
|
-
|
|
133
|
-
[tool.setuptools.packages.find]
|
|
134
|
-
include = ["pandas", "pandas.*"]
|
|
135
|
-
namespaces = false
|
|
136
|
-
|
|
137
|
-
[tool.setuptools.exclude-package-data]
|
|
138
|
-
"*" = ["*.c", "*.h"]
|
|
139
|
-
|
|
140
|
-
# See the docstring in versioneer.py for instructions. Note that you must
|
|
141
|
-
# re-run 'versioneer.py setup' after changing this section, and commit the
|
|
142
|
-
# resulting files.
|
|
143
|
-
[tool.versioneer]
|
|
144
|
-
VCS = "git"
|
|
145
|
-
style = "pep440"
|
|
146
|
-
versionfile_source = "pandas/_version.py"
|
|
147
|
-
versionfile_build = "pandas/_version.py"
|
|
148
|
-
tag_prefix = "v"
|
|
149
|
-
parentdir_prefix = "pandas-"
|
|
150
|
-
|
|
151
|
-
[tool.meson-python.args]
|
|
152
|
-
setup = ['--vsenv'] # For Windows
|
|
153
|
-
|
|
154
|
-
[tool.cibuildwheel]
|
|
155
|
-
skip = "cp38-* *_i686 *_ppc64le *_s390x"
|
|
156
|
-
build-verbosity = "3"
|
|
157
|
-
environment = {LDFLAGS="-Wl,--strip-all"}
|
|
158
|
-
# pytz 2024.2 causing some failures
|
|
159
|
-
test-requires = "hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0 pytz<2024.2"
|
|
160
|
-
test-command = """
|
|
161
|
-
PANDAS_CI='1' python -c 'import pandas as pd; \
|
|
162
|
-
pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db", "-n 2", "--no-strict-data-files"]); \
|
|
163
|
-
pd.test(extra_args=["-m not clipboard and single_cpu and not slow and not network and not db", "--no-strict-data-files"]);' \
|
|
164
|
-
"""
|
|
165
|
-
enable = ["cpython-freethreading"]
|
|
166
|
-
before-build = "PACKAGE_DIR={package} bash {package}/scripts/cibw_before_build.sh"
|
|
167
|
-
|
|
168
|
-
[tool.cibuildwheel.windows]
|
|
169
|
-
before-build = "pip install delvewheel"
|
|
170
|
-
repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}"
|
|
171
|
-
|
|
172
|
-
[[tool.cibuildwheel.overrides]]
|
|
173
|
-
select = "*-manylinux_aarch64*"
|
|
174
|
-
test-command = """
|
|
175
|
-
PANDAS_CI='1' python -c 'import pandas as pd; \
|
|
176
|
-
pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db and not fails_arm_wheels", "-n 2", "--no-strict-data-files"]); \
|
|
177
|
-
pd.test(extra_args=["-m not clipboard and single_cpu and not slow and not network and not db", "--no-strict-data-files"]);' \
|
|
178
|
-
"""
|
|
179
|
-
|
|
180
|
-
[[tool.cibuildwheel.overrides]]
|
|
181
|
-
select = "*-musllinux*"
|
|
182
|
-
before-test = "apk update && apk add musl-locales"
|
|
183
|
-
|
|
184
|
-
[[tool.cibuildwheel.overrides]]
|
|
185
|
-
select = "*-win*"
|
|
186
|
-
# We test separately for Windows, since we use
|
|
187
|
-
# the windowsservercore docker image to check if any dlls are
|
|
188
|
-
# missing from the wheel
|
|
189
|
-
test-command = ""
|
|
190
|
-
|
|
191
|
-
[[tool.cibuildwheel.overrides]]
|
|
192
|
-
# Don't strip wheels on macOS.
|
|
193
|
-
# macOS doesn't support stripping wheels with linker
|
|
194
|
-
# https://github.com/MacPython/numpy-wheels/pull/87#issuecomment-624878264
|
|
195
|
-
select = "*-macosx*"
|
|
196
|
-
environment = {CFLAGS="-g0"}
|
|
197
|
-
|
|
198
|
-
[tool.black]
|
|
199
|
-
target-version = ['py39', 'py310']
|
|
200
|
-
required-version = '23.11.0'
|
|
201
|
-
exclude = '''
|
|
202
|
-
(
|
|
203
|
-
asv_bench/env
|
|
204
|
-
| \.egg
|
|
205
|
-
| \.git
|
|
206
|
-
| \.hg
|
|
207
|
-
| \.mypy_cache
|
|
208
|
-
| \.nox
|
|
209
|
-
| \.tox
|
|
210
|
-
| \.venv
|
|
211
|
-
| _build
|
|
212
|
-
| buck-out
|
|
213
|
-
| build
|
|
214
|
-
| dist
|
|
215
|
-
| setup.py
|
|
216
|
-
)
|
|
217
|
-
'''
|
|
218
|
-
|
|
219
|
-
[tool.ruff]
|
|
220
|
-
line-length = 88
|
|
221
|
-
target-version = "py310"
|
|
222
|
-
fix = true
|
|
223
|
-
unfixable = []
|
|
224
|
-
typing-modules = ["pandas._typing"]
|
|
225
|
-
|
|
226
|
-
select = [
|
|
227
|
-
# pyflakes
|
|
228
|
-
"F",
|
|
229
|
-
# pycodestyle
|
|
230
|
-
"E", "W",
|
|
231
|
-
# flake8-2020
|
|
232
|
-
"YTT",
|
|
233
|
-
# flake8-bugbear
|
|
234
|
-
"B",
|
|
235
|
-
# flake8-quotes
|
|
236
|
-
"Q",
|
|
237
|
-
# flake8-debugger
|
|
238
|
-
"T10",
|
|
239
|
-
# flake8-gettext
|
|
240
|
-
"INT",
|
|
241
|
-
# pylint
|
|
242
|
-
"PL",
|
|
243
|
-
# misc lints
|
|
244
|
-
"PIE",
|
|
245
|
-
# flake8-pyi
|
|
246
|
-
"PYI",
|
|
247
|
-
# tidy imports
|
|
248
|
-
"TID",
|
|
249
|
-
# implicit string concatenation
|
|
250
|
-
"ISC",
|
|
251
|
-
# type-checking imports
|
|
252
|
-
"TCH",
|
|
253
|
-
# comprehensions
|
|
254
|
-
"C4",
|
|
255
|
-
# pygrep-hooks
|
|
256
|
-
"PGH",
|
|
257
|
-
# Ruff-specific rules
|
|
258
|
-
"RUF",
|
|
259
|
-
# flake8-bandit: exec-builtin
|
|
260
|
-
"S102",
|
|
261
|
-
# numpy-legacy-random
|
|
262
|
-
"NPY002",
|
|
263
|
-
# Perflint
|
|
264
|
-
"PERF",
|
|
265
|
-
# flynt
|
|
266
|
-
"FLY",
|
|
267
|
-
# flake8-logging-format
|
|
268
|
-
"G",
|
|
269
|
-
# flake8-future-annotations
|
|
270
|
-
"FA",
|
|
271
|
-
]
|
|
272
|
-
|
|
273
|
-
ignore = [
|
|
274
|
-
### Intentionally disabled
|
|
275
|
-
# space before : (needed for how black formats slicing)
|
|
276
|
-
"E203",
|
|
277
|
-
# module level import not at top of file
|
|
278
|
-
"E402",
|
|
279
|
-
# do not assign a lambda expression, use a def
|
|
280
|
-
"E731",
|
|
281
|
-
# line break before binary operator
|
|
282
|
-
# "W503", # not yet implemented
|
|
283
|
-
# line break after binary operator
|
|
284
|
-
# "W504", # not yet implemented
|
|
285
|
-
# controversial
|
|
286
|
-
"B006",
|
|
287
|
-
# controversial
|
|
288
|
-
"B007",
|
|
289
|
-
# controversial
|
|
290
|
-
"B008",
|
|
291
|
-
# setattr is used to side-step mypy
|
|
292
|
-
"B009",
|
|
293
|
-
# getattr is used to side-step mypy
|
|
294
|
-
"B010",
|
|
295
|
-
# tests use assert False
|
|
296
|
-
"B011",
|
|
297
|
-
# tests use comparisons but not their returned value
|
|
298
|
-
"B015",
|
|
299
|
-
# false positives
|
|
300
|
-
"B019",
|
|
301
|
-
# Loop control variable overrides iterable it iterates
|
|
302
|
-
"B020",
|
|
303
|
-
# Function definition does not bind loop variable
|
|
304
|
-
"B023",
|
|
305
|
-
# Functions defined inside a loop must not use variables redefined in the loop
|
|
306
|
-
# "B301", # not yet implemented
|
|
307
|
-
# Only works with python >=3.10
|
|
308
|
-
"B905",
|
|
309
|
-
# Too many arguments to function call
|
|
310
|
-
"PLR0913",
|
|
311
|
-
# Too many returns
|
|
312
|
-
"PLR0911",
|
|
313
|
-
# Too many branches
|
|
314
|
-
"PLR0912",
|
|
315
|
-
# Too many statements
|
|
316
|
-
"PLR0915",
|
|
317
|
-
# Redefined loop name
|
|
318
|
-
"PLW2901",
|
|
319
|
-
# Global statements are discouraged
|
|
320
|
-
"PLW0603",
|
|
321
|
-
# Docstrings should not be included in stubs
|
|
322
|
-
"PYI021",
|
|
323
|
-
# Use `typing.NamedTuple` instead of `collections.namedtuple`
|
|
324
|
-
"PYI024",
|
|
325
|
-
# No builtin `eval()` allowed
|
|
326
|
-
"PGH001",
|
|
327
|
-
# compare-to-empty-string
|
|
328
|
-
"PLC1901",
|
|
329
|
-
# while int | float can be shortened to float, the former is more explicit
|
|
330
|
-
"PYI041",
|
|
331
|
-
# incorrect-dict-iterator, flags valid Series.items usage
|
|
332
|
-
"PERF102",
|
|
333
|
-
# try-except-in-loop, becomes useless in Python 3.11
|
|
334
|
-
"PERF203",
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
### TODO: Enable gradually
|
|
338
|
-
# Useless statement
|
|
339
|
-
"B018",
|
|
340
|
-
# Within an except clause, raise exceptions with ...
|
|
341
|
-
"B904",
|
|
342
|
-
# Magic number
|
|
343
|
-
"PLR2004",
|
|
344
|
-
# comparison-with-itself
|
|
345
|
-
"PLR0124",
|
|
346
|
-
# Consider `elif` instead of `else` then `if` to remove indentation level
|
|
347
|
-
"PLR5501",
|
|
348
|
-
# collection-literal-concatenation
|
|
349
|
-
"RUF005",
|
|
350
|
-
# pairwise-over-zipped (>=PY310 only)
|
|
351
|
-
"RUF007",
|
|
352
|
-
# explicit-f-string-type-conversion
|
|
353
|
-
"RUF010",
|
|
354
|
-
# mutable-class-default
|
|
355
|
-
"RUF012"
|
|
356
|
-
]
|
|
357
|
-
|
|
358
|
-
exclude = [
|
|
359
|
-
"doc/sphinxext/*.py",
|
|
360
|
-
"doc/build/*.py",
|
|
361
|
-
"doc/temp/*.py",
|
|
362
|
-
".eggs/*.py",
|
|
363
|
-
# vendored files
|
|
364
|
-
"pandas/util/version/*",
|
|
365
|
-
"pandas/io/clipboard/__init__.py",
|
|
366
|
-
# exclude asv benchmark environments from linting
|
|
367
|
-
"env",
|
|
368
|
-
]
|
|
369
|
-
|
|
370
|
-
[tool.ruff.per-file-ignores]
|
|
371
|
-
# relative imports allowed for asv_bench
|
|
372
|
-
"asv_bench/*" = ["TID", "NPY002"]
|
|
373
|
-
# to be enabled gradually
|
|
374
|
-
"pandas/core/*" = ["PLR5501"]
|
|
375
|
-
"pandas/tests/*" = ["B028", "FLY"]
|
|
376
|
-
"scripts/*" = ["B028"]
|
|
377
|
-
# Keep this one enabled
|
|
378
|
-
"pandas/_typing.py" = ["TCH"]
|
|
379
|
-
|
|
380
|
-
[tool.pylint.messages_control]
|
|
381
|
-
max-line-length = 88
|
|
382
|
-
disable = [
|
|
383
|
-
# intentionally turned off
|
|
384
|
-
"bad-mcs-classmethod-argument",
|
|
385
|
-
"broad-except",
|
|
386
|
-
"c-extension-no-member",
|
|
387
|
-
"comparison-with-itself",
|
|
388
|
-
"consider-using-enumerate",
|
|
389
|
-
"import-error",
|
|
390
|
-
"import-outside-toplevel",
|
|
391
|
-
"invalid-name",
|
|
392
|
-
"invalid-unary-operand-type",
|
|
393
|
-
"line-too-long",
|
|
394
|
-
"no-else-continue",
|
|
395
|
-
"no-else-raise",
|
|
396
|
-
"no-else-return",
|
|
397
|
-
"no-member",
|
|
398
|
-
"no-name-in-module",
|
|
399
|
-
"not-an-iterable",
|
|
400
|
-
"overridden-final-method",
|
|
401
|
-
"pointless-statement",
|
|
402
|
-
"redundant-keyword-arg",
|
|
403
|
-
"singleton-comparison",
|
|
404
|
-
"too-many-ancestors",
|
|
405
|
-
"too-many-arguments",
|
|
406
|
-
"too-many-boolean-expressions",
|
|
407
|
-
"too-many-branches",
|
|
408
|
-
"too-many-function-args",
|
|
409
|
-
"too-many-instance-attributes",
|
|
410
|
-
"too-many-locals",
|
|
411
|
-
"too-many-nested-blocks",
|
|
412
|
-
"too-many-public-methods",
|
|
413
|
-
"too-many-return-statements",
|
|
414
|
-
"too-many-statements",
|
|
415
|
-
"unexpected-keyword-arg",
|
|
416
|
-
"ungrouped-imports",
|
|
417
|
-
"unsubscriptable-object",
|
|
418
|
-
"unsupported-assignment-operation",
|
|
419
|
-
"unsupported-membership-test",
|
|
420
|
-
"unused-import",
|
|
421
|
-
"use-dict-literal",
|
|
422
|
-
"use-implicit-booleaness-not-comparison",
|
|
423
|
-
"use-implicit-booleaness-not-len",
|
|
424
|
-
"wrong-import-order",
|
|
425
|
-
"wrong-import-position",
|
|
426
|
-
"redefined-loop-name",
|
|
427
|
-
|
|
428
|
-
# misc
|
|
429
|
-
"abstract-class-instantiated",
|
|
430
|
-
"no-value-for-parameter",
|
|
431
|
-
"undefined-variable",
|
|
432
|
-
"unpacking-non-sequence",
|
|
433
|
-
"used-before-assignment",
|
|
434
|
-
|
|
435
|
-
# pylint type "C": convention, for programming standard violation
|
|
436
|
-
"missing-class-docstring",
|
|
437
|
-
"missing-function-docstring",
|
|
438
|
-
"missing-module-docstring",
|
|
439
|
-
"superfluous-parens",
|
|
440
|
-
"too-many-lines",
|
|
441
|
-
"unidiomatic-typecheck",
|
|
442
|
-
"unnecessary-dunder-call",
|
|
443
|
-
"unnecessary-lambda-assignment",
|
|
444
|
-
|
|
445
|
-
# pylint type "R": refactor, for bad code smell
|
|
446
|
-
"consider-using-with",
|
|
447
|
-
"cyclic-import",
|
|
448
|
-
"duplicate-code",
|
|
449
|
-
"inconsistent-return-statements",
|
|
450
|
-
"redefined-argument-from-local",
|
|
451
|
-
"too-few-public-methods",
|
|
452
|
-
|
|
453
|
-
# pylint type "W": warning, for python specific problems
|
|
454
|
-
"abstract-method",
|
|
455
|
-
"arguments-differ",
|
|
456
|
-
"arguments-out-of-order",
|
|
457
|
-
"arguments-renamed",
|
|
458
|
-
"attribute-defined-outside-init",
|
|
459
|
-
"broad-exception-raised",
|
|
460
|
-
"comparison-with-callable",
|
|
461
|
-
"dangerous-default-value",
|
|
462
|
-
"deprecated-module",
|
|
463
|
-
"eval-used",
|
|
464
|
-
"expression-not-assigned",
|
|
465
|
-
"fixme",
|
|
466
|
-
"global-statement",
|
|
467
|
-
"invalid-overridden-method",
|
|
468
|
-
"keyword-arg-before-vararg",
|
|
469
|
-
"possibly-unused-variable",
|
|
470
|
-
"protected-access",
|
|
471
|
-
"raise-missing-from",
|
|
472
|
-
"redefined-builtin",
|
|
473
|
-
"redefined-outer-name",
|
|
474
|
-
"self-cls-assignment",
|
|
475
|
-
"signature-differs",
|
|
476
|
-
"super-init-not-called",
|
|
477
|
-
"try-except-raise",
|
|
478
|
-
"unnecessary-lambda",
|
|
479
|
-
"unused-argument",
|
|
480
|
-
"unused-variable",
|
|
481
|
-
"using-constant-test",
|
|
482
|
-
|
|
483
|
-
# disabled on 2.3.x branch
|
|
484
|
-
"consider-using-in",
|
|
485
|
-
"simplifiable-if-expression",
|
|
486
|
-
]
|
|
487
|
-
|
|
488
|
-
[tool.pytest.ini_options]
|
|
489
|
-
# sync minversion with pyproject.toml & install.rst
|
|
490
|
-
minversion = "7.3.2"
|
|
491
|
-
addopts = "--strict-markers --strict-config --capture=no --durations=30 --junitxml=test-data.xml"
|
|
492
|
-
empty_parameter_set_mark = "fail_at_collect"
|
|
493
|
-
xfail_strict = true
|
|
494
|
-
testpaths = "pandas"
|
|
495
|
-
doctest_optionflags = [
|
|
496
|
-
"NORMALIZE_WHITESPACE",
|
|
497
|
-
"IGNORE_EXCEPTION_DETAIL",
|
|
498
|
-
"ELLIPSIS",
|
|
499
|
-
]
|
|
500
|
-
filterwarnings = [
|
|
501
|
-
"error:::pandas",
|
|
502
|
-
"error::ResourceWarning",
|
|
503
|
-
"error::pytest.PytestUnraisableExceptionWarning",
|
|
504
|
-
# TODO(PY311-minimum): Specify EncodingWarning
|
|
505
|
-
# Ignore 3rd party EncodingWarning but raise on pandas'
|
|
506
|
-
"ignore:.*encoding.* argument not specified",
|
|
507
|
-
"error:.*encoding.* argument not specified::pandas",
|
|
508
|
-
"ignore:.*ssl.SSLSocket:pytest.PytestUnraisableExceptionWarning",
|
|
509
|
-
"ignore:.*ssl.SSLSocket:ResourceWarning",
|
|
510
|
-
# GH 44844: Can remove once minimum matplotlib version >= 3.7
|
|
511
|
-
"ignore:.*FileIO:pytest.PytestUnraisableExceptionWarning",
|
|
512
|
-
"ignore:.*BufferedRandom:ResourceWarning",
|
|
513
|
-
"ignore::ResourceWarning:asyncio",
|
|
514
|
-
# From plotting doctests
|
|
515
|
-
"ignore:More than 20 figures have been opened:RuntimeWarning",
|
|
516
|
-
# Will be fixed in numba 0.56: https://github.com/numba/numba/issues/7758
|
|
517
|
-
"ignore:`np.MachAr` is deprecated:DeprecationWarning:numba",
|
|
518
|
-
"ignore:.*urllib3:DeprecationWarning:botocore",
|
|
519
|
-
"ignore:Setuptools is replacing distutils.:UserWarning:_distutils_hack",
|
|
520
|
-
# https://github.com/PyTables/PyTables/issues/822
|
|
521
|
-
"ignore:a closed node found in the registry:UserWarning:tables",
|
|
522
|
-
"ignore:`np.object` is a deprecated:DeprecationWarning:tables",
|
|
523
|
-
"ignore:tostring:DeprecationWarning:tables",
|
|
524
|
-
"ignore:distutils Version classes are deprecated:DeprecationWarning:pandas_datareader",
|
|
525
|
-
"ignore:distutils Version classes are deprecated:DeprecationWarning:numexpr",
|
|
526
|
-
"ignore:distutils Version classes are deprecated:DeprecationWarning:fastparquet",
|
|
527
|
-
"ignore:distutils Version classes are deprecated:DeprecationWarning:fsspec",
|
|
528
|
-
# Can be removed once https://github.com/numpy/numpy/pull/24794 is merged
|
|
529
|
-
"ignore:.*In the future `np.long` will be defined as.*:FutureWarning",
|
|
530
|
-
# https://github.com/numpy/numpy/pull/29301
|
|
531
|
-
"ignore:.*align should be passed:",
|
|
532
|
-
]
|
|
533
|
-
junit_family = "xunit2"
|
|
534
|
-
markers = [
|
|
535
|
-
"single_cpu: tests that should run on a single cpu only",
|
|
536
|
-
"slow: mark a test as slow",
|
|
537
|
-
"network: mark a test as network",
|
|
538
|
-
"db: tests requiring a database (mysql or postgres)",
|
|
539
|
-
"clipboard: mark a pd.read_clipboard test",
|
|
540
|
-
"arm_slow: mark a test as slow for arm64 architecture",
|
|
541
|
-
"skip_ubsan: Tests known to fail UBSAN check",
|
|
542
|
-
# TODO: someone should investigate this ...
|
|
543
|
-
# these tests only fail in the wheel builder and don't fail in regular
|
|
544
|
-
# ARM CI
|
|
545
|
-
"fails_arm_wheels: Tests that fail in the ARM wheel build only",
|
|
546
|
-
]
|
|
547
|
-
|
|
548
|
-
[tool.mypy]
|
|
549
|
-
# Import discovery
|
|
550
|
-
mypy_path = "typings"
|
|
551
|
-
files = ["pandas", "typings"]
|
|
552
|
-
namespace_packages = false
|
|
553
|
-
explicit_package_bases = false
|
|
554
|
-
ignore_missing_imports = true
|
|
555
|
-
follow_imports = "normal"
|
|
556
|
-
follow_imports_for_stubs = false
|
|
557
|
-
no_site_packages = false
|
|
558
|
-
no_silence_site_packages = false
|
|
559
|
-
# Platform configuration
|
|
560
|
-
python_version = "3.11"
|
|
561
|
-
platform = "linux-64"
|
|
562
|
-
# Disallow dynamic typing
|
|
563
|
-
disallow_any_unimported = false # TODO
|
|
564
|
-
disallow_any_expr = false # TODO
|
|
565
|
-
disallow_any_decorated = false # TODO
|
|
566
|
-
disallow_any_explicit = false # TODO
|
|
567
|
-
disallow_any_generics = false # TODO
|
|
568
|
-
disallow_subclassing_any = false # TODO
|
|
569
|
-
# Untyped definitions and calls
|
|
570
|
-
disallow_untyped_calls = true
|
|
571
|
-
disallow_untyped_defs = true
|
|
572
|
-
disallow_incomplete_defs = true
|
|
573
|
-
check_untyped_defs = true
|
|
574
|
-
disallow_untyped_decorators = true
|
|
575
|
-
# None and Optional handling
|
|
576
|
-
no_implicit_optional = true
|
|
577
|
-
strict_optional = true
|
|
578
|
-
# Configuring warnings
|
|
579
|
-
warn_redundant_casts = true
|
|
580
|
-
warn_unused_ignores = true
|
|
581
|
-
warn_no_return = true
|
|
582
|
-
warn_return_any = false # TODO
|
|
583
|
-
warn_unreachable = false # GH#27396
|
|
584
|
-
# Suppressing errors
|
|
585
|
-
ignore_errors = false
|
|
586
|
-
enable_error_code = "ignore-without-code"
|
|
587
|
-
# Miscellaneous strictness flags
|
|
588
|
-
allow_untyped_globals = false
|
|
589
|
-
allow_redefinition = false
|
|
590
|
-
local_partial_types = false
|
|
591
|
-
implicit_reexport = true
|
|
592
|
-
strict_equality = true
|
|
593
|
-
# Configuring error messages
|
|
594
|
-
show_error_context = false
|
|
595
|
-
show_column_numbers = false
|
|
596
|
-
show_error_codes = true
|
|
597
|
-
|
|
598
|
-
[[tool.mypy.overrides]]
|
|
599
|
-
module = [
|
|
600
|
-
"pandas._config.config", # TODO
|
|
601
|
-
"pandas._libs.*",
|
|
602
|
-
"pandas._testing.*", # TODO
|
|
603
|
-
"pandas.arrays", # TODO
|
|
604
|
-
"pandas.compat.numpy.function", # TODO
|
|
605
|
-
"pandas.compat._optional", # TODO
|
|
606
|
-
"pandas.compat.compressors", # TODO
|
|
607
|
-
"pandas.compat.pickle_compat", # TODO
|
|
608
|
-
"pandas.core._numba.executor", # TODO
|
|
609
|
-
"pandas.core.array_algos.datetimelike_accumulations", # TODO
|
|
610
|
-
"pandas.core.array_algos.masked_accumulations", # TODO
|
|
611
|
-
"pandas.core.array_algos.masked_reductions", # TODO
|
|
612
|
-
"pandas.core.array_algos.putmask", # TODO
|
|
613
|
-
"pandas.core.array_algos.quantile", # TODO
|
|
614
|
-
"pandas.core.array_algos.replace", # TODO
|
|
615
|
-
"pandas.core.array_algos.take", # TODO
|
|
616
|
-
"pandas.core.arrays.*", # TODO
|
|
617
|
-
"pandas.core.computation.*", # TODO
|
|
618
|
-
"pandas.core.dtypes.astype", # TODO
|
|
619
|
-
"pandas.core.dtypes.cast", # TODO
|
|
620
|
-
"pandas.core.dtypes.common", # TODO
|
|
621
|
-
"pandas.core.dtypes.concat", # TODO
|
|
622
|
-
"pandas.core.dtypes.dtypes", # TODO
|
|
623
|
-
"pandas.core.dtypes.generic", # TODO
|
|
624
|
-
"pandas.core.dtypes.inference", # TODO
|
|
625
|
-
"pandas.core.dtypes.missing", # TODO
|
|
626
|
-
"pandas.core.groupby.categorical", # TODO
|
|
627
|
-
"pandas.core.groupby.generic", # TODO
|
|
628
|
-
"pandas.core.groupby.grouper", # TODO
|
|
629
|
-
"pandas.core.groupby.groupby", # TODO
|
|
630
|
-
"pandas.core.groupby.ops", # TODO
|
|
631
|
-
"pandas.core.indexers.*", # TODO
|
|
632
|
-
"pandas.core.indexes.*", # TODO
|
|
633
|
-
"pandas.core.interchange.column", # TODO
|
|
634
|
-
"pandas.core.interchange.dataframe_protocol", # TODO
|
|
635
|
-
"pandas.core.interchange.from_dataframe", # TODO
|
|
636
|
-
"pandas.core.internals.*", # TODO
|
|
637
|
-
"pandas.core.methods.*", # TODO
|
|
638
|
-
"pandas.core.ops.array_ops", # TODO
|
|
639
|
-
"pandas.core.ops.common", # TODO
|
|
640
|
-
"pandas.core.ops.invalid", # TODO
|
|
641
|
-
"pandas.core.ops.mask_ops", # TODO
|
|
642
|
-
"pandas.core.ops.missing", # TODO
|
|
643
|
-
"pandas.core.reshape.*", # TODO
|
|
644
|
-
"pandas.core.strings.*", # TODO
|
|
645
|
-
"pandas.core.tools.*", # TODO
|
|
646
|
-
"pandas.core.window.common", # TODO
|
|
647
|
-
"pandas.core.window.ewm", # TODO
|
|
648
|
-
"pandas.core.window.expanding", # TODO
|
|
649
|
-
"pandas.core.window.numba_", # TODO
|
|
650
|
-
"pandas.core.window.online", # TODO
|
|
651
|
-
"pandas.core.window.rolling", # TODO
|
|
652
|
-
"pandas.core.accessor", # TODO
|
|
653
|
-
"pandas.core.algorithms", # TODO
|
|
654
|
-
"pandas.core.apply", # TODO
|
|
655
|
-
"pandas.core.arraylike", # TODO
|
|
656
|
-
"pandas.core.base", # TODO
|
|
657
|
-
"pandas.core.common", # TODO
|
|
658
|
-
"pandas.core.config_init", # TODO
|
|
659
|
-
"pandas.core.construction", # TODO
|
|
660
|
-
"pandas.core.flags", # TODO
|
|
661
|
-
"pandas.core.frame", # TODO
|
|
662
|
-
"pandas.core.generic", # TODO
|
|
663
|
-
"pandas.core.indexing", # TODO
|
|
664
|
-
"pandas.core.missing", # TODO
|
|
665
|
-
"pandas.core.nanops", # TODO
|
|
666
|
-
"pandas.core.resample", # TODO
|
|
667
|
-
"pandas.core.roperator", # TODO
|
|
668
|
-
"pandas.core.sample", # TODO
|
|
669
|
-
"pandas.core.series", # TODO
|
|
670
|
-
"pandas.core.sorting", # TODO
|
|
671
|
-
"pandas.errors", # TODO
|
|
672
|
-
"pandas.io.clipboard", # TODO
|
|
673
|
-
"pandas.io.excel._base", # TODO
|
|
674
|
-
"pandas.io.excel._odfreader", # TODO
|
|
675
|
-
"pandas.io.excel._odswriter", # TODO
|
|
676
|
-
"pandas.io.excel._openpyxl", # TODO
|
|
677
|
-
"pandas.io.excel._pyxlsb", # TODO
|
|
678
|
-
"pandas.io.excel._xlrd", # TODO
|
|
679
|
-
"pandas.io.excel._xlsxwriter", # TODO
|
|
680
|
-
"pandas.io.formats.console", # TODO
|
|
681
|
-
"pandas.io.formats.css", # TODO
|
|
682
|
-
"pandas.io.formats.excel", # TODO
|
|
683
|
-
"pandas.io.formats.format", # TODO
|
|
684
|
-
"pandas.io.formats.info", # TODO
|
|
685
|
-
"pandas.io.formats.printing", # TODO
|
|
686
|
-
"pandas.io.formats.style", # TODO
|
|
687
|
-
"pandas.io.formats.style_render", # TODO
|
|
688
|
-
"pandas.io.formats.xml", # TODO
|
|
689
|
-
"pandas.io.json.*", # TODO
|
|
690
|
-
"pandas.io.parsers.*", # TODO
|
|
691
|
-
"pandas.io.sas.sas_xport", # TODO
|
|
692
|
-
"pandas.io.sas.sas7bdat", # TODO
|
|
693
|
-
"pandas.io.clipboards", # TODO
|
|
694
|
-
"pandas.io.common", # TODO
|
|
695
|
-
"pandas.io.gbq", # TODO
|
|
696
|
-
"pandas.io.html", # TODO
|
|
697
|
-
"pandas.io.gbq", # TODO
|
|
698
|
-
"pandas.io.parquet", # TODO
|
|
699
|
-
"pandas.io.pytables", # TODO
|
|
700
|
-
"pandas.io.sql", # TODO
|
|
701
|
-
"pandas.io.stata", # TODO
|
|
702
|
-
"pandas.io.xml", # TODO
|
|
703
|
-
"pandas.plotting.*", # TODO
|
|
704
|
-
"pandas.tests.*",
|
|
705
|
-
"pandas.tseries.frequencies", # TODO
|
|
706
|
-
"pandas.tseries.holiday", # TODO
|
|
707
|
-
"pandas.util._decorators", # TODO
|
|
708
|
-
"pandas.util._doctools", # TODO
|
|
709
|
-
"pandas.util._print_versions", # TODO
|
|
710
|
-
"pandas.util._test_decorators", # TODO
|
|
711
|
-
"pandas.util._validators", # TODO
|
|
712
|
-
"pandas.util", # TODO
|
|
713
|
-
"pandas._version",
|
|
714
|
-
"pandas.conftest",
|
|
715
|
-
"pandas"
|
|
716
|
-
]
|
|
717
|
-
disallow_untyped_calls = false
|
|
718
|
-
disallow_untyped_defs = false
|
|
719
|
-
disallow_incomplete_defs = false
|
|
720
|
-
|
|
721
|
-
[[tool.mypy.overrides]]
|
|
722
|
-
module = [
|
|
723
|
-
"pandas.tests.*",
|
|
724
|
-
"pandas._version",
|
|
725
|
-
"pandas.io.clipboard",
|
|
726
|
-
]
|
|
727
|
-
check_untyped_defs = false
|
|
728
|
-
|
|
729
|
-
[[tool.mypy.overrides]]
|
|
730
|
-
module = [
|
|
731
|
-
"pandas.tests.apply.test_series_apply",
|
|
732
|
-
"pandas.tests.arithmetic.conftest",
|
|
733
|
-
"pandas.tests.arrays.sparse.test_combine_concat",
|
|
734
|
-
"pandas.tests.dtypes.test_common",
|
|
735
|
-
"pandas.tests.frame.methods.test_to_records",
|
|
736
|
-
"pandas.tests.groupby.test_rank",
|
|
737
|
-
"pandas.tests.groupby.transform.test_transform",
|
|
738
|
-
"pandas.tests.indexes.interval.test_interval",
|
|
739
|
-
"pandas.tests.indexing.test_categorical",
|
|
740
|
-
"pandas.tests.io.excel.test_writers",
|
|
741
|
-
"pandas.tests.reductions.test_reductions",
|
|
742
|
-
"pandas.tests.test_expressions",
|
|
743
|
-
]
|
|
744
|
-
ignore_errors = true
|
|
745
|
-
|
|
746
|
-
# To be kept consistent with "Import Formatting" section in contributing.rst
|
|
747
|
-
[tool.isort]
|
|
748
|
-
known_pre_libs = "pandas._config"
|
|
749
|
-
known_pre_core = ["pandas._libs", "pandas._typing", "pandas.util._*", "pandas.compat", "pandas.errors"]
|
|
750
|
-
known_dtypes = "pandas.core.dtypes"
|
|
751
|
-
known_post_core = ["pandas.tseries", "pandas.io", "pandas.plotting"]
|
|
752
|
-
sections = ["FUTURE", "STDLIB", "THIRDPARTY" ,"PRE_LIBS" , "PRE_CORE", "DTYPES", "FIRSTPARTY", "POST_CORE", "LOCALFOLDER"]
|
|
753
|
-
profile = "black"
|
|
754
|
-
combine_as_imports = true
|
|
755
|
-
force_grid_wrap = 2
|
|
756
|
-
force_sort_within_sections = true
|
|
757
|
-
skip_glob = "env"
|
|
758
|
-
skip = "pandas/__init__.py"
|
|
759
|
-
|
|
760
|
-
[tool.pyright]
|
|
761
|
-
pythonVersion = "3.11"
|
|
762
|
-
typeCheckingMode = "basic"
|
|
763
|
-
useLibraryCodeForTypes = false
|
|
764
|
-
include = ["pandas", "typings"]
|
|
765
|
-
exclude = ["pandas/tests", "pandas/io/clipboard", "pandas/util/version", "pandas/core/_numba/extensions.py"]
|
|
766
|
-
# enable subset of "strict"
|
|
767
|
-
reportDuplicateImport = true
|
|
768
|
-
reportInconsistentConstructor = true
|
|
769
|
-
reportInvalidStubStatement = true
|
|
770
|
-
reportOverlappingOverload = true
|
|
771
|
-
reportPropertyTypeMismatch = true
|
|
772
|
-
reportUntypedClassDecorator = true
|
|
773
|
-
reportUntypedFunctionDecorator = true
|
|
774
|
-
reportUntypedNamedTuple = true
|
|
775
|
-
reportUnusedImport = true
|
|
776
|
-
disableBytesTypePromotions = true
|
|
777
|
-
# disable subset of "basic"
|
|
778
|
-
reportGeneralTypeIssues = false
|
|
779
|
-
reportMissingModuleSource = false
|
|
780
|
-
reportOptionalCall = false
|
|
781
|
-
reportOptionalIterable = false
|
|
782
|
-
reportOptionalMemberAccess = false
|
|
783
|
-
reportOptionalOperand = false
|
|
784
|
-
reportOptionalSubscript = false
|
|
785
|
-
reportPrivateImportUsage = false
|
|
786
|
-
reportUnboundVariable = false
|
|
787
|
-
|
|
788
|
-
[tool.coverage.run]
|
|
789
|
-
branch = true
|
|
790
|
-
omit = ["pandas/_typing.py", "pandas/_version.py"]
|
|
791
|
-
plugins = ["Cython.Coverage"]
|
|
792
|
-
source = ["pandas"]
|
|
793
|
-
|
|
794
|
-
[tool.coverage.report]
|
|
795
|
-
ignore_errors = false
|
|
796
|
-
show_missing = true
|
|
797
|
-
omit = ["pandas/_version.py"]
|
|
798
|
-
exclude_lines = [
|
|
799
|
-
# Have to re-enable the standard pragma
|
|
800
|
-
"pragma: no cover",
|
|
801
|
-
# Don't complain about missing debug-only code:s
|
|
802
|
-
"def __repr__",
|
|
803
|
-
"if self.debug",
|
|
804
|
-
# Don't complain if tests don't hit defensive assertion code:
|
|
805
|
-
"raise AssertionError",
|
|
806
|
-
"raise NotImplementedError",
|
|
807
|
-
"AbstractMethodError",
|
|
808
|
-
# Don't complain if non-runnable code isn't run:
|
|
809
|
-
"if 0:",
|
|
810
|
-
"if __name__ == .__main__.:",
|
|
811
|
-
"if TYPE_CHECKING:",
|
|
812
|
-
]
|
|
813
|
-
|
|
814
|
-
[tool.coverage.html]
|
|
815
|
-
directory = "coverage_html_report"
|
|
816
|
-
|
|
817
|
-
[tool.codespell]
|
|
818
|
-
ignore-words-list = "blocs, coo, hist, nd, sav, ser, recuse, nin, timere, expec, expecs"
|
|
819
|
-
ignore-regex = 'https://([\w/\.])+'
|
pyrox_client-0.2.2/.venv-pyrox-test/lib/python3.13/site-packages/pyarrow/tests/data/orc/README.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<!---
|
|
2
|
-
Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
-
or more contributor license agreements. See the NOTICE file
|
|
4
|
-
distributed with this work for additional information
|
|
5
|
-
regarding copyright ownership. The ASF licenses this file
|
|
6
|
-
to you under the Apache License, Version 2.0 (the
|
|
7
|
-
"License"); you may not use this file except in compliance
|
|
8
|
-
with the License. You may obtain a copy of the License at
|
|
9
|
-
|
|
10
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
|
|
12
|
-
Unless required by applicable law or agreed to in writing,
|
|
13
|
-
software distributed under the License is distributed on an
|
|
14
|
-
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
-
KIND, either express or implied. See the License for the
|
|
16
|
-
specific language governing permissions and limitations
|
|
17
|
-
under the License.
|
|
18
|
-
-->
|
|
19
|
-
|
|
20
|
-
The ORC and JSON files come from the `examples` directory in the Apache ORC
|
|
21
|
-
source tree:
|
|
22
|
-
https://github.com/apache/orc/tree/main/examples
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|