Skip to content
Snippets Groups Projects
pyproject.toml 3.2 KiB
Newer Older
[build-system]
requires = [
    "setuptools>=64",
    "setuptools_scm[toml]>=6.4",
]
build-backend = "setuptools.build_meta"

[project]
requires-python = ">=3.8"
name = "finam"
description = "FINAM is not a model."
authors = [{name = "FINAM Developers", email = "finam@ufz.de"}]
readme = "README.md"
license = {text = "LGPLv3"}
dynamic = ["version"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Intended Audience :: End Users/Desktop",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
    "Natural Language :: English",
    "Operating System :: Unix",
    "Operating System :: Microsoft",
    "Operating System :: MacOS",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Topic :: Scientific/Engineering",
    "Topic :: Software Development",
    "Topic :: Utilities",
]
dependencies = [
    "numpy>=1.14.5",
    "scipy>=1.9.0",
    "pyevtk>=1.1.1",
    "xarray>=2022.03",
Martin Lange's avatar
Martin Lange committed
    "pint>=0.20.0",
    "pint_xarray>=0.3.0",
    "cf_xarray>=0.7.4",
    "pyproj>=3.4",
    "pandas>=1.3",
Homepage = "https://FINAM.pages.ufz.de/"
Documentation = "https://FINAM.pages.ufz.de/finam/"
Source = "https://git.ufz.de/FINAM/finam"
Tracker = "https://git.ufz.de/FINAM/finam/-/issues"
Changelog = "https://git.ufz.de/FINAM/finam/-/blob/main/CHANGELOG.md"

[project.optional-dependencies]
doc = [
    "sphinx>=5",
    "pydata-sphinx-theme==0.11",
    "numpydoc>=1.1",
    "sphinx-design>=0.3",
    "myst-parser>=0.18",
    "sphinxcontrib-mermaid>=0.7",
Martin Lange's avatar
Martin Lange committed
    "ablog>=0.10",
    "docutils>=0.18", # mdinclude with myst
    "matplotlib>=3",
Martin Lange's avatar
Martin Lange committed
test = [
    "pytest-cov>=3",
    "pytest-benchmark[histogram]>=4.0",

[tool.setuptools]
license-files = ["LICENSE"]

[tool.setuptools_scm]
write_to = "src/finam/_version.py"
write_to_template = "__version__ = '{version}'"
local_scheme = "no-local-version"
fallback_version = "0.0.0.dev0"

[tool.black]
exclude = "_version.py"
target-version = [
    "py38",
Sebastian Müller's avatar
Sebastian Müller committed

[tool.isort]
profile = "black"
multi_line_output = 3
[tool.coverage]
    [tool.coverage.run]
    source = ["finam"]
    omit = [
        "*docs*",
        "*examples*",
        "*tests*",
        "*/src/finam/tools/wurlitzer.py",
    ]

    [tool.coverage.report]
    exclude_lines = [
        "pragma: no cover",
        "def __repr__",
        "def __str__",
    ]

Sebastian Müller's avatar
Sebastian Müller committed
[tool.pylint]
    [tool.pylint.master]
    extension-pkg-whitelist = [
        "numpy",
        "scipy",
        "mpi4py",
    ]
    ignore = [
        "_version.py",
        "wurlitzer.py",
    ]
Sebastian Müller's avatar
Sebastian Müller committed

    [tool.pylint.message_control]
    max-line-length = 120
    disable = [
        "C0103", # ignore invalid-names like "x", "y"
        "C0415", # ignore defered imports
        "R0801", # ignore code duplications
    ]

    [tool.pylint.reports]
    output-format = "colorized"

    [tool.pylint.design]
    max-args = 15
    max-locals = 20
Sebastian Müller's avatar
Sebastian Müller committed
    max-attributes = 15
    max-parents = 10
Sebastian Müller's avatar
Sebastian Müller committed
    min-public-methods = 0