scruby 0.12.2__py3-none-any.whl → 0.12.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of scruby might be problematic. Click here for more details.

scruby/db.py CHANGED
@@ -45,7 +45,7 @@ class Scruby[T]:
45
45
  self.__class_model = class_model
46
46
  self.__db_root = constants.DB_ROOT
47
47
  self.__hash_reduce_left = constants.HASH_REDUCE_LEFT
48
- # The maximum number of keys.
48
+ # The maximum number of branches.
49
49
  match self.__hash_reduce_left:
50
50
  case 0:
51
51
  self.__max_branch_number = 4294967296
@@ -59,18 +59,18 @@ class Scruby[T]:
59
59
  msg: str = f"{unreachable} - Unacceptable value for HASH_REDUCE_LEFT."
60
60
  logger.critical(msg)
61
61
  assert_never(Never(unreachable))
62
- # 1.Create metadata if absent.
63
- # 2.Check metadata.
64
- self._create_metadata()
65
-
66
- def _create_metadata(self) -> None:
67
- """Create metadata for collection if absent.
68
-
69
- This method is for internal use.
70
- """
62
+ # Caching a pati for metadata in the form of a tuple.
63
+ # The zero branch is reserved for metadata.
71
64
  branch_number: int = 0
72
- key_as_hash: str = f"{branch_number:08x}"[self.__hash_reduce_left :]
73
- separated_hash: str = "/".join(list(key_as_hash))
65
+ branch_number_as_hash: str = f"{branch_number:08x}"[constants.HASH_REDUCE_LEFT :]
66
+ separated_hash: str = "/".join(list(branch_number_as_hash))
67
+ self.__meta_path_tuple = (
68
+ constants.DB_ROOT,
69
+ class_model.__name__,
70
+ separated_hash,
71
+ "meta.json",
72
+ )
73
+ # Create metadata for collection, if required.
74
74
  branch_path = SyncPath(
75
75
  *(
76
76
  self.__db_root,
@@ -87,29 +87,12 @@ class Scruby[T]:
87
87
  meta_path = SyncPath(*(branch_path, "meta.json"))
88
88
  meta_path.write_text(meta_json, "utf-8")
89
89
 
90
- async def _get_meta_path(self) -> Path:
91
- """Asynchronous method for getting path to metadata of collection.
92
-
93
- This method is for internal use.
94
- """
95
- branch_number: int = 0
96
- branch_number_as_hash: str = f"{branch_number:08x}"[self.__hash_reduce_left :]
97
- separated_hash: str = "/".join(list(branch_number_as_hash))
98
- return Path(
99
- *(
100
- self.__db_root,
101
- self.__class_model.__name__,
102
- separated_hash,
103
- "meta.json",
104
- ),
105
- )
106
-
107
90
  async def _get_meta(self) -> _Meta:
108
91
  """Asynchronous method for getting metadata of collection.
109
92
 
110
93
  This method is for internal use.
111
94
  """
112
- meta_path = await self._get_meta_path()
95
+ meta_path = Path(*self.__meta_path_tuple)
113
96
  meta_json = await meta_path.read_text()
114
97
  meta: _Meta = self.__meta.model_validate_json(meta_json)
115
98
  return meta
@@ -119,7 +102,7 @@ class Scruby[T]:
119
102
 
120
103
  This method is for internal use.
121
104
  """
122
- meta_path = await self._get_meta_path()
105
+ meta_path = Path(*self.__meta_path_tuple)
123
106
  meta_json = meta.model_dump_json()
124
107
  await meta_path.write_text(meta_json, "utf-8")
125
108
 
@@ -128,7 +111,7 @@ class Scruby[T]:
128
111
 
129
112
  This method is for internal use.
130
113
  """
131
- meta_path = await self._get_meta_path()
114
+ meta_path = Path(*self.__meta_path_tuple)
132
115
  meta_json = await meta_path.read_text("utf-8")
133
116
  meta: _Meta = self.__meta.model_validate_json(meta_json)
134
117
  meta.counter_documents += step
@@ -140,17 +123,7 @@ class Scruby[T]:
140
123
 
141
124
  This method is for internal use.
142
125
  """
143
- branch_number: int = 0
144
- branch_number_as_hash: str = f"{branch_number:08x}"[self.__hash_reduce_left :]
145
- separated_hash: str = "/".join(list(branch_number_as_hash))
146
- meta_path = SyncPath(
147
- *(
148
- self.__db_root,
149
- self.__class_model.__name__,
150
- separated_hash,
151
- "meta.json",
152
- ),
153
- )
126
+ meta_path = SyncPath(*self.__meta_path_tuple)
154
127
  meta_json = meta_path.read_text("utf-8")
155
128
  meta: _Meta = self.__meta.model_validate_json(meta_json)
156
129
  meta.counter_documents += number
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scruby
3
- Version: 0.12.2
3
+ Version: 0.12.3
4
4
  Summary: A fast key-value storage library.
5
5
  Project-URL: Homepage, https://github.com/kebasyaty/scruby
6
6
  Project-URL: Repository, https://github.com/kebasyaty/scruby
@@ -1,9 +1,9 @@
1
1
  scruby/__init__.py,sha256=GOVcjXmcOEDBbJQJDJlQq-x3M-VGJaMSN278EXsl2po,884
2
2
  scruby/constants.py,sha256=3LZfcxcuRqwzoB0-iogLMjKBZRdxfWJmTbyPwVRhQgY,1007
3
- scruby/db.py,sha256=-xNn0S2fcIQoar4fYk6ER2p7dlDIeUY-BAD6LLYtFFo,21733
3
+ scruby/db.py,sha256=H70ODq0SXtEBB6iTBFA_l-fZ0L1zFq5Nb_PT3Ad2TZs,20925
4
4
  scruby/errors.py,sha256=aHQri4LNcFVQrSHwjyzb1fL8O49SwjYEU4QgMOo4uyA,622
5
5
  scruby/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- scruby-0.12.2.dist-info/METADATA,sha256=YK-ZgnJEcS7y0R27hh7GTlRSAexq5H9olStIQKZL7sc,10925
7
- scruby-0.12.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8
- scruby-0.12.2.dist-info/licenses/LICENSE,sha256=2zZINd6m_jNYlowdQImlEizyhSui5cBAJZRhWQURcEc,1095
9
- scruby-0.12.2.dist-info/RECORD,,
6
+ scruby-0.12.3.dist-info/METADATA,sha256=C7rNCceHMaFezgzg4TEvUR_vOivfvGG3bpgPOQrucLg,10925
7
+ scruby-0.12.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8
+ scruby-0.12.3.dist-info/licenses/LICENSE,sha256=2zZINd6m_jNYlowdQImlEizyhSui5cBAJZRhWQURcEc,1095
9
+ scruby-0.12.3.dist-info/RECORD,,