[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "water-quality-inversion" version = "1.0.0" description = "水质参数反演分析系统 - 基于遥感影像和机器学习的水质监测专业软件" readme = "README.md" license = {text = "MIT"} requires-python = ">=3.8" authors = [ {name = "Water Quality Research Team", email = "support@waterquality.com"}, ] maintainers = [ {name = "Water Quality Research Team", email = "support@waterquality.com"}, ] keywords = ["water quality", "remote sensing", "machine learning", "GIS", "environmental monitoring"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: GIS", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "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", ] dependencies = [ "numpy>=1.21.0", "pandas>=1.3.0", "scipy>=1.7.0", "scikit-learn>=1.0.0", "matplotlib>=3.5.0", "opencv-python>=4.5.0", "gdal>=3.4.0", "rasterio>=1.2.0", "shapely>=1.8.0", "geopandas>=0.10.0", # "lightgbm>=3.3.0", # 注释掉lightgbm "xgboost>=1.5.0", "torch>=1.11.0", "torchvision>=0.12.0", "plotly>=5.0.0", "PyQt5>=5.15.0", "pyyaml>=6.0", ] [project.optional-dependencies] dev = [ "pytest>=6.0", "pytest-cov>=2.0", "black>=21.0", "flake8>=3.9", "mypy>=0.900", "pre-commit>=2.17", ] packaging = [ "pyinstaller>=5.0", "py2exe>=0.12", ] docs = [ "sphinx>=4.0", "sphinx-rtd-theme>=1.0", ] [project.scripts] water-quality-gui = "gui.water_quality_gui:main" water-quality-pipeline = "core.water_quality_inversion_pipeline:main" [project.urls] Homepage = "https://github.com/waterquality/water-quality-inversion" Documentation = "https://water-quality-inversion.readthedocs.io/" Repository = "https://github.com/waterquality/water-quality-inversion" Issues = "https://github.com/waterquality/water-quality-inversion/issues" Changelog = "https://github.com/waterquality/water-quality-inversion/blob/main/CHANGELOG.md" [tool.setuptools] zip-safe = false include-package-data = true [tool.setuptools.packages.find] where = ["src"] [tool.setuptools.package-data] "*" = [ "data/icons/*.png", "data/sub/**/*", ] [tool.black] line-length = 88 target-version = ['py38', 'py39', 'py310', 'py311', 'py312'] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist | V1 | V2 )/ ''' [tool.isort] profile = "black" multi_line_output = 3 line_length = 88 known_first_party = ["src"] skip = ["__init__.py"] [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 [[tool.mypy.overrides]] module = [ "cv2.*", "gdal.*", "osgeo.*", "torch.*", "torchvision.*", ] ignore_missing_imports = true [tool.pytest.ini_options] minversion = "6.0" addopts = "-ra -q --cov=src --cov-report=html --cov-report=term-missing" testpaths = ["tests"] python_files = "test_*.py" python_classes = "Test*" python_functions = "test_*"