forked from rstudio/pins-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
130 lines (119 loc) · 3.57 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
[project]
name = "pins"
description = "Publish data sets, models, and other python objects, making it easy to share them across projects and with your colleagues."
readme.content-type = "text/markdown"
readme.file = "README.md"
urls.Documentation = "https://rstudio.github.io/pins-python"
urls.Homepage = "https://github.com/rstudio/pins-python"
authors = [{ name = "Michael Chow", email = "michael.chow@posit.co" }]
maintainers = [{ name = "Isabel Zimmerman", email = "isabel.zimmerman@posit.co" }]
keywords = ["data", "tidyverse"]
classifiers = [
"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",
"License :: OSI Approved :: MIT License",
]
requires-python = ">=3.8"
dynamic = ["version"]
dependencies = [
"appdirs<2", # Using appdirs rather than platformdirs is deliberate, see https://github.com/rstudio/pins-python/pull/239
"fsspec>=2022.2",
"humanize>=1",
"importlib-metadata>=4.4",
"importlib-resources>=1.3",
"jinja2>=2.10",
"joblib>=0.12",
"pandas>=0.23",
"pyyaml>=3.13",
"requests",
"xxhash>=1",
]
[project.optional-dependencies]
aws = ["s3fs"]
azure = ["adlfs"]
check = [
"pre-commit",
"pyright==1.1.372", # Pinned; manually sync with .github/workflows/code-checks.yml
"types-appdirs",
]
doc = [
"ipykernel",
"ipython<=8.12",
"nbclient",
"nbformat",
"quartodoc",
]
gcs = ["gcsfs"]
test = [
"adlfs>=2024.4.1",
"fastparquet",
"gcsfs",
"pip-tools",
"pyarrow",
"pytest==7.1.3",
"pytest-cases",
"pytest-dotenv",
"pytest-parallel",
"s3fs",
]
[build-system]
requires = ["setuptools>=45", "setuptools-scm>=6.2", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
include-package-data = true
[tool.setuptools.packages]
find = { namespaces = false }
[tool.setuptools_scm]
[tool.distutils.bdist_wheel]
universal = 1
[tool.pytest.ini_options]
markers = [
"fs_file: mark test to only run on local filesystem",
"fs_s3: mark test to only run on AWS S3 bucket filesytem",
"fs_gcs: mark test to only run on Google Cloud Storage bucket filesystem",
"fs_abfs: mark test to only run on Azure Datalake filesystem",
"fs_rsc: mark test to only run on Posit Connect filesystem",
"skip_on_github: skip this test if running on GitHub",
]
testpaths = ["pins"]
addopts = "--doctest-modules"
doctest_optionflags = "NORMALIZE_WHITESPACE"
[tool.pyright]
include = ["pins"]
exclude = ["**/__pycache__"]
ignore = ["pins/tests"]
pythonVersion = "3.12" # Use the maximum version supported by python-pins
pythonPlatform = "Linux"
# Tracking compliance with these rules at https://github.com/rstudio/pins-python/issues/272
reportArgumentType = false
reportAssignmentType = false
reportAttributeAccessIssue = false
reportCallIssue = false
reportIncompatibleMethodOverride = false
reportIndexIssue = false
reportMissingImports = false
reportMissingTypeStubs = false
reportOptionalIterable = false
reportOptionalMemberAccess = false
reportOptionalSubscript = false
reportPossiblyUnboundVariable = false
reportReturnType = false
[tool.ruff]
line-length = 90
extend-exclude = ["docs"]
[tool.ruff.lint]
select = [
"E", # Style
"F", # Errors
"FA", # Use from __future__ import annotations for cleaner type hints
"I", # Import sorting
"UP", # Upgrade to latest supported Python syntax
"W", # Style
]
ignore = [
"E501", # Line too long
]