[build-system] requires = ["setuptools>=67", "wheel"] build-backend = "setuptools.build_meta" # ----------------------------- # PROJECT # ----------------------------- [project] name = "geoap" version = "0.1.0" description = "Geo AI Computer Vision Project (Detection + Segmentation)" readme = "README.md" requires-python = ">=3.10" authors = [ { name = "Hamza Boughanim", email = "hamzaboughanim06@gmail.com" }, { name = "GEOAP", email = "yassinehammoud@geo-ap.com" } ] # ----------------------------- # CORE DEPENDENCIES (from your requirements.txt) # ----------------------------- dependencies = [ # Core CV "ultralytics>=8.3.0", "sahi>=0.11.19", "supervision>=0.22.0", "shapely>=2.0", "pycocotools", # Image processing "opencv-python-headless", "numpy", "Pillow", "tqdm", # Visualization "matplotlib", "seaborn", # Config "pyyaml", "python-box", # API "fastapi", "uvicorn[standard]", "pydantic>=2.0", "python-multipart", # Geo / GIS "rasterio>=1.4.4", "pyproj>=3.7.1", "httpx>=0.28.1", "gradio>=6.21.0", "jinja2>=3.1.6", ] # ----------------------------- # OPTIONAL DEPENDENCIES # ----------------------------- [project.optional-dependencies] dev = [ "pytest", "pytest-cov", "ruff", "mypy", "black", "ipykernel" ] mlflow = [ "mlflow>=2.0" ] # ----------------------------- # SRC STRUCTURE SUPPORT # ----------------------------- [tool.setuptools.packages.find] where = ["src"] # ----------------------------- # RUFF # ----------------------------- [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "W", "I", "N", "UP", "ANN", "B", "SIM"] ignore = [ "ANN101", "ANN102", "ANN401" ] [tool.ruff.lint.isort] known-first-party = ["geoCV"] # ----------------------------- # MYPY # ----------------------------- [tool.mypy] python_version = "3.10" ignore_missing_imports = true strict = false warn_unused_ignores = true warn_return_any = true # ----------------------------- # PYTEST # ----------------------------- [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-v --tb=short --cov=src/geoCV --cov-report=term-missing" asyncio_mode = "auto"