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