Python package of data structures which support the use and implementation of algorithms.
-
Repositories
- grscheller.datastructures project on PyPI
- Source code on GitHub
-
Detailed documentation
- Detailed API documentation on GH-Pages
Data structures allowing developers to focus on the algorithms they are using instead of all the "bit fiddling" required to implement behaviors, perform memory management, and handle coding edge cases. These data structures allow iterators to leisurely iterate over inaccessible copies of internal state while the data structures themselves are free to safely mutate. They are designed to be reasonably "atomic" without introducing inordinate complexity. Some of these data structures allow data to be safely shared between multiple data structure instances by making shared data immutable and inaccessible to client code.
- functional & imperative programming styles supported
- functional programming encouraged
- project endeavors to remain Pythonic
- methods which mutate objects don't return anything
- like Python lists
- in caparisons identity is considered before equality
- like Python builtins
- methods which mutate objects don't return anything
Sometimes the real power of a data structure comes not from what it empowers you to do, but from what it prevents you from doing to yourself.