towards supporting python 2 and 3

- use absolute_imports
- make use of six.moves
- use exec instead of execfile
- use list(dict) instead if dict.keys()
This commit is contained in:
j 2016-08-23 12:27:06 +02:00
commit 1468ddbecb
89 changed files with 400 additions and 265 deletions

View file

@ -1,5 +1,7 @@
# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
from __future__ import division, print_function, absolute_import
import copy
from datetime import datetime
@ -9,8 +11,6 @@ from django.db.models import Max
from django.conf import settings
from django.contrib.gis.geoip2 import GeoIP2
import ox
from oxdjango.fields import DictField
from ox.utils import json
@ -19,8 +19,9 @@ from itemlist.models import List, Position
import text
import edit
import managers
import tasks
from . import managers
from . import tasks
class SessionData(models.Model):
session_key = models.CharField(max_length=40, primary_key=True)
@ -170,7 +171,7 @@ class SessionData(models.Model):
j['notes'] = p.notes
j['numberoflists'] = self.numberoflists
if keys:
for key in j.keys():
for key in list(j):
if key not in keys:
del j[key]
return j
@ -323,7 +324,7 @@ def get_ui(user_ui, user=None):
ids += add(user.lists.exclude(status="featured"), 'personal')
ids += add(user.subscribed_lists.filter(status='public'), 'public')
ids += add(List.objects.filter(status='featured'), 'featured')
for i in ui['lists'].keys():
for i in list(ui['lists']):
if i not in ids:
del ui['lists'][i]
tids = ['']
@ -373,7 +374,7 @@ def user_json(user, keys=None):
'username': user.username,
}
if keys:
for key in j.keys():
for key in list(j):
if key not in keys:
del j[key]
return j

View file

@ -1,22 +1,24 @@
# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
from __future__ import division, print_function, absolute_import
import json
from datetime import timedelta
from itertools import izip_longest
from six.moves import zip_longest
from celery.task import task, periodic_task
import models
from app.models import Settings
from statistics import Statistics
from .statistics import Statistics
@periodic_task(run_every=timedelta(hours=1), queue='encoding')
def cronjob(**kwargs):
update_statistics()
def update_statistics():
from . import models
def chunker(iterable, chunksize, filler):
return izip_longest(*[iter(iterable)]*chunksize, fillvalue=filler)
return zip_longest(*[iter(iterable)]*chunksize, fillvalue=filler)
stats = Statistics()
ids = [i['session_key']
@ -30,12 +32,14 @@ def update_statistics():
@task(ignore_results=True, queue='default')
def parse_data(key):
from . import models
session_data = models.SessionData.objects.get(session_key=key)
session_data.parse_data()
session_data.save()
@task(ignore_results=True, queue='default')
def update_numberoflists(username):
from . import models
user = models.User.objects.get(username=username)
models.SessionData.objects.filter(
user=user

View file

@ -1,5 +1,7 @@
# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
from __future__ import division, print_function, absolute_import
import random
random.seed()
import re
@ -25,8 +27,8 @@ from item.models import Access, Item
from item import utils
from changelog.models import add_changelog
import models
from decorators import capability_required_json
from . import models
from .decorators import capability_required_json
def get_user_or_404(data):
@ -770,10 +772,10 @@ def setUI(request, data):
else:
ui = json.loads(request.session.get('ui', '{}'))
for key in data:
keys = map(lambda p: p.replace('\0', '\\.'), key.replace('\\.', '\0').split('.'))
keys = [p.replace('\0', '\\.') for p in key.replace('\\.', '\0').split('.')]
value = data[key]
p = ui
while len(keys)>1:
while len(keys) > 1:
key = keys.pop(0)
if isinstance(p, list):
p = p[getPositionById(p, key)]