AngellusMortis/sxm-player

View on GitHub
pyproject.toml

Summary

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

[tool.flit.metadata]
module = "sxm_player"
author = "Christopher Bailey"
author-email = "cbailey@mort.is"
home-page = "https://github.com/AngellusMortis/sxm-player"
requires-python='>=3.7'
requires=[
  'coloredlogs',
  'httpx',
  'ipython',
  'psutil',
  'pydantic',
  'pyyaml',
  'sqlalchemy',
  'sxm>=0.2.8',
  'typer',
]

description-file='README.rst'
classifiers=[
  "Development Status :: 4 - Beta",
  "Intended Audience :: Developers",
  "License :: OSI Approved :: MIT License",
  "Natural Language :: English",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.7",
  "Programming Language :: Python :: 3.8",
  "Programming Language :: Python :: 3.9",
]
keywords = "sxm,SiriusXM,XM Radio"
license="MIT license"

[tool.flit.metadata.requires-extra]
test = [
  'pytest',
  'pytest-cov',
  'pytest-socket',
  'pytest-sugar',
  'pytest-clarity',
  'tox',
  'coverage',
]
doc = [
  'furo',
  'snooty-lextudio',
  'sphinx',
]
dev = [
  'bandit',
  'black',
  'flake8-bugbear',
  'flake8-builtins',
  'flake8-commas',
  'flake8-comprehensions',
  'flake8',
  'flit',
  'isort',
  'mypy',
  'pip-tools',
  'pylint',
  # 'pylint-pydantic',  # 3.9+
  'pyproject-flake8',
  'rstcheck',
  'sqlalchemy-stubs',
  'types-click',
  'types-psutil',
  'types-PyYAML',
  'typing-extensions~=3.7.4.1',
]

[tool.flit.metadata.urls]
Documentation = "https://sxm-player.readthedocs.io/en/latest/"

[tool.flit.scripts]
sxm-player = "sxm_player.__main__:start"

[tool.flit.sdist]
include = [
  "AUTHORS.rst",
  "CONTRIBUTING.rst",
  "HISTORY.rst",
  "LICENSE",
  "README.rst",
  "sxm_player/*",
  "tests/*",
  "docs/*.rst",
  "docs/conf.py",
  "docs/Makefile",
  "docs/make.bat",
  "docs/*.jpg",
  "docs/*.png",
  "docs/*.gif",
]
exclude = [
  "__pycache__",
  "*.py",
  "*.pyc",
  "*.pyo"
]

[tool.black]
line-length = 88
target-versions = 'py39'
include = '\.pyi?$'
exclude = '''

(
  /(
      \.eggs         # exclude a few common directories in the
    | \.git          # root of the project
    | \.hg
    | \.mypy_cache
    | \.tox
    | \.venv
    | _build
    | buck-out
    | build
    | dist
  )/
)
'''

[tool.flake8]
exclude = ".eggs, .git, .tox"
ignore = "C812, W503, C816, C815, B008"
max-line-length = 88

[tool.pylint.format]
max-line = 88
disable='all'
enable='F,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,unused-wildcard-import,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode,E0001,E0011,E0012,E0100,E0101,E0102,E0103,E0104,E0105,E0107,E0108,E0110,E0111,E0112,E0113,E0114,E0115,E0116,E0117,E0118,E0202,E0203,E0211,E0213,E0236,E0237,E0238,E0239,E0240,E0241,E0301,E0302,E0303,E0401,E0402,E0601,E0602,E0603,E0604,E0611,E0632,E0633,E0701,E0702,E0703,E0704,E0710,E0711,E0712,E1003,E1101,E1102,E1111,E1120,E1121,E1123,E1124,E1125,E1126,E1127,E1128,E1129,E1130,E1131,E1132,E1133,E1134,E1135,E1136,E1137,E1138,E1139,E1200,E1201,E1205,E1206,E1300,E1301,E1302,E1303,E1304,E1305,E1306,E1310,E1700,E1701'
# load-plugins = "pylint_pydantic"

[tool.isort]
profile = "black"

[tool.tox]
legacy_tox_ini = """
[tox]
isolated_build = True
envlist = lint

[testenv:lint]
basepython = python
setenv =
  PYTHONPATH = {toxinidir}
deps =
  -r{toxinidir}/dev-requirements.txt
commands =
  {toxinidir}/.bin/lint-code

[testenv]
setenv =
  PYTHONPATH = {toxinidir}
deps =
  -r{toxinidir}/dev-requirements.txt
commands =
  pip install -U pip
  py.test --basetemp={envtmpdir}
"""

[tool.pytest.ini_options]
addopts = "--disable-socket --cov-report=term --cov=sxm --cov-append"