Metadata-Version: 2.4
Name: mercurytools
Version: 2.2.0
Summary: a lightweight and consistent data structures library
Author-email: Walter Michel Raja <waltermichelraja@gmail.com>
Maintainer-email: Walter Michel Raja <waltermichelraja@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/waltermichelraja/mercurytools
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# mercurytools

a lightweight and consistent set of data structures designed for clarity, predictability, and ease of use in everyday development. Built to provide a clean, pythonic interface over fundamental data structures, with an emphasis on readability and extensibility rather than abstraction-heavy implementations.

## installation

```bash
# install from PyPI
pip install mercurytools

# development
git clone https://github.com/waltermichelraja/mercurytools.git
pip install -e .
pytest
```

## overview
| structure          | operations                                                                       |
| :----------------- | :------------------------------------------------------------------------------- |
| LinkedList         | `append`, `prepend`, `insert`, `remove`, `pop`                                   |
| Stack              | `push`, `pop`, `peek`                                                            |
| Deque              | `append`, `appendleft`, `pop`, `popleft`                                         |
| PriorityQueue      | `push`, `pop`, `peek`, `to_list`                                                 |
| LRUCache           | `get`, `put`, `clear`, `keys`, `values`                                          |
| utilities [`linear`] | `extend`, `reverse`, `clear`, `copy`, `to_list`                                |
| BinaryTree         | `insert`                                                                         |
| BinarySearchTree   | `insert`, `remove`                                                               |
| AVLTree            | `insert`, `remove`                                                               |
| utilities [`tree`]   | `inorder`, `preorder`, `postorder`, `level_order`, `min`, `max`, `height`, `clear`         |
| special methods    | `__len__`, `__iter__`, `__reversed__`, `__getitem__`, `__contains__`, `__eq__`, `__repr__`   |

<br>

***LICENSE:** this project is licensed under the MIT License, checkout [license](https://github.com/waltermichelraja/mercurytools/blob/main/LICENSE) file for further details.*\
***BUG REPORTS:** if you encounter a bug or unexpected behavior, please open an issue in: [issues](https://github.com/waltermichelraja/mercurytools/issues)*
