Merge pull request #73 from pre-commit/use_asottile_packages

yaml extensions and ordereddict are now imported from asottile.
This commit is contained in:
Anthony Sottile
2014-04-12 16:15:50 -07:00
8 changed files with 18 additions and 99 deletions

View File

@@ -4,16 +4,16 @@ import os
import pkg_resources
import shutil
import stat
from asottile.ordereddict import OrderedDict
from asottile.yaml import ordered_dump
from asottile.yaml import ordered_load
from plumbum import local
import pre_commit.constants as C
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
from pre_commit.clientlib.validate_config import load_config
from pre_commit.jsonschema_extensions import remove_defaults
from pre_commit.ordereddict import OrderedDict
from pre_commit.repository import Repository
from pre_commit.yaml_extensions import ordered_dump
from pre_commit.yaml_extensions import ordered_load
def install(runner):

View File

@@ -1,10 +0,0 @@
from __future__ import absolute_import
# This module serves only as a shim for OrderedDict
try:
from collections import OrderedDict
except ImportError:
from ordereddict import OrderedDict
__all__ = (OrderedDict.__name__,)

View File

@@ -1,12 +1,12 @@
import contextlib
import logging
from asottile.ordereddict import OrderedDict
from plumbum import local
import pre_commit.constants as C
from pre_commit.clientlib.validate_manifest import load_manifest
from pre_commit.hooks_workspace import in_hooks_workspace
from pre_commit.languages.all import languages
from pre_commit.ordereddict import OrderedDict
from pre_commit.prefixed_command_runner import PrefixedCommandRunner
from pre_commit.util import cached_property
from pre_commit.util import clean_path_on_failure

View File

@@ -1,31 +0,0 @@
import yaml
from pre_commit.ordereddict import OrderedDict
# Adapted from http://stackoverflow.com/a/21912744/812183
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(stream, Loader=OrderedLoader)
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(obj, Dumper=OrderedDumper, **kwargs)

View File

@@ -1,21 +1,7 @@
import sys
from setuptools import find_packages
from setuptools import setup
install_requires = [
'argparse',
'jsonschema',
'plumbum',
'pyyaml',
'simplejson',
]
if sys.version_info < (2, 7):
install_requires.append('ordereddict')
setup(
name='pre_commit',
description='A framework for managing and maintaining multi-language pre-commit hooks.',
@@ -38,7 +24,15 @@ setup(
'resources/pre-commit.sh'
]
},
install_requires=install_requires,
install_requires=[
'argparse',
'asottile.ordereddict',
'asottile.yaml',
'jsonschema',
'plumbum',
'pyyaml',
'simplejson',
],
entry_points={
'console_scripts': [
'pre-commit = pre_commit.run:run',

View File

@@ -1,8 +1,8 @@
import pytest
from asottile.ordereddict import OrderedDict
from asottile.yaml import ordered_load
from pre_commit.clientlib.validate_base import get_validator
from pre_commit.ordereddict import OrderedDict
from pre_commit.yaml_extensions import ordered_load
from testing.util import get_resource_path

View File

@@ -4,8 +4,11 @@ import pkg_resources
import pytest
import shutil
import stat
from asottile.ordereddict import OrderedDict
from asottile.yaml import ordered_dump
from plumbum import local
import pre_commit.constants as C
from pre_commit import git
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
@@ -17,9 +20,7 @@ from pre_commit.commands import RepositoryCannotBeUpdatedError
from pre_commit.commands import uninstall
from pre_commit.commands import _update_repository
from pre_commit.jsonschema_extensions import apply_defaults
from pre_commit.ordereddict import OrderedDict
from pre_commit.runner import Runner
from pre_commit.yaml_extensions import ordered_dump
from testing.auto_namedtuple import auto_namedtuple
from testing.util import get_resource_path

View File

@@ -1,35 +0,0 @@
import pre_commit.constants as C
from pre_commit.ordereddict import OrderedDict
from pre_commit.yaml_extensions import ordered_dump
from pre_commit.yaml_extensions import ordered_load
def test_ordered_load():
ret = ordered_load(
'a: herp\n'
'c: derp\n'
'd: darp\n'
'b: harp\n'
)
# Original behavior
assert ret == {'a': 'herp', 'b': 'harp', 'c': 'derp', 'd': 'darp'}
# Ordered behavior
assert (
ret.items() ==
[('a', 'herp'), ('c', 'derp'), ('d', 'darp'), ('b', 'harp')]
)
def test_ordered_dump():
ret = ordered_dump(
OrderedDict(
(('a', 'herp'), ('c', 'derp'), ('b', 'harp'), ('d', 'darp'))
),
**C.YAML_DUMP_KWARGS
)
assert ret == (
'a: herp\n'
'c: derp\n'
'b: harp\n'
'd: darp\n'
)