-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
118 lines (111 loc) · 3.74 KB
/
Copy pathpyproject.toml
File metadata and controls
118 lines (111 loc) · 3.74 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
[project]
name = "lazycogs"
version = "0.7.0"
description = "Lazily load COG assets from STAC items into xarray DataArrays using async-geotiff"
readme = "README.md"
license = {file = "LICENSE"}
authors = [
{ name = "Henry Rodman", email = "henry.rodman@gmail.com" }
]
requires-python = ">=3.12"
keywords = ["COG", "STAC", "xarray", "geotiff", "raster", "geospatial"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering :: GIS",
"Topic :: Scientific/Engineering :: Image Processing",
]
dependencies = [
"affine>=2.4.0",
"arro3-core>=0.8.0",
"async-geotiff>=0.5.1",
"cql2>=0.5.5",
"numpy>=2.4.4",
"obstore>=0.9.2",
"pandas>=3.0.2",
"pyproj>=3.7.2",
"rasterix>=0.2.0",
"rustac[arrow]>=0.9.13",
"xarray>=2026.2.0",
"xproj>=0.2.0",
]
[project.optional-dependencies]
dask = [
"dask>=2026.3.0",
]
[project.urls]
Repository = "https://github.com/developmentseed/lazycogs"
Documentation = "https://developmentseed.org/lazycogs"
[build-system]
requires = ["uv_build>=0.11.6,<0.12.0"]
build-backend = "uv_build"
[dependency-groups]
dev = [
"lazycogs[dask]",
"jupyter>=1.1.1",
"lab>=8.9",
"pytest>=9.0.3",
"pytest-benchmark>=5.2.3",
"rasterio>=1.5.0",
"pre-commit>=4.6.0",
"ruff>=0.15.12",
"rioxarray>=0.22.0",
]
docs = [
"mkdocs-jupyter>=0.26.2",
"mkdocs-material>=9.7.6",
"mkdocstrings[python]>=1.0.3",
]
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"A002", # filter/id arg names are intentional (match STAC/CQL2 API)
"D203", # incompatible with D211
"D213", # incompatible with D212
"EM101", # raw string in exception
"EM102", # f-string in exception
"FIX002", # todo statements
"PLR0913", # many args are intentional; documented rather than collapsed to **kwargs
"PYI051", # literal strings redundant with str in type union
"TD002", # todo without author name
"TRY003", # define exceptions in the exception class
]
[tool.ruff.lint.per-file-ignores]
"tests/*" = [
"ANN001", # annotation in function argument
"ANN002", # *args annotation in test stubs
"ANN003", # **kwargs annotation in test stubs
"ANN201", # return type annotation
"ANN202", # return type for private test helpers
"ARG001", # test stubs intentionally have unused args for signature compatibility
"ARG005", # unused lambda args in test stubs
"BLE001", # catching broad Exception acceptable in tests
"ERA001", # section-separator comments are not commented-out code
"FBT002", # boolean defaults in fixtures are fine
"INP001", # pytest does not require __init__.py in tests/
"PLC0415", # lazy imports inside test functions (deliberate isolation)
"PLR2004", # Magic value used in comparison
"S101", # assert
"S108", # /tmp/ dummy paths in test fixtures are not a real security issue
"S110", # try/except/pass in test stubs
"SLF001", # private member access
"T201", # print in integration tests is intentional benchmark output
"TC003", # type-checking import blocks not needed in tests
"D", # docstring
]
"docs/notebooks/*" = [
"ANN", # type annotations not required in notebook cells
"D", # docstrings not required in notebook utility functions
"T201", # print statements
]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-vv --benchmark-disable --ignore=tests/benchmarks"
python_files = ["test_*.py", "bench_*.py"]
markers = [
"benchmark: performance benchmarks (run with --benchmark-enable)",
]