Skip to content

OrderedDict turns to normal dict when document is loaded from database #76

@M4rtinK

Description

@M4rtinK

Looks like Document instance attributes that hold ordered dicts turn to normal dicts when the document is reatrieved from the database, short reproducer:

#!/usr/bin/python3

from collections import OrderedDict
import tempfile
import blitzdb

with tempfile.TemporaryDirectory() as temp_dir_name:
    db = blitzdb.FileBackend(temp_dir_name)
    original_document = blitzdb.Document()
    original_document.od = OrderedDict()
    original_document.od["foo"] = 1
    original_document.od["bar"] = 2
    original_document.od["baz"] = 3

    print("original document")
    print(original_document.od)
    print(isinstance(original_document.od, OrderedDict))

    original_document.save(db)
    db.commit()

    loaded_document = db.get(blitzdb.Document, {})

    print("loaded document")
    print(loaded_document.od)
    print(isinstance(loaded_document.od, OrderedDict))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions