Skip to content

Instantly share code, notes, and snippets.

@maethu
Last active February 5, 2019 19:19
Show Gist options
  • Save maethu/a24bd1787391a1078c2a to your computer and use it in GitHub Desktop.
Save maethu/a24bd1787391a1078c2a to your computer and use it in GitHub Desktop.
uncatalog_if_no_uid.py
def uncatalog_by_rid(_catalog, rid):
data = _catalog.data
paths = _catalog.paths
indexes = _catalog.indexes.keys()
for name in indexes:
x = _catalog.getIndex(name)
if hasattr(x, 'unindex_object'):
x.unindex_object(rid)
del data[rid]
del paths[rid]
_catalog._length.change(-1)
@jone
Copy link

jone commented Jan 31, 2019

def uncatalog_by_rid(catalog, rid):
    catalog = getattr(catalog, '_catalog', catalog)
    for index in catalog.indexes.values():
        if hasattr(index, 'unindex_object'):
            index.unindex_object(rid)
    catalog.paths.pop(rid, None)
    catalog.data.pop(rid, None)
    for key_path, value_rid in catalog.uids.items():
        if value_rid == rid:
            catalog.uids.pop(key_path)
    catalog._length.change(len(catalog.paths) - catalog._length.value)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment