Drop support for Django <1.8, Python <2.7
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user