File: relation_caching.py

package info (click to toggle)
sqlalchemy 0.6.3-3%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 10,744 kB
  • ctags: 15,132
  • sloc: python: 93,431; ansic: 787; makefile: 137; xml: 17
file content (25 lines) | stat: -rw-r--r-- 934 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""relationship_caching.py

Load a set of Person and Address objects, specifying that 
related PostalCode, City, Country objects should be pulled from long 
term cache.

"""
import environment
from model import Person, Address, cache_address_bits
from meta import Session
from sqlalchemy.orm import joinedload
import os

for p in Session.query(Person).options(joinedload(Person.addresses), cache_address_bits):
    print p.format_full()


print "\n\nIf this was the first run of relationship_caching.py, SQL was likely emitted to "\
        "load postal codes, cities, countries.\n"\
        "If run a second time, only a single SQL statement will run - all "\
        "related data is pulled from cache.\n"\
        "To clear the cache, delete the directory %r.  \n"\
        "This will cause a re-load of cities, postal codes and countries on "\
        "the next run.\n"\
        % os.path.join(environment.root, 'container_file')