blob: cd6158ffd1d00027f2f75ea3f718f766a1b08a78 [file] [log] [blame]
[tool.poetry]
name = "requests-cache"
version = "0.9.0"
description = "A transparent persistent cache for the requests library"
authors = ["Roman Haritonov"]
maintainers = ["Jordan Cook"]
license = "BSD-2-Clause"
readme = "README.md"
documentation = "https://requests-cache.readthedocs.io"
homepage = "https://github.com/reclosedev/requests-cache"
repository = "https://github.com/reclosedev/requests-cache"
keywords = ["requests", "cache", "http", "python-requests", "web", "performance", "sqlite", "redis",
"mongodb", "gridfs", "dynamodb"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
"Typing :: Typed",
]
include = [
{format="sdist", path="*.md"},
{format="sdist", path="*.yml"},
{format="sdist", path="docs"},
{format="sdist", path="examples"},
{format="sdist", path="tests"},
]
[tool.poetry.dependencies]
python = "^3.7"
# Required dependencies
requests = "^2.22" # Needs no introduction
urllib3 = "^1.25.5" # Use a slightly newer version than required by requests (for bugfixes)
appdirs = "^1.4.4" # For options that use platform-specific user cache dirs
attrs = "^21.2" # For response data models
cattrs = "^1.8" # For response serialization
url-normalize = "^1.4" # For reducing duplicate cache items
# Optional backend dependencies
boto3 = {optional=true, version="^1.15"}
botocore = {optional=true, version="^1.18"}
pymongo = {optional=true, version=">=3,<5"}
redis = {optional=true, version=">=3,<5"}
# Optional serialization dependencies
bson = {optional=true, version=">=0.5"}
itsdangerous = {optional=true, version="^2.0"}
pyyaml = {optional=true, version=">=5.4"}
ujson = {optional=true, version=">=4.0"}
# All the bells and whistles for building documentation;
# defined here because readthedocs doesn't (yet?) support poetry.dev-dependencies
furo = {optional=true, version=">=2021.9.8"}
linkify-it-py = {optional=true, version="^1.0.1"}
myst-parser = {optional=true, version="^0.15.1"}
sphinx = {optional=true, version="4.3.0"}
sphinx-autodoc-typehints = {optional=true, version="^1.11"}
sphinx-automodapi = {optional=true, version="^0.13"}
sphinx-copybutton = {optional=true, version=">=0.3,<0.5"}
sphinx-inline-tabs = {optional=true, version="^2021.8.17b10", python=">=3.8"}
sphinx-notfound-page = {optional=true, version="*"}
sphinx-panels = {optional=true, version="^0.6"}
sphinxcontrib-apidoc = {optional=true, version="^0.3"}
[tool.poetry.extras]
# Package extras for optional backend dependencies
dynamodb = ["boto3", "botocore"]
mongodb = ["pymongo"]
redis = ["redis"]
# Package extras for optional seriazliation dependencies
bson = ["bson"] # BSON comes with pymongo, but can also be used as a standalone codec
json = ["ujson"] # Will optionally be used by JSON serializer for improved performance
security = ["itsdangerous"]
yaml = ["pyyaml"]
# All optional packages combined, for demo/evaluation purposes
all = ["boto3", "botocore", "itsdangerous", "pymongo", "pyyaml", "redis", "ujson"]
# Documentation
docs = ["furo", "linkify-it-py", "myst-parser", "sphinx", "sphinx-autodoc-typehints",
"sphinx-automodapi", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-panels",
"sphinx-notfound-page", "sphinxcontrib-apidoc"]
[tool.poetry.dev-dependencies]
# For unit + integration tests
coverage = "^6.1"
psutil = "^5.0"
pytest = "^6.2"
pytest-clarity = "^1.0.1"
pytest-cov = ">=3.0"
pytest-rerunfailures = "^10.1"
pytest-xdist = ">=2.2"
requests-mock = "^1.8"
responses = "0.16.0"
timeout-decorator = "^0.5"
# Tools for linting, type checking, etc. are managed with pre-commit
pre-commit = "^2.15"
# For convenience in local development
nox = "^2021.10.1"
nox-poetry = "^0.9.0"
rich = ">=10.0"
sphinx-autobuild = "^2021.3.14"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.black]
line-length = 100
skip-string-normalization = true
[tool.coverage.html]
directory = 'test-reports'
[tool.coverage.xml]
output = 'test-reports/coverage.xml'
[tool.coverage.run]
branch = true
source = ['requests_cache']
omit = [
'requests_cache/__init__.py',
'requests_cache/backends/__init__.py',
'requests_cache/models/__init__.py',
'requests_cache/serializers/__init__.py',
]
[tool.coverage.report]
exclude_lines = [
'pragma: no cover',
'if TYPE_CHECKING:',
]
[tool.isort]
profile = 'black'
line_length = 100
skip_gitignore = true
skip = [
'examples/',
'requests_cache/__init__.py',
'tests/compat/',
]
known_first_party = ['tests']