asset_index.py 982 B

123456789101112131415161718192021222324252627282930313233343536
  1. from PyPPUB import asset
  2. class AssetIndex:
  3. def __init__(self):
  4. self.__assets = {}
  5. self.__assets_ordered = []
  6. def has_asset(self, path):
  7. return path in self.__assets
  8. def get_asset(self, path):
  9. return self.__assets[path]
  10. def add_asset(self, asset):
  11. self.__assets_ordered.append(asset)
  12. self.__assets[asset.path] = asset
  13. def get_nth_asset(self, n):
  14. return self.__assets_ordered[n]
  15. def asset_count(self):
  16. return len(self.__assets_ordered)
  17. @staticmethod
  18. def from_string(string):
  19. lines = string.split("\n")[:-1]
  20. assets_ordered = [asset.Asset.from_string(x) for x in lines]
  21. assets = {x.path: x for x in assets_ordered}
  22. index = AssetIndex()
  23. index.__assets_ordered = assets_ordered
  24. index.__assets = assets
  25. return index
  26. def __str__(self) -> str:
  27. return str.join("\n", (str(x) for x in self.__assets_ordered)) + "\n"