Better project structure

This commit is contained in:
Anthony Sottile 2014-04-12 07:28:25 -07:00
parent f31f092f9b
commit 1746a97e24
52 changed files with 221 additions and 189 deletions

View file

@ -1,4 +1,3 @@
import yaml
from pre_commit.ordereddict import OrderedDict
@ -6,23 +5,27 @@ from pre_commit.ordereddict import OrderedDict
# Adapted from http://stackoverflow.com/a/21912744/812183
def ordered_load(s):
class OrderedLoader(yaml.loader.Loader): pass
def ordered_load(stream):
class OrderedLoader(yaml.loader.Loader):
pass
def constructor(loader, node):
return OrderedDict(loader.construct_pairs(node))
OrderedLoader.add_constructor(
yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
constructor,
)
return yaml.load(s, Loader=OrderedLoader)
return yaml.load(stream, Loader=OrderedLoader)
def ordered_dump(s, **kwargs):
class OrderedDumper(yaml.dumper.SafeDumper): pass
def ordered_dump(obj, **kwargs):
class OrderedDumper(yaml.dumper.SafeDumper):
pass
def dict_representer(dumper, data):
return dumper.represent_mapping(
yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
data.items(),
)
OrderedDumper.add_representer(OrderedDict, dict_representer)
return yaml.dump(s, Dumper=OrderedDumper, **kwargs)
return yaml.dump(obj, Dumper=OrderedDumper, **kwargs)