forked from pre-commit/pre-commit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmanifest.py
More file actions
33 lines (24 loc) · 898 Bytes
/
manifest.py
File metadata and controls
33 lines (24 loc) · 898 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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, repo_url):
self.repo_path = repo_path
self.repo_url = repo_url
@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