[build-system]
requires = ["hatchling >= 1.26"]
build-backend = "hatchling.build"

[project]
name = "pytuflow"
dynamic = ["version"]
dependencies = [
    "numpy>=1.26.0",
    "pandas>=2.2.2",
    "packaging>=25.0",
    "dbfread>=2.0.7",
    "pyproj>=3.6.1",
    "h5py>=3.14.0",
    "pyvista>=0.46.5",
    "geopandas>=1.0.1",
    "shapely>=2.0.7",
    "netcdf4>=1.7.2",
    "rasterio>=1.4.3",
    "pygltflib>=1.16.5",
]
requires-python = ">= 3.9"
authors = [
    {name = "Ellis Symons", email = "support@tuflow.com"}
]
description = "Official Python library for TUFLOW. A library for working with TUFLOW input and outputs with basic running capabilities."
readme = "README.md"
license-files = ["LICEN[CS]E*"]
keywords = ["tuflow", "hydraulics", "hydraulic modelling", "hydraulic modeling", "flood", "flood modelling", "flood modeling", "flooding", "floodplain", "flood plain", "floodplain modelling", "floodplain modeling", "floodplain management"]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Other Audience",
    "Topic :: Scientific/Engineering :: Hydrology",

    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
]

[tool.hatch.metadata.hooks.custom]

[tool.hatch.build.targets.wheel]
packages = ["pytuflow"]
include = [
  "pytuflow/_tmf/tmf/data/*.json",
  "pytuflow/_fm_to_estry/data/*.json",
  "pytuflow/_outputs/data/*.json",
]

[tool.pytest.ini_options]
filterwarnings = [
    'error',
    'ignore:numpy.ndarray size changed',
    'ignore::pytest.PytestUnraisableExceptionWarning'
]

[project.urls]
Homepage = "https://github.com/TUFLOW-Support/PyTuflow"
Documentation = "https://docs.tuflow.com/pytuflow/"
Repository = "https://github.com/TUFLOW-Support/PyTuflow"
Issues = "https://github.com/TUFLOW-Support/PyTuflow/issues"
Changelog = "https://docs.tuflow.com/pytuflow/#changelog"
