# flake8: noqa

from replit import db


def demo():
    print("Testing json decoding: Setting 'myint' to '5'")
    db["myint"] = "5"
    myint = db.jsonkey("myint", int)
    print("myint + 1 is:", myint.get() + 1)
    del db["myint"]

    # error processing demo
    print("Testing error handling menu:")
    db["test"] = "{"
    print("An error is supposed to happen right now:")
    test = db.jsonkey("test", list)
    print("user set test to:", test.get())
    print("Testing set() method:")
    print("Setting test to range(3)...")
    test.set(list(range(3)))
    print(f"Test is now: {test.get()}")

    # custom default and error supression
    print("Testing automatic error supression: Setting 'test' to 'hello'")
    db["test"] = "hello"

    def get_default():
        print("get_default called, returning 42")
        return 42

    test = db.jsonkey("test", int, get_default=get_default, discard_bad_data=True)
    print("Test is: ", test.get())
    del db["test"]


if __name__ == "__main__":
    demo()

# flake8: noqa

from replit import db


def demo():
    print("Testing json decoding: Setting 'myint' to '5'")
    db["myint"] = "5"
    myint = db.jsonkey("myint", int)
    print("myint + 1 is:", myint.get() + 1)
    del db["myint"]

    # error processing demo
    print("Testing error handling menu:")
    db["test"] = "{"
    print("An error is supposed to happen right now:")
    test = db.jsonkey("test", list)
    print("user set test to:", test.get())
    print("Testing set() method:")
    print("Setting test to range(3)...")
    test.set(list(range(3)))
    print(f"Test is now: {test.get()}")

    # custom default and error supression
    print("Testing automatic error supression: Setting 'test' to 'hello'")
    db["test"] = "hello"

    def get_default():
        print("get_default called, returning 42")
        return 42

    test = db.jsonkey("test", int, get_default=get_default, discard_bad_data=True)
    print("Test is: ", test.get())
    del db["test"]


if __name__ == "__main__":
    demo()

# flake8: noqa # error processing demo # custom default and error supression