summaryrefslogtreecommitdiffstats
path: root/core/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/utils.py')
-rw-r--r--core/utils.py84
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
+
+
+
+
+
+
+