oemof/oemof-solph

View on GitHub
pyproject.toml

Summary

Maintainability
Test Coverage
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"

[tool.flit.sdist]
include = [
    "AUTHORS.rst",
    "CITATION.cff",
    "CODE_OF_CONDUCT.md",
    "CONTRIBUTING.rst",
    "LICENSE",
    "README.rst",
    "VERSION",
    "tox.ini",
    "ci/",
    "docs/",
    "examples/",
    "src/",
    "tests/",
    ".bumpversion.cfg",
    ".coveragerc",
    ".editorconfig",
    ".flake8",
    ".pep8speaks.yml",
    ".readthedocs.yaml",
    ".scrutinizer.yml",
]
exclude = ["docs/_build"]

[project]
name = "oemof.solph"
dynamic = ["version"]
description = "A model generator for energy system modelling and optimisation."
readme = "README.rst"
authors = [
    {name = "oemof developer group", email = "contact@oemof.org"},
]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: MIT License",
    "Operating System :: Unix",
    "Operating System :: POSIX",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: MacOS",
    "Operating System :: OS Independent",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: Implementation :: CPython",
    "Topic :: Utilities",
]
requires-python = ">=3.8"
dependencies = [
    "blinker",
    "dill",
    "numpy < 2.0.0",
    "pandas >= 2.0.0",
    "pyomo >= 6.6.0, < 7.0",
    "networkx",
    "oemof.tools >= 0.4.3",
    "oemof.network >= 0.5.0",
]
license = {text = "MIT"}

[project.urls]
Homepage = "https://github.com/oemof/oemof-solph"
Documentation = "https://oemof-solph.readthedocs.io/"
Changelog = "https://oemof-solph.readthedocs.io/en/latest/changelog.html"
"Issue Tracker" = "https://github.com/oemof/oemof-solph/issues/"

[project.optional-dependencies]
dev = [
    "flit",
    "matplotlib",
    "nbformat",
    "pytest",
    "sphinx",
    "sphinx_rtd_theme",
    "sphinx-copybutton",
    "sphinx-design",
    "termcolor",
    "tox",
]

[project.scripts]
oemof_installation_test = "oemof.solph._console_scripts:check_oemof_installation"

[tool.black]
line-length = 79
target-version = ['py39', 'py310', 'py311']
include = '\.pyi?$'
exclude = '''
/(
    \.eggs
  | \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist
  | ci
)/
'''

[tool.pytest.ini_options]
norecursedirs = [
    ".git",
    ".tox",
    ".env",
    "dist",
    "build",
    "docs/_build",
    "migrations",
    "examples",
]
python_files = [
    "test_*.py",
    "*_test.py",
    "*_tests.py",
    "tests.py",
]
addopts = """
    -ra
    --strict-markers
    --ignore=docs/conf.py
    --ignore=setup.py
    --ignore=ci
    --ignore=.eggs
    --doctest-modules
    --doctest-glob=\\*.rst
    --tb=short
    --pyargs
"""
testpaths = [
    "src/oemof/solph/",
    "tests/",
    "docs/",
]

[tool.isort]
force_single_line = true
line_length = 79
known_first_party = "oemof-solph"
default_section = "THIRDPARTY"
forced_separate = "test_oemof-solph"
skip = "migrations"