[tool.poetry] name = "requests-cache" version = "0.8.0" description = "A transparent persistent cache for the requests library" authors = ["Roman Haritonov"] maintainers = ["Jordan Cook"] license = "BSD License" 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", "persistence", "sqlite", "redis", "mongodb", "gridfs", "dynamodb"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "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.0"} redis = {optional=true, version="^3.0"} # 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 # [tool.poetry.dev-dependencies] furo = {optional=true, version=">=2021.8.11-beta.42"} linkify-it-py = {optional=true, version="^1.0.1"} myst-parser = {optional=true, version="^0.15.1"} sphinx = {optional=true, version="4.1.2"} 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.4.11-beta.9", python=">=3.8"} 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", "sphinxcontrib-apidoc"] [tool.poetry.dev-dependencies] # For unit + integration tests psutil = "^5.0" pytest = "^6.2" pytest-clarity = "^1.0.1" pytest-cov = ">=2.11" pytest-rerunfailures = "^10.1" pytest-xdist = ">=2.2" requests-mock = "^1.8" responses = "0.10.15" timeout-decorator = "^0.5" # For linting, etc.; additional tools are managed by pre-commit mypy = "^0.910" pre-commit = "^2.15" # For convenience in local development nox = "^2021.6.12" nox-poetry = "^0.8.6" 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 = 105 skip-string-normalization = true [tool.coverage.html] directory = 'test-reports' [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 = 105 skip_gitignore = true skip = [ 'examples/', 'requests_cache/__init__.py', 'tests/compat/', ] known_first_party = ['tests']