Drop support for Django <1.8, Python <2.7

This commit is contained in:
Jerome Leclanche
2017-05-19 09:12:33 +03:00
parent df0041dff6
commit 298460c4cf
25 changed files with 180 additions and 550 deletions
+20 -27
View File
@@ -3,34 +3,32 @@
This module is a scratchpad for general development, testing & debugging
Well, even more so than pcmd.py. You best ignore p2cmd.py.
"""
from django.core.management.base import NoArgsCommand
from pprint import pprint
import time
import sys
import time
from pprint import pprint
from random import Random
from django.core.management.base import NoArgsCommand
from django.db import connection
from pexp.models import *
def reset_queries():
if django.VERSION < (1, 8):
connection.queries = []
else:
connection.queries_log.clear()
rnd = Random()
def show_queries():
print
print 'QUERIES:', len(connection.queries)
print()
print("QUERIES:", len(connection.queries))
pprint(connection.queries)
print
print()
connection.queries = []
def print_timing(func, message='', iterations=1):
def wrapper(*arg):
results = []
reset_queries()
for i in xrange(iterations):
connection.queries_log.clear()
for i in range(iterations):
t1 = time.time()
x = func(*arg)
t2 = time.time()
@@ -38,13 +36,12 @@ def print_timing(func, message='', iterations=1):
res_sum = 0
for r in results:
res_sum += r
median = res_sum / len(results)
print '%s%-19s: %.4f ms, %i queries (%i times)' % (
print("%s%-19s: %.4f ms, %i queries (%i times)" % (
message, func.func_name,
res_sum,
len(connection.queries),
iterations
)
))
sys.stdout.flush()
return wrapper
@@ -58,18 +55,18 @@ class Command(NoArgsCommand):
a = TestModelA.objects.create(field1='A1')
b = TestModelB.objects.create(field1='B1', field2='B2')
c = TestModelC.objects.create(field1='C1', field2='C2', field3='C3')
reset_queries()
print TestModelC.base_objects.all()
connection.queries_log.clear()
print(TestModelC.base_objects.all())
show_queries()
if False:
TestModelA.objects.all().delete()
for i in xrange(1000):
for i in range(1000):
a = TestModelA.objects.create(field1=str(i % 100))
b = TestModelB.objects.create(field1=str(i % 100), field2=str(i % 200))
c = TestModelC.objects.create(field1=str(i % 100), field2=str(i % 200), field3=str(i % 300))
if i % 100 == 0:
print i
print(i)
f = print_timing(poly_sql_query, iterations=1000)
f()
@@ -85,11 +82,7 @@ class Command(NoArgsCommand):
c = NormalModelC.objects.create(field1='C1', field2='C2', field3='C3')
qs = TestModelA.objects.raw("SELECT * from pexp_testmodela")
for o in list(qs):
print o
from django.db import connection, transaction
from random import Random
rnd = Random()
print(o)
def poly_sql_query():
@@ -103,7 +96,7 @@ def poly_sql_query():
ON pexp_testmodelb.testmodela_ptr_id = pexp_testmodelc.testmodelb_ptr_id
WHERE pexp_testmodela.field1=%i
ORDER BY pexp_testmodela.id
""" % rnd.randint(0, 100) )
""" % rnd.randint(0, 100))
# row=cursor.fetchone()
return
@@ -115,6 +108,6 @@ def poly_sql_query2():
FROM pexp_testmodela
WHERE pexp_testmodela.field1=%i
ORDER BY pexp_testmodela.id
""" % rnd.randint(0, 100) )
""" % rnd.randint(0, 100))
# row=cursor.fetchone()
return
+12 -17
View File
@@ -3,30 +3,25 @@
This module is a scratchpad for general development, testing & debugging
"""
import time
import sys
from django.core.management.base import NoArgsCommand
from django.db import connection
from pprint import pprint
import sys
from pexp.models import *
num_objects = 1000
def reset_queries():
if django.VERSION < (1, 8):
connection.queries = []
else:
connection.queries_log.clear()
def show_queries():
print
print 'QUERIES:', len(connection.queries)
print()
print("QUERIES:", len(connection.queries))
pprint(connection.queries)
print
reset_queries()
print()
connection.queries_log.clear()
import time
###################################################################################
# benchmark wrappers
@@ -35,8 +30,8 @@ import time
def print_timing(func, message='', iterations=1):
def wrapper(*arg):
results = []
reset_queries()
for i in xrange(iterations):
connection.queries_log.clear()
for i in range(iterations):
t1 = time.time()
x = func(*arg)
t2 = time.time()
@@ -45,11 +40,11 @@ def print_timing(func, message='', iterations=1):
for r in results:
res_sum += r
median = res_sum / len(results)
print '%s%-19s: %.0f ms, %i queries' % (
print("%s%-19s: %.0f ms, %i queries" % (
message, func.func_name,
median,
len(connection.queries) / len(results)
)
))
sys.stdout.flush()
return wrapper
+1 -8
View File
@@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
import django
from django.db import models
from polymorphic.models import PolymorphicModel
@@ -20,15 +19,9 @@ class ResearchProject(Project):
supervisor = models.CharField(max_length=30)
if django.VERSION < (1, 8):
from polymorphic.tools_for_tests import UUIDField
else:
from django.db.models import UUIDField
class UUIDModelA(ShowFieldTypeAndContent, PolymorphicModel):
"""UUID as primary key example"""
uuid_primary_key = UUIDField(primary_key=True)
uuid_primary_key = models.UUIDField(primary_key=True)
field1 = models.CharField(max_length=10)