]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- remove verbiage about "namespaces" from the dogpile example, [ticket:2862]
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 7 Dec 2013 22:33:13 +0000 (17:33 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 7 Dec 2013 22:33:13 +0000 (17:33 -0500)
- fix broken py2k/py3k isms

examples/dogpile_caching/advanced.py
examples/dogpile_caching/environment.py
examples/dogpile_caching/helloworld.py

index 896e395bf8a5c3588986aa4437560bb3cf292740..feccaa3baeaf832dd59c2353877983c57345903d 100644 (file)
@@ -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.
index 36b9585b25380cca40539fb9f51741642f3d5fa1..aeba65e19db3472754cec66cbcf58e4c77d9bee8 100644 (file)
@@ -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(
index 4561097b657223c5af2eb86f3e804e0b8289d298..22d7f97be0ecf2b15b094cea25d4fd98b2c4fb6a 100644 (file)
@@ -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...