core-data-structures 1.1.0__tar.gz → 1.2.1__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.
- core_data_structures-1.2.1/PKG-INFO +178 -0
- core_data_structures-1.2.1/README.rst +144 -0
- core_data_structures-1.2.1/core_data_structures.egg-info/PKG-INFO +178 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/core_data_structures.egg-info/SOURCES.txt +5 -1
- core_data_structures-1.2.1/core_data_structures.egg-info/requires.txt +6 -0
- core_data_structures-1.2.1/data_structures/__init__.py +18 -0
- core_data_structures-1.2.1/data_structures/base.py +37 -0
- core_data_structures-1.2.1/data_structures/graphs/__init__.py +12 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/data_structures/graphs/graphs.py +29 -17
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/data_structures/graphs/vertex.py +10 -4
- core_data_structures-1.2.1/data_structures/lists/singly_linked_list.py +308 -0
- core_data_structures-1.2.1/data_structures/py.typed +0 -0
- core_data_structures-1.2.1/data_structures/trees/__init__.py +12 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/data_structures/trees/binary_tree.py +12 -7
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/data_structures/trees/simple_tree.py +2 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/pyproject.toml +18 -13
- core_data_structures-1.1.0/PKG-INFO +0 -64
- core_data_structures-1.1.0/README.md +0 -33
- core_data_structures-1.1.0/core_data_structures.egg-info/PKG-INFO +0 -64
- core_data_structures-1.1.0/core_data_structures.egg-info/requires.txt +0 -7
- core_data_structures-1.1.0/data_structures/__init__.py +0 -4
- core_data_structures-1.1.0/data_structures/graphs/__init__.py +0 -4
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/LICENSE +0 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/core_data_structures.egg-info/dependency_links.txt +0 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/core_data_structures.egg-info/top_level.txt +0 -0
- {core_data_structures-1.1.0/data_structures/trees → core_data_structures-1.2.1/data_structures/lists}/__init__.py +0 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/setup.cfg +0 -0
- {core_data_structures-1.1.0 → core_data_structures-1.2.1}/setup.py +0 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: core-data-structures
|
|
3
|
+
Version: 1.2.1
|
|
4
|
+
Summary: This project/library contains commons data structures...
|
|
5
|
+
Author-email: Alejandro Cora González <alek.cora.glez@gmail.com>
|
|
6
|
+
Maintainer: Alejandro Cora González
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://gitlab.com/bytecode-solutions/core/core-data-structures
|
|
9
|
+
Project-URL: Repository, https://gitlab.com/bytecode-solutions/core/core-data-structures
|
|
10
|
+
Project-URL: Documentation, https://core-data-structures.readthedocs.io/en/latest/
|
|
11
|
+
Project-URL: Issues, https://gitlab.com/bytecode-solutions/core/core-data-structures/-/issues
|
|
12
|
+
Project-URL: Changelog, https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/master/CHANGELOG.md
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
25
|
+
Requires-Python: >=3.9
|
|
26
|
+
Description-Content-Type: text/x-rst
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: core-mixins>=3.2.0
|
|
29
|
+
Requires-Dist: typing-extensions>=4.8.0
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: core-dev-tools>=2.1.0; extra == "dev"
|
|
32
|
+
Requires-Dist: core-tests>=2.1.0; extra == "dev"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
core-data-structures
|
|
36
|
+
===============================================================================
|
|
37
|
+
|
|
38
|
+
A Python library providing common data structures including graphs and trees,
|
|
39
|
+
with built-in traversal and path-finding algorithms.
|
|
40
|
+
|
|
41
|
+
===============================================================================
|
|
42
|
+
|
|
43
|
+
.. image:: https://static.pepy.tech/personalized-badge/core-data-structures?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads
|
|
44
|
+
:target: https://pepy.tech/projects/core-data-structures
|
|
45
|
+
:alt: PyPI Downloads
|
|
46
|
+
|
|
47
|
+
.. image:: https://img.shields.io/pypi/pyversions/core-data-structures.svg
|
|
48
|
+
:target: https://pypi.org/project/core-data-structures/
|
|
49
|
+
:alt: Python Versions
|
|
50
|
+
|
|
51
|
+
.. image:: https://img.shields.io/badge/license-MIT-blue.svg
|
|
52
|
+
:target: https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/main/LICENSE
|
|
53
|
+
:alt: License
|
|
54
|
+
|
|
55
|
+
.. image:: https://gitlab.com/bytecode-solutions/core/core-data-structures/badges/release/pipeline.svg
|
|
56
|
+
:target: https://gitlab.com/bytecode-solutions/core/core-data-structures/-/pipelines
|
|
57
|
+
:alt: Pipeline Status
|
|
58
|
+
|
|
59
|
+
.. image:: https://readthedocs.org/projects/core-data-structures/badge/?version=latest
|
|
60
|
+
:target: https://readthedocs.org/projects/core-data-structures/
|
|
61
|
+
:alt: Docs Status
|
|
62
|
+
|
|
63
|
+
.. image:: https://img.shields.io/badge/security-bandit-yellow.svg
|
|
64
|
+
:target: https://github.com/PyCQA/bandit
|
|
65
|
+
:alt: Security
|
|
66
|
+
|
|
67
|
+
|
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
Features
|
|
71
|
+
===============================================================================
|
|
72
|
+
|
|
73
|
+
- **Graphs** — undirected weighted graph with adjacency dictionary representation.
|
|
74
|
+
|
|
75
|
+
- Breadth-first search (BFS)
|
|
76
|
+
- Depth-first search (DFS)
|
|
77
|
+
- Path finding (single path, all paths, shortest path)
|
|
78
|
+
|
|
79
|
+
- **Trees** — binary tree and simple nested-dictionary tree.
|
|
80
|
+
|
|
81
|
+
- Pre-order, in-order, post-order, and level-order traversal
|
|
82
|
+
- Recursive and iterative variants
|
|
83
|
+
- Tree depth calculation
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
Quick Start
|
|
87
|
+
===============================================================================
|
|
88
|
+
|
|
89
|
+
Installation
|
|
90
|
+
-------------------------------------------------------------------------------
|
|
91
|
+
|
|
92
|
+
Install from PyPI using pip:
|
|
93
|
+
|
|
94
|
+
.. code-block:: bash
|
|
95
|
+
|
|
96
|
+
pip install core-data-structures
|
|
97
|
+
uv pip install core-data-structures # Or using UV...
|
|
98
|
+
pip install -e ".[dev]" # For development...
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
Setting Up Environment
|
|
102
|
+
-------------------------------------------------------------------------------
|
|
103
|
+
|
|
104
|
+
1. Install required libraries:
|
|
105
|
+
|
|
106
|
+
.. code-block:: bash
|
|
107
|
+
|
|
108
|
+
pip install --upgrade pip
|
|
109
|
+
pip install virtualenv
|
|
110
|
+
|
|
111
|
+
2. Create Python virtual environment:
|
|
112
|
+
|
|
113
|
+
.. code-block:: bash
|
|
114
|
+
|
|
115
|
+
virtualenv --python=python3.12 .venv
|
|
116
|
+
|
|
117
|
+
3. Activate the virtual environment:
|
|
118
|
+
|
|
119
|
+
.. code-block:: bash
|
|
120
|
+
|
|
121
|
+
source .venv/bin/activate
|
|
122
|
+
|
|
123
|
+
4. Install packages:
|
|
124
|
+
|
|
125
|
+
.. code-block:: bash
|
|
126
|
+
|
|
127
|
+
pip install .
|
|
128
|
+
pip install -e ".[dev]"
|
|
129
|
+
|
|
130
|
+
Check tests and coverage
|
|
131
|
+
-------------------------------------------------------------------------------
|
|
132
|
+
|
|
133
|
+
.. code-block:: bash
|
|
134
|
+
|
|
135
|
+
python manager.py run-tests
|
|
136
|
+
python manager.py run-coverage
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
Contributing
|
|
140
|
+
===============================================================================
|
|
141
|
+
|
|
142
|
+
Contributions are welcome! Please:
|
|
143
|
+
|
|
144
|
+
1. Fork the repository
|
|
145
|
+
2. Create a feature branch
|
|
146
|
+
3. Write tests for new functionality
|
|
147
|
+
4. Ensure all tests pass: ``python manager.py run-tests``
|
|
148
|
+
5. Run linting: ``pylint data_structures``
|
|
149
|
+
6. Run security checks: ``bandit -r data_structures``
|
|
150
|
+
7. Submit a pull request
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
License
|
|
154
|
+
===============================================================================
|
|
155
|
+
|
|
156
|
+
This project is licensed under the MIT License. See the LICENSE file for details.
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
Links
|
|
160
|
+
===============================================================================
|
|
161
|
+
|
|
162
|
+
* **Documentation:** https://core-data-structures.readthedocs.io/en/latest/
|
|
163
|
+
* **Repository:** https://gitlab.com/bytecode-solutions/core/core-data-structures
|
|
164
|
+
* **Issues:** https://gitlab.com/bytecode-solutions/core/core-data-structures/-/issues
|
|
165
|
+
* **Changelog:** https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/master/CHANGELOG.md
|
|
166
|
+
* **PyPI:** https://pypi.org/project/core-data-structures/
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
Support
|
|
170
|
+
===============================================================================
|
|
171
|
+
|
|
172
|
+
For questions or support, please open an issue on GitLab or contact the maintainers.
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
Authors
|
|
176
|
+
===============================================================================
|
|
177
|
+
|
|
178
|
+
* **Alejandro Cora González** - *Initial work* - alek.cora.glez@gmail.com
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
core-data-structures
|
|
2
|
+
===============================================================================
|
|
3
|
+
|
|
4
|
+
A Python library providing common data structures including graphs and trees,
|
|
5
|
+
with built-in traversal and path-finding algorithms.
|
|
6
|
+
|
|
7
|
+
===============================================================================
|
|
8
|
+
|
|
9
|
+
.. image:: https://static.pepy.tech/personalized-badge/core-data-structures?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads
|
|
10
|
+
:target: https://pepy.tech/projects/core-data-structures
|
|
11
|
+
:alt: PyPI Downloads
|
|
12
|
+
|
|
13
|
+
.. image:: https://img.shields.io/pypi/pyversions/core-data-structures.svg
|
|
14
|
+
:target: https://pypi.org/project/core-data-structures/
|
|
15
|
+
:alt: Python Versions
|
|
16
|
+
|
|
17
|
+
.. image:: https://img.shields.io/badge/license-MIT-blue.svg
|
|
18
|
+
:target: https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/main/LICENSE
|
|
19
|
+
:alt: License
|
|
20
|
+
|
|
21
|
+
.. image:: https://gitlab.com/bytecode-solutions/core/core-data-structures/badges/release/pipeline.svg
|
|
22
|
+
:target: https://gitlab.com/bytecode-solutions/core/core-data-structures/-/pipelines
|
|
23
|
+
:alt: Pipeline Status
|
|
24
|
+
|
|
25
|
+
.. image:: https://readthedocs.org/projects/core-data-structures/badge/?version=latest
|
|
26
|
+
:target: https://readthedocs.org/projects/core-data-structures/
|
|
27
|
+
:alt: Docs Status
|
|
28
|
+
|
|
29
|
+
.. image:: https://img.shields.io/badge/security-bandit-yellow.svg
|
|
30
|
+
:target: https://github.com/PyCQA/bandit
|
|
31
|
+
:alt: Security
|
|
32
|
+
|
|
33
|
+
|
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
Features
|
|
37
|
+
===============================================================================
|
|
38
|
+
|
|
39
|
+
- **Graphs** — undirected weighted graph with adjacency dictionary representation.
|
|
40
|
+
|
|
41
|
+
- Breadth-first search (BFS)
|
|
42
|
+
- Depth-first search (DFS)
|
|
43
|
+
- Path finding (single path, all paths, shortest path)
|
|
44
|
+
|
|
45
|
+
- **Trees** — binary tree and simple nested-dictionary tree.
|
|
46
|
+
|
|
47
|
+
- Pre-order, in-order, post-order, and level-order traversal
|
|
48
|
+
- Recursive and iterative variants
|
|
49
|
+
- Tree depth calculation
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
Quick Start
|
|
53
|
+
===============================================================================
|
|
54
|
+
|
|
55
|
+
Installation
|
|
56
|
+
-------------------------------------------------------------------------------
|
|
57
|
+
|
|
58
|
+
Install from PyPI using pip:
|
|
59
|
+
|
|
60
|
+
.. code-block:: bash
|
|
61
|
+
|
|
62
|
+
pip install core-data-structures
|
|
63
|
+
uv pip install core-data-structures # Or using UV...
|
|
64
|
+
pip install -e ".[dev]" # For development...
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
Setting Up Environment
|
|
68
|
+
-------------------------------------------------------------------------------
|
|
69
|
+
|
|
70
|
+
1. Install required libraries:
|
|
71
|
+
|
|
72
|
+
.. code-block:: bash
|
|
73
|
+
|
|
74
|
+
pip install --upgrade pip
|
|
75
|
+
pip install virtualenv
|
|
76
|
+
|
|
77
|
+
2. Create Python virtual environment:
|
|
78
|
+
|
|
79
|
+
.. code-block:: bash
|
|
80
|
+
|
|
81
|
+
virtualenv --python=python3.12 .venv
|
|
82
|
+
|
|
83
|
+
3. Activate the virtual environment:
|
|
84
|
+
|
|
85
|
+
.. code-block:: bash
|
|
86
|
+
|
|
87
|
+
source .venv/bin/activate
|
|
88
|
+
|
|
89
|
+
4. Install packages:
|
|
90
|
+
|
|
91
|
+
.. code-block:: bash
|
|
92
|
+
|
|
93
|
+
pip install .
|
|
94
|
+
pip install -e ".[dev]"
|
|
95
|
+
|
|
96
|
+
Check tests and coverage
|
|
97
|
+
-------------------------------------------------------------------------------
|
|
98
|
+
|
|
99
|
+
.. code-block:: bash
|
|
100
|
+
|
|
101
|
+
python manager.py run-tests
|
|
102
|
+
python manager.py run-coverage
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
Contributing
|
|
106
|
+
===============================================================================
|
|
107
|
+
|
|
108
|
+
Contributions are welcome! Please:
|
|
109
|
+
|
|
110
|
+
1. Fork the repository
|
|
111
|
+
2. Create a feature branch
|
|
112
|
+
3. Write tests for new functionality
|
|
113
|
+
4. Ensure all tests pass: ``python manager.py run-tests``
|
|
114
|
+
5. Run linting: ``pylint data_structures``
|
|
115
|
+
6. Run security checks: ``bandit -r data_structures``
|
|
116
|
+
7. Submit a pull request
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
License
|
|
120
|
+
===============================================================================
|
|
121
|
+
|
|
122
|
+
This project is licensed under the MIT License. See the LICENSE file for details.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
Links
|
|
126
|
+
===============================================================================
|
|
127
|
+
|
|
128
|
+
* **Documentation:** https://core-data-structures.readthedocs.io/en/latest/
|
|
129
|
+
* **Repository:** https://gitlab.com/bytecode-solutions/core/core-data-structures
|
|
130
|
+
* **Issues:** https://gitlab.com/bytecode-solutions/core/core-data-structures/-/issues
|
|
131
|
+
* **Changelog:** https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/master/CHANGELOG.md
|
|
132
|
+
* **PyPI:** https://pypi.org/project/core-data-structures/
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
Support
|
|
136
|
+
===============================================================================
|
|
137
|
+
|
|
138
|
+
For questions or support, please open an issue on GitLab or contact the maintainers.
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
Authors
|
|
142
|
+
===============================================================================
|
|
143
|
+
|
|
144
|
+
* **Alejandro Cora González** - *Initial work* - alek.cora.glez@gmail.com
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: core-data-structures
|
|
3
|
+
Version: 1.2.1
|
|
4
|
+
Summary: This project/library contains commons data structures...
|
|
5
|
+
Author-email: Alejandro Cora González <alek.cora.glez@gmail.com>
|
|
6
|
+
Maintainer: Alejandro Cora González
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://gitlab.com/bytecode-solutions/core/core-data-structures
|
|
9
|
+
Project-URL: Repository, https://gitlab.com/bytecode-solutions/core/core-data-structures
|
|
10
|
+
Project-URL: Documentation, https://core-data-structures.readthedocs.io/en/latest/
|
|
11
|
+
Project-URL: Issues, https://gitlab.com/bytecode-solutions/core/core-data-structures/-/issues
|
|
12
|
+
Project-URL: Changelog, https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/master/CHANGELOG.md
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
25
|
+
Requires-Python: >=3.9
|
|
26
|
+
Description-Content-Type: text/x-rst
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: core-mixins>=3.2.0
|
|
29
|
+
Requires-Dist: typing-extensions>=4.8.0
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: core-dev-tools>=2.1.0; extra == "dev"
|
|
32
|
+
Requires-Dist: core-tests>=2.1.0; extra == "dev"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
core-data-structures
|
|
36
|
+
===============================================================================
|
|
37
|
+
|
|
38
|
+
A Python library providing common data structures including graphs and trees,
|
|
39
|
+
with built-in traversal and path-finding algorithms.
|
|
40
|
+
|
|
41
|
+
===============================================================================
|
|
42
|
+
|
|
43
|
+
.. image:: https://static.pepy.tech/personalized-badge/core-data-structures?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads
|
|
44
|
+
:target: https://pepy.tech/projects/core-data-structures
|
|
45
|
+
:alt: PyPI Downloads
|
|
46
|
+
|
|
47
|
+
.. image:: https://img.shields.io/pypi/pyversions/core-data-structures.svg
|
|
48
|
+
:target: https://pypi.org/project/core-data-structures/
|
|
49
|
+
:alt: Python Versions
|
|
50
|
+
|
|
51
|
+
.. image:: https://img.shields.io/badge/license-MIT-blue.svg
|
|
52
|
+
:target: https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/main/LICENSE
|
|
53
|
+
:alt: License
|
|
54
|
+
|
|
55
|
+
.. image:: https://gitlab.com/bytecode-solutions/core/core-data-structures/badges/release/pipeline.svg
|
|
56
|
+
:target: https://gitlab.com/bytecode-solutions/core/core-data-structures/-/pipelines
|
|
57
|
+
:alt: Pipeline Status
|
|
58
|
+
|
|
59
|
+
.. image:: https://readthedocs.org/projects/core-data-structures/badge/?version=latest
|
|
60
|
+
:target: https://readthedocs.org/projects/core-data-structures/
|
|
61
|
+
:alt: Docs Status
|
|
62
|
+
|
|
63
|
+
.. image:: https://img.shields.io/badge/security-bandit-yellow.svg
|
|
64
|
+
:target: https://github.com/PyCQA/bandit
|
|
65
|
+
:alt: Security
|
|
66
|
+
|
|
67
|
+
|
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
Features
|
|
71
|
+
===============================================================================
|
|
72
|
+
|
|
73
|
+
- **Graphs** — undirected weighted graph with adjacency dictionary representation.
|
|
74
|
+
|
|
75
|
+
- Breadth-first search (BFS)
|
|
76
|
+
- Depth-first search (DFS)
|
|
77
|
+
- Path finding (single path, all paths, shortest path)
|
|
78
|
+
|
|
79
|
+
- **Trees** — binary tree and simple nested-dictionary tree.
|
|
80
|
+
|
|
81
|
+
- Pre-order, in-order, post-order, and level-order traversal
|
|
82
|
+
- Recursive and iterative variants
|
|
83
|
+
- Tree depth calculation
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
Quick Start
|
|
87
|
+
===============================================================================
|
|
88
|
+
|
|
89
|
+
Installation
|
|
90
|
+
-------------------------------------------------------------------------------
|
|
91
|
+
|
|
92
|
+
Install from PyPI using pip:
|
|
93
|
+
|
|
94
|
+
.. code-block:: bash
|
|
95
|
+
|
|
96
|
+
pip install core-data-structures
|
|
97
|
+
uv pip install core-data-structures # Or using UV...
|
|
98
|
+
pip install -e ".[dev]" # For development...
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
Setting Up Environment
|
|
102
|
+
-------------------------------------------------------------------------------
|
|
103
|
+
|
|
104
|
+
1. Install required libraries:
|
|
105
|
+
|
|
106
|
+
.. code-block:: bash
|
|
107
|
+
|
|
108
|
+
pip install --upgrade pip
|
|
109
|
+
pip install virtualenv
|
|
110
|
+
|
|
111
|
+
2. Create Python virtual environment:
|
|
112
|
+
|
|
113
|
+
.. code-block:: bash
|
|
114
|
+
|
|
115
|
+
virtualenv --python=python3.12 .venv
|
|
116
|
+
|
|
117
|
+
3. Activate the virtual environment:
|
|
118
|
+
|
|
119
|
+
.. code-block:: bash
|
|
120
|
+
|
|
121
|
+
source .venv/bin/activate
|
|
122
|
+
|
|
123
|
+
4. Install packages:
|
|
124
|
+
|
|
125
|
+
.. code-block:: bash
|
|
126
|
+
|
|
127
|
+
pip install .
|
|
128
|
+
pip install -e ".[dev]"
|
|
129
|
+
|
|
130
|
+
Check tests and coverage
|
|
131
|
+
-------------------------------------------------------------------------------
|
|
132
|
+
|
|
133
|
+
.. code-block:: bash
|
|
134
|
+
|
|
135
|
+
python manager.py run-tests
|
|
136
|
+
python manager.py run-coverage
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
Contributing
|
|
140
|
+
===============================================================================
|
|
141
|
+
|
|
142
|
+
Contributions are welcome! Please:
|
|
143
|
+
|
|
144
|
+
1. Fork the repository
|
|
145
|
+
2. Create a feature branch
|
|
146
|
+
3. Write tests for new functionality
|
|
147
|
+
4. Ensure all tests pass: ``python manager.py run-tests``
|
|
148
|
+
5. Run linting: ``pylint data_structures``
|
|
149
|
+
6. Run security checks: ``bandit -r data_structures``
|
|
150
|
+
7. Submit a pull request
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
License
|
|
154
|
+
===============================================================================
|
|
155
|
+
|
|
156
|
+
This project is licensed under the MIT License. See the LICENSE file for details.
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
Links
|
|
160
|
+
===============================================================================
|
|
161
|
+
|
|
162
|
+
* **Documentation:** https://core-data-structures.readthedocs.io/en/latest/
|
|
163
|
+
* **Repository:** https://gitlab.com/bytecode-solutions/core/core-data-structures
|
|
164
|
+
* **Issues:** https://gitlab.com/bytecode-solutions/core/core-data-structures/-/issues
|
|
165
|
+
* **Changelog:** https://gitlab.com/bytecode-solutions/core/core-data-structures/-/blob/master/CHANGELOG.md
|
|
166
|
+
* **PyPI:** https://pypi.org/project/core-data-structures/
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
Support
|
|
170
|
+
===============================================================================
|
|
171
|
+
|
|
172
|
+
For questions or support, please open an issue on GitLab or contact the maintainers.
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
Authors
|
|
176
|
+
===============================================================================
|
|
177
|
+
|
|
178
|
+
* **Alejandro Cora González** - *Initial work* - alek.cora.glez@gmail.com
|
{core_data_structures-1.1.0 → core_data_structures-1.2.1}/core_data_structures.egg-info/SOURCES.txt
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
LICENSE
|
|
2
|
-
README.
|
|
2
|
+
README.rst
|
|
3
3
|
pyproject.toml
|
|
4
4
|
setup.py
|
|
5
5
|
core_data_structures.egg-info/PKG-INFO
|
|
@@ -8,9 +8,13 @@ core_data_structures.egg-info/dependency_links.txt
|
|
|
8
8
|
core_data_structures.egg-info/requires.txt
|
|
9
9
|
core_data_structures.egg-info/top_level.txt
|
|
10
10
|
data_structures/__init__.py
|
|
11
|
+
data_structures/base.py
|
|
12
|
+
data_structures/py.typed
|
|
11
13
|
data_structures/graphs/__init__.py
|
|
12
14
|
data_structures/graphs/graphs.py
|
|
13
15
|
data_structures/graphs/vertex.py
|
|
16
|
+
data_structures/lists/__init__.py
|
|
17
|
+
data_structures/lists/singly_linked_list.py
|
|
14
18
|
data_structures/trees/__init__.py
|
|
15
19
|
data_structures/trees/binary_tree.py
|
|
16
20
|
data_structures/trees/simple_tree.py
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
"""Core data structures package."""
|
|
4
|
+
|
|
5
|
+
from importlib.metadata import PackageNotFoundError
|
|
6
|
+
from importlib.metadata import version
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
__version__ = version("core-data-structures")
|
|
11
|
+
|
|
12
|
+
except PackageNotFoundError:
|
|
13
|
+
__version__ = "unknown"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"__version__",
|
|
18
|
+
]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
"""Base node used as a building block across data structures."""
|
|
4
|
+
|
|
5
|
+
from typing import Generic
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from typing import TypeVar
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"Node",
|
|
12
|
+
"T",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
T = TypeVar("T")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Node(Generic[T]): # pylint: disable=too-few-public-methods
|
|
19
|
+
"""
|
|
20
|
+
Generic container for a single value, meant to be
|
|
21
|
+
subclassed by concrete node types.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
def __init__(self, value: Optional[T] = None) -> None:
|
|
25
|
+
self._value = value
|
|
26
|
+
|
|
27
|
+
def __repr__(self):
|
|
28
|
+
return f"[{self._value}]"
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def value(self) -> Optional[T]:
|
|
32
|
+
""" The value held by the node. """
|
|
33
|
+
return self._value
|
|
34
|
+
|
|
35
|
+
@value.setter
|
|
36
|
+
def value(self, value: T) -> None:
|
|
37
|
+
self._value = value
|