NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

yamlext.py (1695B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\brennivin\yamlext.py
      2 import yaml as _yaml
      3 __all__ = ['dumps',
      4  'dumpfile',
      5  'dump',
      6  'loads',
      7  'loadfile',
      8  'load',
      9  'PyIO']
     10 
     11 class PyIO(object):
     12 
     13     def __init__(self):
     14         self._loader = _yaml.Loader
     15         self._dumper = _yaml.Dumper
     16 
     17     def dumps(self, obj, **kwargs):
     18         return self.dump(obj, None, **kwargs)
     19 
     20     def dumpfile(self, obj, path, **kwargs):
     21         with open(path, 'w') as f:
     22             self.dump(obj, f, **kwargs)
     23 
     24     def dump(self, obj, stream, **kwargs):
     25         return _yaml.dump(obj, stream, Dumper=self._dumper, **kwargs)
     26 
     27     def loads(self, s):
     28         return self.load(s)
     29 
     30     def loadfile(self, path):
     31         with open(path) as f:
     32             return self.load(f)
     33 
     34     def load(self, stream):
     35         return _yaml.load(stream, Loader=self._loader)
     36 
     37 
     38 class CIO(PyIO):
     39 
     40     @classmethod
     41     def is_supported(cls):
     42         return hasattr(_yaml, 'CLoader')
     43 
     44     def __init__(self):
     45         PyIO.__init__(self)
     46         self._loader = self._dumper = None
     47         if self.is_supported():
     48             self._loader = _yaml.CLoader
     49             self._dumper = _yaml.CDumper
     50 
     51 
     52 def _preferred():
     53     if CIO.is_supported():
     54         return CIO()
     55     return PyIO()
     56 
     57 
     58 def dumps(obj, **kwargs):
     59     return _preferred().dumps(obj, **kwargs)
     60 
     61 
     62 def dumpfile(obj, path, **kwargs):
     63     return _preferred().dumpfile(obj, path, **kwargs)
     64 
     65 
     66 def dump(obj, stream, **kwargs):
     67     return _preferred().dump(obj, stream, **kwargs)
     68 
     69 
     70 def loads(s):
     71     return _preferred().loads(s)
     72 
     73 
     74 def loadfile(path):
     75     return _preferred().loadfile(path)
     76 
     77 
     78 def load(stream):
     79     return _preferred().load(stream)