diff options
Diffstat (limited to 'core/utils.py')
-rw-r--r-- | core/utils.py | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/core/utils.py b/core/utils.py new file mode 100644 index 0000000..4dcee68 --- /dev/null +++ b/core/utils.py @@ -0,0 +1,84 @@ +import string +import os +import datetime +import logging +import re +import resource +from subprocess import call + +from urllib.parse import urljoin +from decimal import Decimal, getcontext +getcontext().prec=2 #use 2 significant figures for decimal calculations + +import settings + +from django.db import models +from django.contrib import admin +from django.contrib.auth.models import User +from django.contrib.contenttypes.models import ContentType +from django.conf import settings + +from django.urls import reverse +from django.template import Context, loader + +#import troggle.core.models_survex + +'''This file declares TROG a globally visible object for caches. + +TROG is a dictionary holding gloablly visible indexes and cache functions. +It is a Global Object, see https://python-patterns.guide/python/module-globals/ +troggle.models.TROG + +chaosmonkey(n) - used by survex import to regenerate some .3d files +save_carefully() - core function that saves troggle objects in the database + +''' + +TROG = { + 'pagecache' : { + 'expedition' : {} + } +} + +# This is module-level executable. This is a Bad Thing. +try: + logging.basicConfig(level=logging.DEBUG, + filename=settings.LOGFILE, + filemode='w') +except: +# Opening of file for writing is going to fail currently, so decide it doesn't matter for now + pass + +def get_process_memory(): + usage=resource.getrusage(resource.RUSAGE_SELF) + return usage[2]/1024.0 + +def chaosmonkey(n): + # returns True once every n calls - randomly + if random.randrange(0,n) != 0: + return False + # print("CHAOS strikes !", file=sys.stderr) + return True + +# def get_related_by_wikilinks(wiki_text): + # found=re.findall(settings.QM_PATTERN,wiki_text) + # res=[] + # for wikilink in found: + # qmdict={'urlroot':settings.URL_ROOT,'cave':wikilink[2],'year':wikilink[1],'number':wikilink[3]} + # try: + # cave_slugs = models_caves.CaveSlug.objects.filter(cave__kataster_number = qmdict['cave']) + # qm=QM.objects.get(found_by__cave_slug__in = cave_slugs, + # found_by__date__year = qmdict['year'], + # number = qmdict['number']) + # res.append(qm) + # except QM.DoesNotExist: + # print(('fail on '+str(wikilink))) + + # return res + + + + + + + |