Advertisement
Guest User

loaders

a guest
Jan 22nd, 2016
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.57 KB | None | 0 0
  1. class Loader:
  2.     def __init__(self, file_name):
  3.         self.file_name = file_name
  4.  
  5.  
  6. class JsonLoader(Loader):
  7.     def __init__(self, file_name):
  8.         super().__init__(file_name)
  9.  
  10.     def load(self):
  11.         with open(self.file_name) as f:
  12.             input_data = json.load(f)
  13.             return input_data
  14.  
  15.  
  16. class YamlLoader(Loader):
  17.     def __init__(self, file_name):
  18.         super().__init__(file_name)
  19.  
  20.     def load(self):
  21.         with open(self.file_name) as f:
  22.             load_input = yaml.load(f)
  23.             return load_input
  24.  
  25.  
  26. LOADERS = {
  27.     ".json": JsonLoader,
  28.     ".yaml": YamlLoader
  29. }
  30.  
  31. def main():
  32.     if len(sys.argv) < 2:
  33.         print("Usage: {} input-file.json".format(sys.argv[0]))
  34.         return 1
  35.  
  36.     try:
  37.         input_filename = sys.argv[1]
  38.         file_ext = os.path.splitext(input_filename)[1]
  39.         if file_ext in LOADERS:
  40.             loader = LOADERS[file_ext]
  41.             loader_instance = loader(input_filename)
  42.             result = loader_instance.load
  43.  
  44.         sys.exit(result) // exit-вам тука, че съм в друг скрипт и има още булшит надолу. Аутпута е result-а
  45.  
  46.  
  47.         input_data = load_input_data(sys.argv[1])
  48.         draw_figures(input_data)
  49.     except Exception as e:
  50.         print("Invalid input file provided! Error: " + str(e))
  51.         return 2
  52.  
  53. if __name__ == "__main__":
  54.     sys.exit(main())
  55.  
  56. ####################
  57. # python main.py input.json
  58. # <bound method JsonLoader.load of <__main__.JsonLoader object at 0x00000026A3218C50>>
  59. ####################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement