mirror of
https://github.com/long2ice/fastapi-cache.git
synced 2026-03-25 04:57:54 +00:00
💄 Pull version from installation metadata (#172)
The version string in the `__init__` module is needed to support towncrier, but that does mean there are now two locations for the project version: pyproject.toml and the `__init__.py` file. Use `importlib.metadata` to pull the version from the installation metadata.
This commit is contained in:
1
changelog.d/172.feature.md
Normal file
1
changelog.d/172.feature.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Use `importlib.metadata` to include project version string as `fastapi_cache.__version__`.
|
||||||
@@ -1,10 +1,19 @@
|
|||||||
from typing import ClassVar, Optional, Type
|
from typing import ClassVar, Optional, Type
|
||||||
|
|
||||||
|
# Because this project supports python 3.7 and up, Pyright treats importlib as
|
||||||
|
# an external library and so needs to be told to ignore the type issues it sees.
|
||||||
|
try:
|
||||||
|
# Python 3.8+
|
||||||
|
from importlib.metadata import version # type: ignore
|
||||||
|
except ImportError:
|
||||||
|
# Python 3.7
|
||||||
|
from importlib_metadata import version # type: ignore
|
||||||
|
|
||||||
from fastapi_cache.coder import Coder, JsonCoder
|
from fastapi_cache.coder import Coder, JsonCoder
|
||||||
from fastapi_cache.key_builder import default_key_builder
|
from fastapi_cache.key_builder import default_key_builder
|
||||||
from fastapi_cache.types import Backend, KeyBuilder
|
from fastapi_cache.types import Backend, KeyBuilder
|
||||||
|
|
||||||
__version__ = "0.2.1"
|
__version__ = version("fastapi-cache2") # pyright: ignore[reportUnknownVariableType]
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"Backend",
|
"Backend",
|
||||||
"Coder",
|
"Coder",
|
||||||
@@ -92,7 +101,11 @@ class FastAPICache:
|
|||||||
return cls._enable
|
return cls._enable
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def clear(cls, namespace: Optional[str] = None, key: Optional[str] = None) -> int:
|
async def clear(
|
||||||
assert cls._backend and cls._prefix is not None, "You must call init first!" # noqa: S101
|
cls, namespace: Optional[str] = None, key: Optional[str] = None
|
||||||
|
) -> int:
|
||||||
|
assert ( # noqa: S101
|
||||||
|
cls._backend and cls._prefix is not None
|
||||||
|
), "You must call init first!"
|
||||||
namespace = cls._prefix + (":" + namespace if namespace else "")
|
namespace = cls._prefix + (":" + namespace if namespace else "")
|
||||||
return await cls._backend.clear(namespace, key)
|
return await cls._backend.clear(namespace, key)
|
||||||
|
|||||||
2
poetry.lock
generated
2
poetry.lock
generated
@@ -2574,4 +2574,4 @@ redis = ["redis"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.7"
|
python-versions = "^3.7"
|
||||||
content-hash = "c16f63dc3f2e9a5c4c01faed05d4b50c48edf0221e6e371665b0b83598bc7aa9"
|
content-hash = "d96f466d1d43a0c98a946d3a89da93233e8f3c83faa2df3c35c937388dedef39"
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ aiomcache = { version = "*", optional = true }
|
|||||||
pendulum = "*"
|
pendulum = "*"
|
||||||
aiobotocore = { version = ">=1.4.1,<3.0.0", optional = true }
|
aiobotocore = { version = ">=1.4.1,<3.0.0", optional = true }
|
||||||
typing-extensions = { version = ">=4.1.0" }
|
typing-extensions = { version = ">=4.1.0" }
|
||||||
|
importlib-metadata = {version = "^6.6.0", python = "<3.8"}
|
||||||
|
|
||||||
[tool.poetry.group.linting]
|
[tool.poetry.group.linting]
|
||||||
optional = true
|
optional = true
|
||||||
|
|||||||
Reference in New Issue
Block a user