dtools.circular-array 3.14.0__tar.gz → 3.15.0__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.
- {dtools_circular_array-3.14.0 → dtools_circular_array-3.15.0}/CHANGELOG.md +14 -4
- {dtools_circular_array-3.14.0 → dtools_circular_array-3.15.0}/PKG-INFO +11 -15
- {dtools_circular_array-3.14.0 → dtools_circular_array-3.15.0}/README.md +9 -13
- {dtools_circular_array-3.14.0 → dtools_circular_array-3.15.0}/pyproject.toml +1 -1
- {dtools_circular_array-3.14.0 → dtools_circular_array-3.15.0}/src/dtools/circular_array.py +12 -5
- {dtools_circular_array-3.14.0 → dtools_circular_array-3.15.0}/LICENSE +0 -0
- {dtools_circular_array-3.14.0 → dtools_circular_array-3.15.0}/src/dtools/py.typed +0 -0
@@ -2,13 +2,23 @@
|
|
2
2
|
|
3
3
|
PyPI grscheller.circular-array project.
|
4
4
|
|
5
|
-
-
|
6
|
-
-
|
7
|
-
-
|
5
|
+
- Strict 3 digit semantic versioning (adopted 2025-05-19)
|
6
|
+
- MAJOR version for incompatible API changes
|
7
|
+
- MINOR version for backward compatible added functionality
|
8
|
+
- PATCH version for backward compatible bug fixes
|
8
9
|
|
9
10
|
## Releases and Important Milestones
|
10
11
|
|
11
|
-
###
|
12
|
+
### Adapting strict Semantic from this point on - date 2025-05-19
|
13
|
+
|
14
|
+
- [Semantic Versioning 2.0.0](https://semver.org/)
|
15
|
+
- see top of file
|
16
|
+
- previous versioning scheme used
|
17
|
+
- first digit - major event, epoch, or paradigm shift
|
18
|
+
- second digit - breaking API changes, major changes
|
19
|
+
- third digit - bug fixes, API additions
|
20
|
+
|
21
|
+
### Version 3.14.0 - PyPI release date 2025-05-10
|
12
22
|
|
13
23
|
- Made package just a single module
|
14
24
|
- dtools.circular_array.ca -> dtools.circular_array
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dtools.circular-array
|
3
|
-
Version: 3.
|
4
|
-
Summary:
|
3
|
+
Version: 3.15.0
|
4
|
+
Summary: An indexable circular array data structure.
|
5
5
|
Keywords: circular array,dequeue,pop,push,indexable,auto resizing
|
6
6
|
Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
|
7
7
|
Requires-Python: >=3.12
|
@@ -24,7 +24,8 @@ Provides-Extra: test
|
|
24
24
|
# Developer Tools - Circular Array
|
25
25
|
|
26
26
|
Python package containing a module implementing a circular array data
|
27
|
-
structure,
|
27
|
+
structure, This project is part of the [Developer Tools for Python][4]
|
28
|
+
**dtools** namespace projects.
|
28
29
|
|
29
30
|
- **Repositories**
|
30
31
|
- [dtools.circular-array][1] project on *PyPI*
|
@@ -32,31 +33,26 @@ structure,
|
|
32
33
|
- **Detailed documentation**
|
33
34
|
- [Detailed API documentation][3] on *GH-Pages*
|
34
35
|
|
35
|
-
This project is part of the [Developer Tools for Python][4] **dtools**
|
36
|
-
namespace projects.
|
37
|
-
|
38
36
|
## Overview
|
39
37
|
|
40
|
-
- O(1) amortized pushes and pops either end.
|
41
|
-
- O(1) indexing
|
42
|
-
- fully supports slicing
|
43
|
-
- safely mutates over previous state
|
44
|
-
|
45
|
-
### Module circular_array
|
46
|
-
|
47
38
|
A full featured auto resizing circular array data structure. Double
|
48
39
|
sided, indexable, sliceable, and iterable. When iterated, uses cached
|
49
40
|
copies of its present state so that the circular array itself can safely
|
50
41
|
be mutated.
|
51
42
|
|
43
|
+
- O(1) amortized pushes and pops either end.
|
44
|
+
- O(1) indexing
|
45
|
+
- fully supports slicing
|
46
|
+
- safely mutates over previous state
|
47
|
+
|
52
48
|
Useful either if used directly like a Python list, or in a "has-a"
|
53
49
|
relationship when implementing other data structures.
|
54
50
|
|
55
51
|
- *module* dtools.circular_array
|
56
52
|
- *class* `CA:` circular array data structure
|
57
53
|
- initializer takes 1 or 0 iterators
|
58
|
-
|
59
|
-
- *function* `ca`: produces a `CA` from function's arguments
|
54
|
+
- like `list` or `set` does
|
55
|
+
- *function* `ca`: produces a `CA` from the function's arguments
|
60
56
|
- similar use case as syntactic constructs `[]` or `{}`
|
61
57
|
|
62
58
|
Above nomenclature modeled after builtin data types like `list`, where
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Developer Tools - Circular Array
|
2
2
|
|
3
3
|
Python package containing a module implementing a circular array data
|
4
|
-
structure,
|
4
|
+
structure, This project is part of the [Developer Tools for Python][4]
|
5
|
+
**dtools** namespace projects.
|
5
6
|
|
6
7
|
- **Repositories**
|
7
8
|
- [dtools.circular-array][1] project on *PyPI*
|
@@ -9,31 +10,26 @@ structure,
|
|
9
10
|
- **Detailed documentation**
|
10
11
|
- [Detailed API documentation][3] on *GH-Pages*
|
11
12
|
|
12
|
-
This project is part of the [Developer Tools for Python][4] **dtools**
|
13
|
-
namespace projects.
|
14
|
-
|
15
13
|
## Overview
|
16
14
|
|
17
|
-
- O(1) amortized pushes and pops either end.
|
18
|
-
- O(1) indexing
|
19
|
-
- fully supports slicing
|
20
|
-
- safely mutates over previous state
|
21
|
-
|
22
|
-
### Module circular_array
|
23
|
-
|
24
15
|
A full featured auto resizing circular array data structure. Double
|
25
16
|
sided, indexable, sliceable, and iterable. When iterated, uses cached
|
26
17
|
copies of its present state so that the circular array itself can safely
|
27
18
|
be mutated.
|
28
19
|
|
20
|
+
- O(1) amortized pushes and pops either end.
|
21
|
+
- O(1) indexing
|
22
|
+
- fully supports slicing
|
23
|
+
- safely mutates over previous state
|
24
|
+
|
29
25
|
Useful either if used directly like a Python list, or in a "has-a"
|
30
26
|
relationship when implementing other data structures.
|
31
27
|
|
32
28
|
- *module* dtools.circular_array
|
33
29
|
- *class* `CA:` circular array data structure
|
34
30
|
- initializer takes 1 or 0 iterators
|
35
|
-
|
36
|
-
- *function* `ca`: produces a `CA` from function's arguments
|
31
|
+
- like `list` or `set` does
|
32
|
+
- *function* `ca`: produces a `CA` from the function's arguments
|
37
33
|
- similar use case as syntactic constructs `[]` or `{}`
|
38
34
|
|
39
35
|
Above nomenclature modeled after builtin data types like `list`, where
|
@@ -12,10 +12,18 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
"""
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
"""An indexable circular array data structure.
|
16
|
+
|
17
|
+
- generic, stateful, invariant data structure
|
18
|
+
- amortized O(1) pushing and popping from either end
|
19
|
+
- O(1) random access any element
|
20
|
+
- will resize itself as needed
|
21
|
+
- sliceable
|
22
|
+
- makes defensive copies of contents for the purposes of iteration
|
23
|
+
- in boolean context returns
|
24
|
+
- `True` when not empty
|
25
|
+
- `False` when empty
|
26
|
+
- in comparisons compare identity before equality, like builtins do
|
19
27
|
|
20
28
|
"""
|
21
29
|
|
@@ -36,7 +44,6 @@ D = TypeVar('D')
|
|
36
44
|
class CA[D]:
|
37
45
|
"""Indexable circular array data structure
|
38
46
|
|
39
|
-
- generic, stateful, invariant data structure
|
40
47
|
- amortized O(1) pushing and popping from either end
|
41
48
|
- O(1) random access any element
|
42
49
|
- will resize itself as needed
|
File without changes
|
File without changes
|