boromir674/biskotaki

View on GitHub
pyproject.toml

Summary

Maintainability
Test Coverage
# BUILD

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

# Poetry

# Information required for building (sdist/wheel)
## Also renders on pypi as 'subtitle'
[tool.poetry]
name = "biskotaki"
version = "0.0.1"
description = "Project generated using https://github.com/boromir674/cookiecutter-python-package"
authors = ["Konstantinos Lampridis <k.lampridis@hotmail.com>"]
maintainers = ["Konstantinos Lampridis <k.lampridis@hotmail.com>"]
license = "AGPL-3.0-only"
readme = "README.rst"

homepage = "https://github.com/boromir674/biskotaki"
repository = "https://github.com/boromir674/biskotaki"
documentation = "https://biskotaki.readthedocs.io/"

keywords = [
    "python package",
]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "Intended Audience :: End Users/Desktop",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: GNU Affero General Public License v3",
    "Natural Language :: English",
    "Operating System :: Unix",
    "Operating System :: POSIX :: Linux",
    "Operating System :: MacOS",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3.6",
    "Programming Language :: Python :: 3.7",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Topic :: Software Development",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Topic :: System :: Software Distribution",
    "Typing :: Typed"
]

packages = [
    { include = "biskotaki", from = "src" },
]

include = [
    { path = "tests", format = "sdist" },
    { path = "docs/**/*.rst", format = "sdist" },
    { path = "docs/conf.py", format = "sdist" },
    { path = "src/**/*.typed", format = "sdist" },
    { path = "src/stubs/*.pyi", format = "sdist" },
    "pyproject.toml",
    "LICENSE",
    "README.rst",
    "CONTRIBUTING.md",
    "CHANGELOG.rst",
]

exclude = [
    "docs/*",
    "requirements/*",
    "scripts/*.py",
    "tox.ini",
    ".circleci/config.yml",
    ".coveragerc",
    ".DS_Store",
    ".gitignore",
    ".prospector.yml",
    ".pylintrc",
    ".readthedocs.yml",
    ".scrutinizer.yml",
    ".travis.yml"
]

# PyPi url links, that appear in 'Project Links' section
[tool.poetry.urls]
"Bug Tracker" = "https://github.com/biskotaki/issues"
"CI: Github Actions" = "https://github.com/boromir674/biskotaki/actions"
"Documentation" = "https://biskotaki.readthedocs.io/"
"Source Code" = "https://github.com/boromir674/biskotaki"
"Changelog" = "https://github.com/boromir674/biskotaki/blob/master/CHANGELOG.rst"
"Code of Conduct" = "https://github.com/boromir674/biskotaki/blob/master/CONTRIBUTING.rst"


# Caret requirements allow SemVer compatible updates to a specified version. An update is allowed if the new version number does not modify the left-most non-zero digit in the major, minor, patch grouping. For instance, if we previously ran poetry add requests@^2.13.0 and wanted to update the library and ran poetry update requests, poetry would update us to version 2.14.0 if it was available, but would not update us to 3.0.0. If instead we had specified the version string as ^0.1.13, poetry would update to 0.1.14 but not 0.2.0. 0.0.x is not considered compatible with any other version.
# REQUIREMENT  VERSIONS ALLOWED
# ^1.2.3       >=1.2.3 <2.0.0
# ^1.2           >=1.2.0 <2.0.0
# ^1           >=1.0.0 <2.0.0
# ^0.2.3       >=0.2.3 <0.3.0
# ^0.0.3       >=0.0.3 <0.0.4
# ^0.0           >=0.0.0 <0.1.0
# ^0           >=0.0.0 <1.0.0
# "~" is the more conservative compared to "^"
# Tilde requirements specify a minimal version with some ability to update. If you specify a major, minor, and patch version or only a major and minor version, only patch-level changes are allowed. If you only specify a major version, then minor- and patch-level changes are allowed.
# REQUIREMENT  VERSIONS ALLOWED
# ~1.2.3       >=1.2.3 <1.3.0
# ~1.2           >=1.2.0 <1.3.0
# ~1           >=1.0.0 <2.0.0


### Dependency Constraints, aka Requirements ###
[tool.poetry.dependencies]
python = ">=3.8, <3.13"

# Test: packages imported in test code and packages required for the "test runner"
pytest = { version = "^8.0.0", optional = true }
pytest-cov = { version = "^4.1.0", optional = true }
pytest-explicit = { version = "^1.0.1", optional = true }
pytest-xdist = { version = "^3.5.0", optional = true }

# Type Checking
mypy = { version = "^1.8.0", optional = true }

# Docs: dev and build dependencies
sphinx = { version = "~4", optional = true }
sphinx-autodoc-typehints = { version = ">= 1.10", optional = true }
sphinx-rtd-theme = { version = "== 0.5.0", optional = true }
sphinxcontrib-spelling = { version = "~= 7.3.3", optional = true }
sphinx-autobuild = { version = "^2021.3.14", optional = true }
sphinx-inline-tabs = { version = "^2023.4.21", optional = true, python = ">=3.8,<3.13" }
sphinxcontrib-mermaid = { version = "^0.9.2", optional = true, python = ">=3.7,<3.13" }

### EXTRAS ###
[tool.poetry.extras]
test = [
    "pytest",
    "pytest-cov",
    "pytest-explicit",
    "pytest-xdist",
]
typing = [
    "mypy",
    "types-requests",
    "pytest",
]
docs = [
    "sphinx",
    "sphinx-autodoc-typehints",
    "sphinx-rtd-theme",
    "sphinxcontrib-spelling",
    "sphinx-inline-tabs",
    "sphinxcontrib-mermaid",
]
docslive = [
    "sphinx",
    "sphinx-autodoc-typehints",
    "sphinx-rtd-theme",
    "sphinxcontrib-spelling",
    "sphinx-inline-tabs",
    "sphinxcontrib-mermaid",
    "sphinx-autobuild",
]

[tool.poetry.plugins."poetry.application.plugin"]
export = "poetry_plugin_export.plugins:ExportApplicationPlugin"

# TOOLS
[tool.pytest.ini_options]
minversion = "6.2"
addopts = "--strict-markers"
markers = [
    "slow: Marks a slow test",
    "integration: Integration Tests",
    "network_bound: Require internet connection",
]
testpaths = [
    "tests",
]
explicit-only = [
    "integration",
    "network_bound",
]

[tool.black]
line-length = 95
include = '\.pyi?$'
extend-exclude = '''
'''

[tool.isort]
profile = 'black'

[tool.bandit]
tests = []
skips = [
    "B101",
]

[tool.software-release]
version_variable = "src/biskotaki/__init__.py:__version__"