summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-12-07 17:33:13 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2013-12-07 17:33:13 -0500
commit5517c0eef9a1c4228d976584d7d65586b29b2ce9 (patch)
tree53f6ad35201827797b70c5a9134ca92cf4cca282 /examples
parent6d5eae78a7dd79ad7bd0a0951bc6c95437d0fa8e (diff)
downloadsqlalchemy-5517c0eef9a1c4228d976584d7d65586b29b2ce9.tar.gz
- remove verbiage about "namespaces" from the dogpile example, [ticket:2862]
- fix broken py2k/py3k isms
Diffstat (limited to 'examples')
-rw-r--r--examples/dogpile_caching/advanced.py6
-rw-r--r--examples/dogpile_caching/environment.py9
-rw-r--r--examples/dogpile_caching/helloworld.py12
3 files changed, 15 insertions, 12 deletions
diff --git a/examples/dogpile_caching/advanced.py b/examples/dogpile_caching/advanced.py
index 896e395bf..feccaa3ba 100644
--- a/examples/dogpile_caching/advanced.py
+++ b/examples/dogpile_caching/advanced.py
@@ -1,15 +1,13 @@
"""advanced.py
Illustrate usage of Query combined with the FromCache option,
-including front-end loading, cache invalidation, namespace techniques
-and collection caching.
+including front-end loading, cache invalidation and collection caching.
"""
from .environment import Session
-from .model import Person, Address, cache_address_bits
+from .model import Person, cache_address_bits
from .caching_query import FromCache, RelationshipCache
-from sqlalchemy.orm import joinedload
def load_name_range(start, end, invalidate=False):
"""Load Person objects on a range of names.
diff --git a/examples/dogpile_caching/environment.py b/examples/dogpile_caching/environment.py
index 36b9585b2..aeba65e19 100644
--- a/examples/dogpile_caching/environment.py
+++ b/examples/dogpile_caching/environment.py
@@ -10,7 +10,12 @@ from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from dogpile.cache.region import make_region
import os
-import md5
+from hashlib import md5
+import sys
+py2k = sys.version_info < (3, 0)
+
+if py2k:
+ input = raw_input
# dogpile cache regions. A home base for cache configurations.
regions = {}
@@ -47,7 +52,7 @@ def md5_key_mangler(key):
distill them into an md5 hash.
"""
- return md5.md5(key).hexdigest()
+ return md5(key.encode('ascii')).hexdigest()
# configure the "default" cache region.
regions['default'] = make_region(
diff --git a/examples/dogpile_caching/helloworld.py b/examples/dogpile_caching/helloworld.py
index 4561097b6..22d7f97be 100644
--- a/examples/dogpile_caching/helloworld.py
+++ b/examples/dogpile_caching/helloworld.py
@@ -8,27 +8,27 @@ from .environment import Session
from .model import Person
from .caching_query import FromCache
-# load Person objects. cache the result under the namespace "all_people".
+# load Person objects. cache the result in the "default" cache region
print("loading people....")
people = Session.query(Person).options(FromCache("default")).all()
# remove the Session. next query starts from scratch.
Session.remove()
-# load again, using the same FromCache option. now they're cached
-# under "all_people", no SQL is emitted.
+# load again, using the same FromCache option. now they're cached,
+# so no SQL is emitted.
print("loading people....again!")
people = Session.query(Person).options(FromCache("default")).all()
-# want to load on some different kind of query ? change the namespace
-# you send to FromCache
+# Specifying a different query produces a different cache key, so
+# these results are independently cached.
print("loading people two through twelve")
people_two_through_twelve = Session.query(Person).\
options(FromCache("default")).\
filter(Person.name.between("person 02", "person 12")).\
all()
-# the data is cached under the "namespace" you send to FromCache, *plus*
+# the data is cached under string structure of the SQL statement, *plus*
# the bind parameters of the query. So this query, having
# different literal parameters under "Person.name.between()" than the
# previous one, issues new SQL...