nxtlo/aiobungie

View on GitHub
pyproject.toml

Summary

Maintainability
Test Coverage
[tool.poetry]
name = "aiobungie"
version = "0.2.11"
description = "A Python and Asyncio API wrapper for Bungie's API."
authors = ["nxtlo <dhmony-99@hotmail.com>"]
license = "MIT"
keywords = ['async', 'api', 'destiny', 'bungie']
readme = "README.md"
repository = "https://github.com/nxtlo/aiobungie"
packages = [{ include = "aiobungie" }, { include = "aiobungie/**/*.py" }]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Framework :: AsyncIO",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Natural Language :: English",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: Implementation :: CPython",
    "Topic :: Internet :: WWW/HTTP",
    "Topic :: Software Development :: Libraries",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Typing :: Typed",
]

[tool.poetry.dependencies]
python = ">=3.10.0,<3.13"
aiohttp = "3.9.5"
attrs = "23.2.0"
backports-datetime-fromisoformat = { version = "2.0.1", markers = "python_version == '3.10'" }

[tool.poetry.extras]
speedup = ["orjson"]
full = ["orjson"]

[tool.pytest.ini_options]
xfail_strict = true
norecursedirs = "docs *.egg-info .git .nox .pytest_cache .venv venv test_client test_rest"
addopts = "--ignore=./tests/aiobungie/test_client.py"
asyncio_mode = "strict"

[tool.isort]
profile = "black"
force_single_line = true
skip_glob = "**/__init__.pyi"

[tool.ruff]
# Exclude a variety of commonly ignored directories.
exclude = [
    ".git",
    ".mypy_cache",
    ".nox",
    ".ruff_cache",
    ".venv",
    "__pypackages__",
    "dist",
    "node_modules",
    "venv",
    "aiobungie/_*.py",
    "aiobungie/_*.pyi",
    "aiobungie/crates/_*.py",
    "aiobungie/crates/_*.pyi",
]

# Same as Black.
line-length = 88
indent-width = 4

# Assume Python 3.12
target-version = "py312"

[tool.ruff.lint]
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.
select = ["E4", "E7", "E9", "F"]
ignore = []

# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []

# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"

# Like Black, indent with spaces, rather than tabs.
indent-style = "space"

# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false

# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"

[tool.pyright]
include = ["aiobungie", "examples"]
exclude = ["**/__init__.py", "aiobungie/internal/enums.py"]
pythonVersion = "3.12"
reportUnnecessaryTypeIgnoreComment = "warning"              # backports needs to be ignored on Py 3.10
reportMissingTypeStubs = "none"
# This will always cause warnings above license.
reportIncompatibleVariableOverride = "none"
reportMissingImports = "warning"
reportImportCycles = "none"
reportOverlappingOverload = "none"
typeCheckingMode = "strict"
reportUnboundVariable = "error"
reportUnknownParameterType = "error"
reportUnknownLambdaType = "warning"
reportUnknownMemberType = "warning"
reportUnknownArgumentType = "warning"
reportUnknownVariableType = "warning"
reportMissingModuleSource = "error"
reportMissingParameterType = "error"
reportMissingTypeArgument = "error"
reportGeneralTypeIssues = "error"
reportPrivateUsage = "error"
reportIncompatibleMethodOverride = "none"
reportUnusedVariable = "error"
reportUnusedImport = "warning"

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