2017-04-27 23:09:52 +02:00

35 lines
818 B
Python

"""Util addons functions."""
import hashlib
import pathlib
import re
import unicodedata
RE_SLUGIFY = re.compile(r'[^a-z0-9_]+')
def slugify(text):
"""Slugify a given text."""
text = unicodedata.normalize('NFKD', text)
text = text.lower()
text = text.replace(" ", "_")
text = RE_SLUGIFY.sub("", text)
return text
def get_hash_from_repository(repo):
"""Generate a hash from repository."""
key = repo.lower().encode()
return hashlib.sha1(key).hexdigest()
def extract_hash_from_path(base_path, options_path):
"""Extract repo id from path."""
base_dir = pathlib.PurePosixPath(base_path).parts[-1]
dirlist = iter(pathlib.PurePosixPath(options_path).parts)
for obj in dirlist:
if obj != base_dir:
continue
return slugify(next(dirlist))