mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-13 20:40:08 -06:00
`try-repo` is useful for: - Trying out a remote hook repository without needing to configure it. - Testing a hook repository while developing it.
33 lines
855 B
Python
33 lines
855 B
Python
from __future__ import unicode_literals
|
|
|
|
import logging
|
|
import os.path
|
|
|
|
from cached_property import cached_property
|
|
|
|
import pre_commit.constants as C
|
|
from pre_commit.clientlib import load_manifest
|
|
from pre_commit.languages.all import languages
|
|
|
|
|
|
logger = logging.getLogger('pre_commit')
|
|
|
|
|
|
class Manifest(object):
|
|
def __init__(self, repo_path):
|
|
self.repo_path = repo_path
|
|
|
|
@cached_property
|
|
def manifest_contents(self):
|
|
return load_manifest(os.path.join(self.repo_path, C.MANIFEST_FILE))
|
|
|
|
@cached_property
|
|
def hooks(self):
|
|
ret = {}
|
|
for hook in self.manifest_contents:
|
|
if hook['language_version'] == 'default':
|
|
language = languages[hook['language']]
|
|
hook['language_version'] = language.get_default_version()
|
|
ret[hook['id']] = hook
|
|
return ret
|