PK!^xdj_static_revision/__init__.py__version__ = '0.1.4' PK!J2(dj_static_revision/context_processors.py from .utils import get_source_revision REVISION = get_source_revision() def static_revision(request): return {'REVISION': REVISION} PK!oxdj_static_revision/utils.pyimport logging from pathlib import Path from dulwich.repo import Repo from django.conf import settings FILE_NAME_REVISION = getattr(settings, 'STATIC_REVISION_VERSION_FILE', '.version') REVISION_LENGTH = getattr(settings, 'STATIC_REVISION_STRING_LENGTH', 10) logger = logging.getLogger(__name__) def locate_django_manage(): ''' Locate project's manage.py file ''' folder = Path.cwd() # Look for manage.py in current folder or up for i in range(5): p = folder / 'manage.py' if p.exists(): return folder folder = folder.parent raise FileNotFoundError('Django manage.py file not found') def get_source_revision_from_git(folder): dot_git = folder / '.git' if not dot_git.is_dir(): raise OSError('Not a Git working copy') repo = Repo(folder) # We truncate the hash string to 7 characters, # that is also the way Git represents in short form. return repo.head()[:REVISION_LENGTH].decode() def get_source_revision_from_text_file(folder): path = folder / FILE_NAME_REVISION try: content = path.read_text().strip() except IOError: logger.error('Failed to read {}'.format(path)) return 'version-file-missing' return content[:REVISION_LENGTH] def get_source_revision(): folder = locate_django_manage() if (folder / FILE_NAME_REVISION).exists(): return get_source_revision_from_text_file(folder) return get_source_revision_from_git(folder) PK!Hu)GTU(dj_static_revision-0.1.4.dist-info/WHEEL HM K-*ϳR03rOK-J,/R(O-)$qzd&Y)r$UV&UrPK!H0R +dj_static_revision-0.1.4.dist-info/METADATAVr6Sh$S[@ȶS&MNؒWI^ }ȲIP]$wsQC;4OH hš8ZPC_h:9E,IZ7`.fϤ%s<1CW2a~JzaLꔛi3CWR?fTTw#WQLhm4\0{~*6WsVʥڙYHăy/|[ٿg q9Y/s2AC1iv h oSH"Zg+V\I0ap`ӗ [ck뾨ތzPuEchp> D$1 r} I ,M2L~oSAߎ"rO6 ,XHLk4y [Zf <:ő<W{}o#G{6OTn+K.mھxt,I#S Jmw3vr߀Fu&{E9y a7f "r}2,IcХg?(`\0}zg+= v jD]w':9w%~~A*g{c~=\AѦW5-PK!^xdj_static_revision/__init__.pyPK!J2(Rdj_static_revision/context_processors.pyPK!ox%dj_static_revision/utils.pyPK!Hu)GTU(5dj_static_revision-0.1.4.dist-info/WHEELPK!H0R +dj_static_revision-0.1.4.dist-info/METADATAPK!HD%&b8)j dj_static_revision-0.1.4.dist-info/RECORDPK