-
Notifications
You must be signed in to change notification settings - Fork 4
/
pyproject.toml
115 lines (104 loc) · 3.91 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
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "ftw-tools"
version = "1.1.0"
license = {file = "LICENSE"}
description = "Fields of The World (FTW) Command Line Interface (CLI) for data management, ML processing, and more."
readme = 'README.md'
authors = [
{ name = "Hannah Kerner", email = "hkerner@asu.edu" },
{ name = "Matthias Mohr", email = "matthias@mohr.ws" },
{ name = "Caleb Robinson", email = "Caleb.Robinson@microsoft.com" },
{ name = "Aninda Ghosh", email = "aghosh57@asu.edu" },
{ name = "Chris Holmes", email = "cholmes@tgengine.org" },
{ name = "Snehal Chaudhari", email = "sschaud5@asu.edu" },
]
classifiers = [
"Development Status :: 4 - Beta",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
]
requires-python = ">= 3.9"
dependencies = [
"click", # For CLI functionality
"tqdm", # For progress bars
"geopandas", # For geospatial data handling
"rasterio", # For raster data
"numpy", # For numerical computation
"matplotlib", # For plotting
"torch", # For deep learning
"kornia", # For computer vision
"torchvision", # For vision-related tasks in PyTorch
"pytorch-lightning", # For high-level PyTorch training loops
"PyYAML", # For parsing YAML config files
"wget", # For file downloads
# pyarrow or later lead to an filesystem error in the fit function:
# Error: Attempted to register factory for scheme 'file' but that scheme is already registered.
"pyarrow==16.0.0", # For in-memory data processing
"odc-stac", # For handling STAC data via Open Data Cube
"planetary-computer", # For accessing Planetary Computer STAC data
"pystac", # For reading STAC
"rioxarray", # For raster data handling
"scipy", # For scientific computing
"tensorboard", # For PyTorch logging
"torchgeo", # For geospatial deep learning
"fiona", # For reading/writing vector data
"pyproj", # For projections and CRSes
"fiboa-cli==0.7.0", # For storing data in Fiboa format
]
[project.urls]
Homepage = "https://fieldsofthe.world/"
Repository = "https://github.com/fieldsoftheworld/ftw-baselines.git"
Issues = "https://github.com/fieldsoftheworld/ftw-baselines/issues"
Changelog = "https://github.com/fieldsoftheworld/ftw-baselines/blob/main/CHANGELOG.md"
[project.optional-dependencies]
dev = [
"black", # Code formatting tool
"isort", # Import sorting tool
"mypy", # Static type checker
"pydocstyle", # Python docstring style checker
"flake8", # Linter for Python
"pytest", # Testing framework
]
[project.scripts]
ftw = "ftw_cli.cli:ftw"
[tool.setuptools]
packages = { find = { where = ["src"] } }
include-package-data = true # Includes non-Python files specified in MANIFEST.in
[tool.black]
target-version = ["py310"]
color = true
skip_magic_trailing_comma = true
[tool.isort]
profile = "black"
known_first_party = ["ftw"]
skip_gitignore = true
color_output = true
[tool.mypy]
python_version = "3.10"
ignore_missing_imports = true
show_error_codes = true
exclude = "(data|configs)/"
warn_unused_configs = true
disallow_any_generics = true
disallow_subclassing_any = true
disallow_untyped_calls = 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_return_any = true
no_implicit_reexport = true
strict_equality = true
[tool.pydocstyle]
convention = "google"
match_dir = "(ftw)"
[tool.pytest.ini_options]
pythonpath = [
"src",
]