X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fresources%2Floader.py;h=69eff2fed3fafa891fb9e8c32dbbfd090d24f360;hb=0d7c75c57d85f809aad2db5c740341e2c3db011c;hp=28a3c7a3fdf0f39cb85918d3f97f0dbb964b69e0;hpb=ea0fea7855b70665b1b155f1d20495e88096b73a;p=naja.git diff --git a/naja/resources/loader.py b/naja/resources/loader.py index 28a3c7a..69eff2f 100644 --- a/naja/resources/loader.py +++ b/naja/resources/loader.py @@ -1,5 +1,6 @@ import os import sys +import json try: from pkg_resources import resource_filename @@ -11,6 +12,12 @@ except ImportError: # time going down this rabbithole already return os.path.join(os.path.dirname(__file__), '..', '..', 'data', path) + +try: + import yaml +except ImportError: + yaml = None + import pygame @@ -99,3 +106,15 @@ class Loader(object): self._cache[key] = pygame.font.Font(fn, font_size) return self._cache[key] + + def get_yaml(self, *path_fragments): + if yaml is None: + raise ResourceNotFound("%s - %s" % ( + os.path.join(*path_fragments), + "YAML module not available")) + with self.get_file(*path_fragments) as yaml_file: + return yaml.safe_load(yaml_file) + + def get_json(self, *path_fragments): + with self.get_file(*path_fragments) as json_file: + return json.load(json_file)