btree1.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. try:
  2. import btree
  3. import uio
  4. import uerrno
  5. except ImportError:
  6. print("SKIP")
  7. raise SystemExit
  8. #f = open("_test.db", "w+b")
  9. f = uio.BytesIO()
  10. db = btree.open(f, pagesize=512)
  11. db[b"foo3"] = b"bar3"
  12. db[b"foo1"] = b"bar1"
  13. db[b"foo2"] = b"bar2"
  14. db[b"bar1"] = b"foo1"
  15. dbstr = str(db)
  16. print(dbstr[:7], dbstr[-1:])
  17. print(db[b"foo2"])
  18. try:
  19. print(db[b"foo"])
  20. except KeyError:
  21. print("KeyError")
  22. print(db.get(b"foo"))
  23. print(db.get(b"foo", b"dflt"))
  24. del db[b"foo2"]
  25. try:
  26. del db[b"foo"]
  27. except KeyError:
  28. print("KeyError")
  29. for k, v in db.items():
  30. print((k, v))
  31. print("---")
  32. for k, v in db.items(None, None):
  33. print((k, v))
  34. print("---")
  35. for k, v in db.items(b"f"):
  36. print((k, v))
  37. print("---")
  38. for k, v in db.items(b"f", b"foo3"):
  39. print((k, v))
  40. print("---")
  41. for k, v in db.items(None, b"foo3"):
  42. print((k, v))
  43. print("---")
  44. for k, v in db.items(b"f", b"foo3", btree.INCL):
  45. print((k, v))
  46. print("---")
  47. for k, v in db.items(None, None, btree.DESC):
  48. print((k, v))
  49. print(db.seq(1, b"foo1"))
  50. print(db.seq(1, b"qux"))
  51. try:
  52. db.seq(b"foo1")
  53. except OSError as e:
  54. print(e.args[0] == uerrno.EINVAL)
  55. print(list(db.keys()))
  56. print(list(db.values()))
  57. for k in db:
  58. print(k)
  59. db.put(b"baz1", b"qux1")
  60. print("foo1", "foo1" in db)
  61. print("foo2", "foo2" in db)
  62. print("baz1", "baz1" in db)
  63. try:
  64. print(db + db[b"foo1"])
  65. except TypeError:
  66. print("TypeError")
  67. db.flush()
  68. db.close()
  69. f.close()