this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

woah I actually wrote some docs

+18 -11
+1 -1
README.md
··· 1 1 # atmst 2 2 3 - ![Static Badge](https://img.shields.io/badge/license-MIT-blue) ![Static Badge](https://img.shields.io/badge/works%20on%20my%20machine-forestgreen) ![Static Badge](https://img.shields.io/badge/test%20coverage-0%25-red) ![Static Badge](https://img.shields.io/badge/docs-maybe%20one%20day-red) ![Static Badge](https://img.shields.io/badge/cryptography-certified%20hand--rolled-yellow) 3 + ![Static Badge](https://img.shields.io/badge/license-MIT-blue) ![Static Badge](https://img.shields.io/badge/works%20on%20my%20machine-forestgreen) ![Static Badge](https://img.shields.io/badge/test%20coverage-0%25-red) ![Static Badge](https://img.shields.io/badge/docs-exist!-orange) ![Static Badge](https://img.shields.io/badge/cryptography-certified%20hand--rolled-yellow) 4 4 5 5 A Python library for wrangling atproto-flavoured Merkle Search Trees 6 6
+1
docs/conf.py
··· 15 15 # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration 16 16 17 17 extensions = ['sphinx.ext.autodoc', 'sphinx_rtd_theme'] 18 + autodoc_member_order = 'bysource' 18 19 19 20 templates_path = ['_templates'] 20 21 exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+6
docs/index.rst
··· 1 1 Welcome to atmst's documentation! 2 2 ================================= 3 3 4 + If you want to use atmst as a library, start by reading the :ref:`overview`. 5 + 6 + You may also be interested in :ref:`cartool`. 7 + 4 8 .. toctree:: 5 9 :maxdepth: 2 6 10 :caption: Contents: 7 11 12 + overview 13 + cartool 8 14 _apidocs/modules 9 15 10 16 Indices and tables
+10 -10
src/atmst/mst/node_wrangler.py
··· 6 6 from .node_store import NodeStore 7 7 8 8 # tuple helpers 9 - def tuple_replace_at(original: tuple, i: int, value: Any) -> tuple: 9 + def _tuple_replace_at(original: tuple, i: int, value: Any) -> tuple: 10 10 return original[:i] + (value,) + original[i + 1:] 11 11 12 - def tuple_insert_at(original: tuple, i: int, value: Any) -> tuple: 12 + def _tuple_insert_at(original: tuple, i: int, value: Any) -> tuple: 13 13 return original[:i] + (value,) + original[i:] 14 14 15 - def tuple_remove_at(original: tuple, i: int) -> tuple: 15 + def _tuple_remove_at(original: tuple, i: int) -> tuple: 16 16 return original[:i] + original[i + 1:] 17 17 18 18 ··· 58 58 return node # we can return our old self if there is no change 59 59 return self.ns.stored_node(MSTNode( 60 60 keys=node.keys, 61 - vals=tuple_replace_at(node.vals, i, val), 61 + vals=_tuple_replace_at(node.vals, i, val), 62 62 subtrees=node.subtrees 63 63 )) 64 64 65 65 return self.ns.stored_node(MSTNode( 66 - keys=tuple_insert_at(node.keys, i, key), 67 - vals=tuple_insert_at(node.vals, i, val), 66 + keys=_tuple_insert_at(node.keys, i, key), 67 + vals=_tuple_insert_at(node.vals, i, val), 68 68 subtrees = node.subtrees[:i] + \ 69 69 self._split_on_key(node.subtrees[i], key) + \ 70 70 node.subtrees[i + 1:], ··· 82 82 return self.ns.stored_node(MSTNode( 83 83 keys=node.keys, 84 84 vals=node.vals, 85 - subtrees=tuple_replace_at( 85 + subtrees=_tuple_replace_at( 86 86 node.subtrees, i, 87 87 self._put_recursive( 88 88 self.ns.get_node(node.subtrees[i]), ··· 133 133 return self.ns.stored_node(MSTNode( 134 134 keys=node.keys, 135 135 vals=node.vals, 136 - subtrees=tuple_replace_at( 136 + subtrees=_tuple_replace_at( 137 137 node.subtrees, 138 138 i, 139 139 self._delete_recursive(self.ns.get_node(node.subtrees[i]), key, key_height, tree_height - 1) ··· 147 147 assert(node.keys[i] == key) # sanity check (should always be true) 148 148 149 149 return self.ns.stored_node(MSTNode( 150 - keys=tuple_remove_at(node.keys, i), 151 - vals=tuple_remove_at(node.vals, i), 150 + keys=_tuple_remove_at(node.keys, i), 151 + vals=_tuple_remove_at(node.vals, i), 152 152 subtrees=node.subtrees[:i] + ( 153 153 self._merge(node.subtrees[i], node.subtrees[i + 1]), 154 154 ) + node.subtrees[i + 2:]