persidict 0.36.5__tar.gz → 0.36.7__tar.gz

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 persidict might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: persidict
3
- Version: 0.36.5
3
+ Version: 0.36.7
4
4
  Summary: Simple persistent key-value store for Python. Values are stored as files on a disk or as S3 objects on AWS cloud.
5
5
  Keywords: persistence,dicts,distributed,parallel
6
6
  Author: Vlad (Volodymyr) Pavlov
@@ -47,7 +47,10 @@ In contrast to traditional persistent dictionaries (e.g., Python’s `shelve)`,
47
47
  `persidict` is designed for distributed environments where multiple processes
48
48
  on different machines concurrently work with the same store.
49
49
 
50
- ## 2. Features
50
+ ## 2. Why Use It?
51
+
52
+ ## 2.1 Features
53
+
51
54
  * **Persistent Storage**: Save dictionaries to the local filesystem
52
55
  (`FileDirDict`) or AWS S3 (`S3Dict`).
53
56
  * **Standard Dictionary API**: Use persidict objects like standard
@@ -61,6 +64,23 @@ JSON (`json`), or plain text.
61
64
  instances of a specific class.
62
65
  * **Advanced Functionality**: Includes features like write-once dictionaries,
63
66
  timestamping of entries, and tools for handling file-system-safe keys.
67
+ * **Hierarchical Keys**: Keys can be sequences of strings,
68
+ creating a directory-like structure within the storage backend.
69
+
70
+ ## 2.2 Use Cases
71
+
72
+ `persidict` is well-suited for a variety of applications, including:
73
+
74
+ * **Caching**: Store results of expensive computations and retrieve them later,
75
+ even across different machines.
76
+ * **Configuration Management**: Manage application settings
77
+ in a distributed environment, allowing for easy updates and access.
78
+ * **Data Pipelines**: Share data between different stages
79
+ of a data processing pipeline.
80
+ * **Distributed Task Queues**: Store task definitions and results
81
+ in a shared location.
82
+ * **Memoization**: Cache function call results
83
+ in a persistent and distributed manner.
64
84
 
65
85
  ## 3. Usage
66
86
 
@@ -154,7 +174,7 @@ for all persistent dictionaries in the package. It's the foundation
154
174
  upon which everything else is built.
155
175
  * **`PersiDictKey`**: A type hint that specifies what can be used
156
176
  as a key in any `PersiDict`. It can be a `SafeStrTuple`, a single string,
157
- * or a sequence of strings. When a `PesiDict` method requires a key as an input,
177
+ or a sequence of strings. When a `PesiDict` method requires a key as an input,
158
178
  it will accept any of these types and convert them to a `SafeStrTuple` internally.
159
179
  * **`SafeStrTuple`**: The core data structure for keys. It's an immutable,
160
180
  flat tuple of non-empty, URL/filename-safe strings, ensuring that
@@ -13,7 +13,10 @@ In contrast to traditional persistent dictionaries (e.g., Python’s `shelve)`,
13
13
  `persidict` is designed for distributed environments where multiple processes
14
14
  on different machines concurrently work with the same store.
15
15
 
16
- ## 2. Features
16
+ ## 2. Why Use It?
17
+
18
+ ## 2.1 Features
19
+
17
20
  * **Persistent Storage**: Save dictionaries to the local filesystem
18
21
  (`FileDirDict`) or AWS S3 (`S3Dict`).
19
22
  * **Standard Dictionary API**: Use persidict objects like standard
@@ -27,6 +30,23 @@ JSON (`json`), or plain text.
27
30
  instances of a specific class.
28
31
  * **Advanced Functionality**: Includes features like write-once dictionaries,
29
32
  timestamping of entries, and tools for handling file-system-safe keys.
33
+ * **Hierarchical Keys**: Keys can be sequences of strings,
34
+ creating a directory-like structure within the storage backend.
35
+
36
+ ## 2.2 Use Cases
37
+
38
+ `persidict` is well-suited for a variety of applications, including:
39
+
40
+ * **Caching**: Store results of expensive computations and retrieve them later,
41
+ even across different machines.
42
+ * **Configuration Management**: Manage application settings
43
+ in a distributed environment, allowing for easy updates and access.
44
+ * **Data Pipelines**: Share data between different stages
45
+ of a data processing pipeline.
46
+ * **Distributed Task Queues**: Store task definitions and results
47
+ in a shared location.
48
+ * **Memoization**: Cache function call results
49
+ in a persistent and distributed manner.
30
50
 
31
51
  ## 3. Usage
32
52
 
@@ -120,7 +140,7 @@ for all persistent dictionaries in the package. It's the foundation
120
140
  upon which everything else is built.
121
141
  * **`PersiDictKey`**: A type hint that specifies what can be used
122
142
  as a key in any `PersiDict`. It can be a `SafeStrTuple`, a single string,
123
- * or a sequence of strings. When a `PesiDict` method requires a key as an input,
143
+ or a sequence of strings. When a `PesiDict` method requires a key as an input,
124
144
  it will accept any of these types and convert them to a `SafeStrTuple` internally.
125
145
  * **`SafeStrTuple`**: The core data structure for keys. It's an immutable,
126
146
  flat tuple of non-empty, URL/filename-safe strings, ensuring that
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "persidict"
7
- version = "0.36.5"
7
+ version = "0.36.7"
8
8
  description = "Simple persistent key-value store for Python. Values are stored as files on a disk or as S3 objects on AWS cloud."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"