From: Mike Bayer Date: Sat, 7 Dec 2013 22:33:13 +0000 (-0500) Subject: - remove verbiage about "namespaces" from the dogpile example, [ticket:2862] X-Git-Tag: rel_0_9_0~47^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5517c0eef9a1c4228d976584d7d65586b29b2ce9;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - remove verbiage about "namespaces" from the dogpile example, [ticket:2862] - fix broken py2k/py3k isms --- diff --git a/examples/dogpile_caching/advanced.py b/examples/dogpile_caching/advanced.py index 896e395bf8..feccaa3bae 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 36b9585b25..aeba65e19d 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 4561097b65..22d7f97be0 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...