ldtk_cjson.py 956 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. try:
  2. import os
  3. except ImportError:
  4. exit(0)
  5. import sys
  6. is_pkpy = not hasattr(sys, 'getrefcount')
  7. if is_pkpy:
  8. try:
  9. import cjson as json
  10. except ImportError:
  11. print('[cJSON not Enabled]')
  12. exit(0)
  13. else:
  14. import json
  15. _2489KB = 'WorldMap_GridVania_layout.ldtk'
  16. _1093KB = 'WorldMap_Free_layout.ldtk'
  17. _339KB = 'Typical_2D_platformer_example.ldtk'
  18. with open(f'res/{_2489KB}', 'r') as f:
  19. json_content = f.read()
  20. data: dict = json.loads(json_content)
  21. assert isinstance(data, dict)
  22. # serialize and deserialize
  23. dumped: str = json.dumps(data)
  24. for _ in range(10):
  25. loaded: dict = json.loads(dumped)
  26. assert len(data) == len(loaded)
  27. assert data == loaded
  28. #### very very slow!!
  29. import pickle
  30. with open(f'res/{_339KB}', 'r') as f:
  31. json_content = f.read()
  32. data: dict = json.loads(json_content)
  33. data_pickled: bytes = pickle.dumps(data)
  34. assert isinstance(data_pickled, bytes)
  35. assert pickle.loads(data_pickled) == data