mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
yaml extensions and ordereddict are now imported from asottile.
This commit is contained in:
parent
c0a0a21680
commit
e58d28aad3
8 changed files with 18 additions and 99 deletions
|
|
@ -4,16 +4,16 @@ import os
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
import shutil
|
import shutil
|
||||||
import stat
|
import stat
|
||||||
|
from asottile.ordereddict import OrderedDict
|
||||||
|
from asottile.yaml import ordered_dump
|
||||||
|
from asottile.yaml import ordered_load
|
||||||
from plumbum import local
|
from plumbum import local
|
||||||
|
|
||||||
import pre_commit.constants as C
|
import pre_commit.constants as C
|
||||||
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
|
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
|
||||||
from pre_commit.clientlib.validate_config import load_config
|
from pre_commit.clientlib.validate_config import load_config
|
||||||
from pre_commit.jsonschema_extensions import remove_defaults
|
from pre_commit.jsonschema_extensions import remove_defaults
|
||||||
from pre_commit.ordereddict import OrderedDict
|
|
||||||
from pre_commit.repository import Repository
|
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):
|
def install(runner):
|
||||||
|
|
|
||||||
|
|
@ -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__,)
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import contextlib
|
import contextlib
|
||||||
import logging
|
import logging
|
||||||
|
from asottile.ordereddict import OrderedDict
|
||||||
from plumbum import local
|
from plumbum import local
|
||||||
|
|
||||||
import pre_commit.constants as C
|
import pre_commit.constants as C
|
||||||
from pre_commit.clientlib.validate_manifest import load_manifest
|
from pre_commit.clientlib.validate_manifest import load_manifest
|
||||||
from pre_commit.hooks_workspace import in_hooks_workspace
|
from pre_commit.hooks_workspace import in_hooks_workspace
|
||||||
from pre_commit.languages.all import languages
|
from pre_commit.languages.all import languages
|
||||||
from pre_commit.ordereddict import OrderedDict
|
|
||||||
from pre_commit.prefixed_command_runner import PrefixedCommandRunner
|
from pre_commit.prefixed_command_runner import PrefixedCommandRunner
|
||||||
from pre_commit.util import cached_property
|
from pre_commit.util import cached_property
|
||||||
from pre_commit.util import clean_path_on_failure
|
from pre_commit.util import clean_path_on_failure
|
||||||
|
|
|
||||||
|
|
@ -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)
|
|
||||||
24
setup.py
24
setup.py
|
|
@ -1,21 +1,7 @@
|
||||||
import sys
|
|
||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
|
|
||||||
install_requires = [
|
|
||||||
'argparse',
|
|
||||||
'jsonschema',
|
|
||||||
'plumbum',
|
|
||||||
'pyyaml',
|
|
||||||
'simplejson',
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
if sys.version_info < (2, 7):
|
|
||||||
install_requires.append('ordereddict')
|
|
||||||
|
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='pre_commit',
|
name='pre_commit',
|
||||||
description='A framework for managing and maintaining multi-language pre-commit hooks.',
|
description='A framework for managing and maintaining multi-language pre-commit hooks.',
|
||||||
|
|
@ -38,7 +24,15 @@ setup(
|
||||||
'resources/pre-commit.sh'
|
'resources/pre-commit.sh'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
install_requires=install_requires,
|
install_requires=[
|
||||||
|
'argparse',
|
||||||
|
'asottile.ordereddict',
|
||||||
|
'asottile.yaml',
|
||||||
|
'jsonschema',
|
||||||
|
'plumbum',
|
||||||
|
'pyyaml',
|
||||||
|
'simplejson',
|
||||||
|
],
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': [
|
'console_scripts': [
|
||||||
'pre-commit = pre_commit.run:run',
|
'pre-commit = pre_commit.run:run',
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import pytest
|
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.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
|
from testing.util import get_resource_path
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,11 @@ import pkg_resources
|
||||||
import pytest
|
import pytest
|
||||||
import shutil
|
import shutil
|
||||||
import stat
|
import stat
|
||||||
|
from asottile.ordereddict import OrderedDict
|
||||||
|
from asottile.yaml import ordered_dump
|
||||||
from plumbum import local
|
from plumbum import local
|
||||||
|
|
||||||
|
|
||||||
import pre_commit.constants as C
|
import pre_commit.constants as C
|
||||||
from pre_commit import git
|
from pre_commit import git
|
||||||
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
|
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 uninstall
|
||||||
from pre_commit.commands import _update_repository
|
from pre_commit.commands import _update_repository
|
||||||
from pre_commit.jsonschema_extensions import apply_defaults
|
from pre_commit.jsonschema_extensions import apply_defaults
|
||||||
from pre_commit.ordereddict import OrderedDict
|
|
||||||
from pre_commit.runner import Runner
|
from pre_commit.runner import Runner
|
||||||
from pre_commit.yaml_extensions import ordered_dump
|
|
||||||
from testing.auto_namedtuple import auto_namedtuple
|
from testing.auto_namedtuple import auto_namedtuple
|
||||||
from testing.util import get_resource_path
|
from testing.util import get_resource_path
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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'
|
|
||||||
)
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue