Skip to content

Commit 0c4c50f

Browse files
committed
refactor(policies): mark policy classes as final and update docstrings
- Added @Final decorator to all policy classes to prevent inheritance - Updated module docstrings to clarify "eviction policy" terminology - Imported typing.final in all policy modules - Added Attributes section to AbstractScriptsMixin docstring - Standardized docstring format across all policy classes - Ensured consistent naming and key assignments for all policies
1 parent b01b850 commit 0c4c50f

File tree

6 files changed

+47
-4
lines changed

6 files changed

+47
-4
lines changed

src/redis_func_cache/mixins/scripts.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class AbstractScriptsMixin(ABC):
2020
2121
.. inheritance-diagram:: AbstractScriptsMixin
2222
:parts: 1
23+
24+
Attributes:
25+
__scripts__ (Tuple[str, str]): A pair of file name for ‘get’ and ‘put’ Lua scripts to be used by the policy.
2326
"""
2427

2528
__scripts__: Tuple[str, str]

src/redis_func_cache/policies/fifo.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
"""FIFO policies"""
1+
"""FIFO eviction policies"""
2+
3+
from typing import final
24

35
from ..mixins.hash import PickleMd5HashMixin
46
from ..mixins.scripts import FifoScriptsMixin, FifoTScriptsMixin
@@ -16,6 +18,7 @@
1618
)
1719

1820

21+
@final
1922
class FifoPolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
2023
"""
2124
FIFO eviction policy, single key pair.
@@ -29,6 +32,7 @@ class FifoPolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
2932
__key__ = "fifo"
3033

3134

35+
@final
3236
class FifoMultiplePolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
3337
"""
3438
FIFO eviction policy, multiple key pairs.
@@ -42,6 +46,7 @@ class FifoMultiplePolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseMultiplePolic
4246
__key__ = "fifo-m"
4347

4448

49+
@final
4550
class FifoClusterPolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy):
4651
"""
4752
FIFO eviction policy with Redis cluster support, single key pair.
@@ -55,6 +60,7 @@ class FifoClusterPolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseClusterSingleP
5560
__key__ = "fifo-c"
5661

5762

63+
@final
5864
class FifoClusterMultiplePolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy):
5965
"""
6066
FIFO eviction policy with Redis cluster support, multiple key pairs.
@@ -68,6 +74,7 @@ class FifoClusterMultiplePolicy(FifoScriptsMixin, PickleMd5HashMixin, BaseCluste
6874
__key__ = "fifo-cm"
6975

7076

77+
@final
7178
class FifoTPolicy(FifoTScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
7279
"""
7380
FIFO eviction policy (timestamp variant), single key pair.
@@ -81,6 +88,7 @@ class FifoTPolicy(FifoTScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
8188
__key__ = "fifo_t"
8289

8390

91+
@final
8492
class FifoTMultiplePolicy(FifoTScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
8593
"""
8694
FIFO eviction policy (timestamp variant), multiple key pairs.
@@ -94,6 +102,7 @@ class FifoTMultiplePolicy(FifoTScriptsMixin, PickleMd5HashMixin, BaseMultiplePol
94102
__key__ = "fifo_t-m"
95103

96104

105+
@final
97106
class FifoTClusterPolicy(FifoTScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy):
98107
"""
99108
FIFO eviction policy (timestamp variant) with Redis cluster support, single key pair.
@@ -107,6 +116,7 @@ class FifoTClusterPolicy(FifoTScriptsMixin, PickleMd5HashMixin, BaseClusterSingl
107116
__key__ = "fifo_t-c"
108117

109118

119+
@final
110120
class FifoTClusterMultiplePolicy(FifoTScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy):
111121
"""
112122
FIFO eviction policy (timestamp variant) with Redis cluster support, multiple key pairs.

src/redis_func_cache/policies/lfu.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
"""LFU policy."""
1+
"""LFU eviction policy."""
2+
3+
from typing import final
24

35
from ..mixins.hash import PickleMd5HashMixin
46
from ..mixins.scripts import LfuScriptsMixin
@@ -7,6 +9,7 @@
79
__all__ = ("LfuPolicy", "LfuMultiplePolicy", "LfuClusterPolicy", "LfuClusterMultiplePolicy")
810

911

12+
@final
1013
class LfuPolicy(LfuScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
1114
"""
1215
LFU eviction policy, single key pair.
@@ -20,6 +23,7 @@ class LfuPolicy(LfuScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
2023
__key__ = "lfu"
2124

2225

26+
@final
2327
class LfuMultiplePolicy(LfuScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
2428
"""
2529
LFU eviction policy, multiple key pairs.
@@ -33,6 +37,7 @@ class LfuMultiplePolicy(LfuScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy)
3337
__key__ = "lfu-m"
3438

3539

40+
@final
3641
class LfuClusterPolicy(LfuScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy):
3742
"""
3843
LFU eviction policy with Redis cluster support, single key pair.
@@ -46,6 +51,7 @@ class LfuClusterPolicy(LfuScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePol
4651
__key__ = "lfu-c"
4752

4853

54+
@final
4955
class LfuClusterMultiplePolicy(LfuScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy):
5056
"""
5157
LFU eviction policy with Redis cluster support, multiple key pairs.

src/redis_func_cache/policies/lru.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
"""Least Recently Used cache policies."""
1+
"""Least Recently Used eviction cache policies."""
2+
3+
from typing import final
24

35
from ..mixins.hash import PickleMd5HashMixin
46
from ..mixins.scripts import LruScriptsMixin, LruTScriptsMixin
@@ -16,6 +18,7 @@
1618
)
1719

1820

21+
@final
1922
class LruPolicy(LruScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
2023
"""
2124
LRU eviction policy, single key pair.
@@ -29,6 +32,7 @@ class LruPolicy(LruScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
2932
__key__ = "lru"
3033

3134

35+
@final
3236
class LruMultiplePolicy(LruScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
3337
"""
3438
LRU eviction policy, multiple key pairs.
@@ -42,6 +46,7 @@ class LruMultiplePolicy(LruScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy)
4246
__key__ = "lru-m"
4347

4448

49+
@final
4550
class LruClusterPolicy(LruScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy):
4651
"""
4752
LRU eviction policy with Redis cluster support, single key pair.
@@ -55,6 +60,7 @@ class LruClusterPolicy(LruScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePol
5560
__key__ = "lru-c"
5661

5762

63+
@final
5864
class LruClusterMultiplePolicy(LruScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy):
5965
"""
6066
LRU eviction policy with Redis cluster support, multiple key pairs.
@@ -68,6 +74,7 @@ class LruClusterMultiplePolicy(LruScriptsMixin, PickleMd5HashMixin, BaseClusterM
6874
__key__ = "lru-cm"
6975

7076

77+
@final
7178
class LruTPolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
7279
"""
7380
LRU-T (timestamp-based pseudo LRU) eviction policy, single key pair.
@@ -81,6 +88,7 @@ class LruTPolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
8188
__key__ = "lru_t"
8289

8390

91+
@final
8492
class LruTMultiplePolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
8593
"""
8694
LRU-T (timestamp-based pseudo LRU) eviction policy, multiple key pairs.
@@ -94,6 +102,7 @@ class LruTMultiplePolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseMultiplePolic
94102
__key__ = "lru_t-m"
95103

96104

105+
@final
97106
class LruTClusterPolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy):
98107
"""
99108
LRU-T (timestamp-based pseudo LRU) eviction policy with Redis cluster support, single key pair.
@@ -107,6 +116,7 @@ class LruTClusterPolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseClusterSingleP
107116
__key__ = "lru_t-c"
108117

109118

119+
@final
110120
class LruTClusterMultiplePolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy):
111121
"""
112122
LRU-T (timestamp-based pseudo LRU) eviction policy with Redis cluster support, multiple key pairs.

src/redis_func_cache/policies/mru.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
"""Most Recently Used eviction cache policies."""
2+
3+
from typing import final
4+
15
from ..mixins.hash import PickleMd5HashMixin
26
from ..mixins.scripts import MruScriptsMixin
37
from .base import BaseClusterMultiplePolicy, BaseClusterSinglePolicy, BaseMultiplePolicy, BaseSinglePolicy
@@ -10,6 +14,7 @@ def calc_ext_args(self, *args, **kwargs):
1014
return ("mru",)
1115

1216

17+
@final
1318
class MruPolicy(_MruPolicyExtArgsMixin, MruScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
1419
"""
1520
MRU eviction policy, single key pair.
@@ -23,6 +28,7 @@ class MruPolicy(_MruPolicyExtArgsMixin, MruScriptsMixin, PickleMd5HashMixin, Bas
2328
__key__ = "mru"
2429

2530

31+
@final
2632
class MruMultiplePolicy(_MruPolicyExtArgsMixin, MruScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
2733
"""
2834
MRU eviction policy, multiple key pairs.
@@ -36,6 +42,7 @@ class MruMultiplePolicy(_MruPolicyExtArgsMixin, MruScriptsMixin, PickleMd5HashMi
3642
__key__ = "mru-m"
3743

3844

45+
@final
3946
class MruClusterPolicy(_MruPolicyExtArgsMixin, MruScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy):
4047
"""
4148
MRU eviction policy with Redis cluster support, single key pair.
@@ -49,6 +56,7 @@ class MruClusterPolicy(_MruPolicyExtArgsMixin, MruScriptsMixin, PickleMd5HashMix
4956
__key__ = "mru-c"
5057

5158

59+
@final
5260
class MruClusterMultiplePolicy(_MruPolicyExtArgsMixin, MruScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy):
5361
"""
5462
MRU eviction policy with Redis cluster support, multiple key pairs.

src/redis_func_cache/policies/rr.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
"""Random replacement cache policy."""
1+
"""Random replacement eviction cache policy."""
2+
3+
from typing import final
24

35
from ..mixins.hash import PickleMd5HashMixin
46
from ..mixins.scripts import RrScriptsMixin
@@ -7,6 +9,7 @@
79
__all__ = ("RrPolicy", "RrMultiplePolicy", "RrClusterPolicy", "RrClusterMultiplePolicy")
810

911

12+
@final
1013
class RrPolicy(RrScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
1114
"""
1215
Random replacement (RR) eviction policy, single key pair.
@@ -20,6 +23,7 @@ class RrPolicy(RrScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy):
2023
__key__ = "rr"
2124

2225

26+
@final
2327
class RrMultiplePolicy(RrScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
2428
"""
2529
Random replacement (RR) eviction policy, multiple key pairs.
@@ -33,6 +37,7 @@ class RrMultiplePolicy(RrScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy):
3337
__key__ = "rr-m"
3438

3539

40+
@final
3641
class RrClusterPolicy(RrScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy):
3742
"""
3843
Random replacement (RR) eviction policy with Redis cluster support, single key pair.
@@ -46,6 +51,7 @@ class RrClusterPolicy(RrScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolic
4651
__key__ = "rr-c"
4752

4853

54+
@final
4955
class RrClusterMultiplePolicy(RrScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy):
5056
"""
5157
Random replacement (RR) eviction policy with Redis cluster support, multiple key pairs.

0 commit comments

Comments
 (0)