Commits

Mike Bayer committed 88533d9

add scheduling to the README, other fixes

  • Participants
  • Parent commits 4a10d9f

Comments (0)

Files changed (7)

-=============
-Package Setup
-=============
+=======================================
+Introduction to SQLAlchemy - Pycon 2013
+=======================================
 
-Contents
-========
+This package contains the student prerequisite handout as well
+as the in-class software we'll be running.
 
-This package contains:
+Preparing for the Tutorial
+==========================
 
-* student handout, buildable as HTML, PDF, or other formats via Sphinx_	, in ``handout/``
+Prior to the class, all students should:
 
-* Interactive Python "slide runner" application, which
-  is essentially a customized `REPL <http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
-  that can step through segments of a Python script
+* Download this package.   It is available using git as follows::
 
-* Demonstration Python scripts which illustrate various features
-  of SQLAlchemy; these scripts are formatted to work best with the
-  "slide runner" application, though can be run directly as
-  well.
+    git clone https://bitbucket.org/zzzeek/pycon2013_student_package.git
 
-* Packages required to run the interactive slide runner and the
-  example SQLAlchemy programs in ``sw/``, including SQLAlchemy
-  itself.
+  Loading the package via git is preferred, so that on the day of the
+  tutorial students can update the package in-place with the latest
+  updates.  For those students not yet familiar with git, it is
+  also available as a .zip file from this link via
+  https://bitbucket.org/zzzeek/pycon2013_student_package/get/master.zip.
 
+* Read through the handout.   It is included as a PDF file ``handout.pdf``
+  as well as an HTML document viewable at ``handout/index.html``.
+  The handout includes a "Relational Review" section which discusses
+  the basics of SQL, relational algebra, and transactions; the course
+  will assume a basic understanding of this material.
 
-Prerequisites
-=============
+* Install and test the software environment.  Full instructions are
+  available in the handout in the "Package Setup" chapter.
+  As detailed in that section, students should first install
+  `virtualenv <http://pypi.python.org/pypi/virtualenv>`_, then
+  create a virtual environment, then install the local software
+  packages using ``.venv/bin/python install.py``.
 
-A minimum version of Python 2.6 is recommended;
-Python 2.7, 3.1, 3.2 or 3.3 are also fine.
 
-For database access, the tutorials use the SQLite_ database by default,
-which is included as part of the Python standard library.
+Approximate Schedule
+====================
 
-If your Python was custom built and does not include SQLite_, it
-can be added in by rebuilding with the SQLite_ libraries available or
-by installing pysqlite.
+Course Time: Thursday, March 14, 1:20 PM - 4:40 PM
+Location: Great America Floor 2B R3
 
-To build the documentation, the Sphinx_ documentation system and
-its prerequistites must be installed.
+1:20 - 1:30 - Welcome / Setup
+1:30 - 1:40 - Prerequisite Material Review
+1:40 - 1:45 - Overview of SQLAlchemy
+1:45 - 2:00 - Engine, Connection, Transactions
+2:00 - 2:20 - Table Metadata, Reflection, DDL
+2:20 - 2:50 - SQL Expressions
+2:50 - 3:10 - break
+3:10 - 4:40 - ORM
 
-To install the slide runner and dependencies, virtualenv_ is strongly
-recommended, available at http://pypi.python.org/pypi/virtualenv.   Students are encouraged to gain rudimental familiarity with virtualenv_ prior to the class.  By using virtualenv, there will
-be no dependency between the libraries used to run the local applications here
-versus those libraries that may be installed with the system-wide Python.
-For example, if students have old and broken versions of SQLAlchemy installed, they will
-be left untouched by this process, but will not interfere with the usage
-of the local application, which will be using the latest and greatest.
-
-Obtaining the Package
-======================
-
-The most recent version of this package is available using git::
-
-	git clone https://bitbucket.org/zzzeek/pycon2013_student_package.git
-
-Building the Documentation Handout
-==================================
-
-The documentation can be built using standard Sphinx_ techniques.
-
-To build HTML on Linux / OSX::
-
-	cd handout
-	make html
-
-To build HTML on Windows::
-
-	cd handout
-	make html
-
-The documentation can also be built as PDF or any other format supported by Sphinx_.   See the Sphinx_ documentation at http://sphinx-doc.org/ for further usage and configuration information.
-
-Installing the Slide Environment
-================================
-
-The slide environment features a working SQLAlchemy environment as well as several tutorial-style Python scripts which illustrate usage patterns.   The slides are best run using a specialized "slide runner" application, which we
-will be running as part of the class.
-
-To make the installation as easy as possible, as well as to minimize the need for network access, source installation
-packages for the non-standard prerequisite libraries are included here in the ``sw/`` directory.    However, the system is best run using a Python virtualenv_ environment, so that system-wide installation is not required.
-
-Steps to install:
-
-1. Ensure that virtualenv_ is installed, preferably systemwide.
-
-2. Create a local virtualenv_::
-
-	     $ virtualenv --no-site-packages .venv
-
-   This will create a directory ``.venv/bin`` which is where scripts are run.  On Windows, the directory is called ``.venv/Scripts``.
-
-3. Run the ``install.py`` script, which will install packages from the ``sw/``
-   directory into the local virtualenv_.  On Linux/OSX::
-
-	     $ .venv/bin/python install.py
-
-   On Windows::
-
-	     $ .venv\Scripts\python.exe install.py
-
-4. A particular tutorial script can be run using the ``sliderepl`` program.
-   On Linux OSX::
-
-	     $ .venv/bin/sliderepl 01_engine_usage.py
-
-   On Windows::
-
-	     $ .venv\Scripts\sliderepl.exe 01_engine_usage.py
-
-.. _Sphinx: http://sphinx-doc.org/
-
-.. _SQLite: http://sqlite.org/
-
-.. _virtualenv: http://pypi.python.org/pypi/virtualenv

handout.pdf

Binary file modified.

handout/_sources/setup.txt

 
 This package contains:
 
-* student handout, buildable as HTML, PDF, or other formats via Sphinx_	, in ``handout/``
+* student handout built as a PDF file ``handout.pdf``, as well as
+  an HTML layout starting at ``handout/index.html``.
+
+* Sphinx_ source files for the handout in ``handout/source``.  Those
+  familiar with Sphinx can build the handout document in other formats
+  using the makefile ``handout/Makefile``.
 
 * Interactive Python "slide runner" application, which
   is essentially a customized `REPL <http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
 
 	git clone https://bitbucket.org/zzzeek/pycon2013_student_package.git
 
+While git is preferred so that the package can easily be updated,
+those who don't have git installed can also download the file
+directly as a .zip file via
+https://bitbucket.org/zzzeek/pycon2013_student_package/get/master.zip.
+
 Building the Documentation Handout
 ==================================
 

handout/objects.inv

Binary file modified.

handout/searchindex.js

-Search.setIndex({objects:{},terms:{osx:2,all:[1,3,4],concept:[1,3,4],jason:[3,5],consider:4,illustr:[1,4,2],queri:[1,0,4],global:[1,4],codd:[1,4],increment:[1,4],four:[1,4],defining_unique_kei:1,scalar:1,correl:[1,4],abil:4,follow:[1,4],disk:4,ptr:5,row:[1,4],whose:[1,4],privat:4,middl:1,depend:[1,4,2],system:[1,3,2,4],advantag:1,pron:1,elsewher:4,send:3,cach:1,current_timestamp:1,edward:4,swap:1,comma:1,conceptu:1,sql92:5,sens:[1,4],project_id:1,introduc:[3,4],inform:[1,4,2,5],emploi:4,sourc:[1,2],everi:[1,4],string:[1,4],area:[1,4],evaul:1,zipchk:1,rise:4,none:4,exc:1,focus:4,util:4,data_manipulation_languag:1,candid:[1,4],volum:5,jack:[1,4],failur:[1,4],veri:[1,3,4],affect:4,implicitli:1,cartesian_product:1,tri:[1,4],secondari:1,sql_join:1,level:[1,4],list:[1,0,4,5,3],signific:4,handout:[3,0,2],correct:[1,4],"try":[1,4],concurr:[1,4,5],refer:[1,4],fashion:1,ride:1,dict:1,enterpris:5,data_definition_languag:1,user_account_id:1,user_account:1,core:[1,0,3],natur:[1,4],direct:1,sign:4,jump:4,quickli:4,second:[3,4],mysqldb:1,design:[1,4],aggreg:[1,4],pass:[1,4],download:3,further:[3,0,2,5],acid:[1,0,4],append:1,even:[1,4],index:[1,4],what:[1,3,5,4],hide:4,sub:4,compar:1,consistency_:1,section:3,abl:[3,4],"while":[1,3,4],mysql:[1,4],char_length:1,delet:[1,4],version:[1,3,2,4],primary_kei:1,succinct:1,"new":[1,4],net:1,method:1,metadata:1,ongo:[1,4],elimin:4,full:1,themselv:4,deriv:[1,4],dodg:1,gener:[1,3,4],never:[1,4],onli:[1,4],here:[1,3,2,4],restat:4,satisfi:4,procur:1,modif:[1,4],address:1,path:[1,3],along:[1,4],becom:4,modifi:[1,4,5],implicit:1,valu:[1,4],leav:4,invis:1,search:4,produc:[1,4],ahead:3,involv:1,alchemist:4,unboundexecutionerror:1,observ:4,prior:[3,2],base:[1,3,4],throughput:4,behav:1,within:[1,3,4],social:1,real:1,extrem:3,implement:[1,4,5],transact:[1,3,4],commonli:[1,4],theori:4,synonym:1,employe:[1,4],via:[1,2],depart:[1,4],propag:1,appli:[1,4],modul:1,prefer:2,seven:4,readili:1,vice:1,"boolean":1,calculu:1,visibl:[1,4],instal:[3,0,2],total:1,establish:[1,4],beginin:1,select:[1,4],highli:4,kei:[1,3,4],dorset:5,from:[1,4,2,5],proceed:[1,4],would:[1,3,4],memori:[1,4],distinct:[1,4],univers:3,two:[1,3,4],perl:3,msn:1,database_system:1,program:[1,3,2],call:[1,4,2],criteria:[1,4],scope:[1,4],type:[1,4],more:[1,3,4],flat:4,minim:[1,4,2],relax:1,peopl:4,hundr:4,claus:[1,4],yahoo:1,site:[3,0,2],visual:4,"transient":1,stick:1,particular:[1,4,2],known:[1,4],central:[1,4],compani:4,role_nam:1,must:[1,4,2],accid:4,account:[1,3,5,4],join:[1,4],left:[1,4,2],augment:1,hous:5,employeeproject:1,car:1,setup:[3,0,2],work:[1,3,2,4],uniqu:[1,4],dev:1,descriptor:1,remain:[1,4],minimum:2,obvious:4,can:[1,3,2,4],morgan:5,learn:[3,4],about:[1,4,5],purpos:[1,0,3],fetch:1,def:1,control:[1,4],claim:[4,5],sqlite:[1,4,2],traceback:1,give:4,process:[1,4,2],lock:4,atomicity_:1,nock:5,share:1,indic:[1,4],topic:[4,5],critic:5,liter:1,want:[1,4],basebal:3,natural_kei:1,phrase:1,serial:[1,4],keep:[1,4],occur:[1,4],contribut:3,low:[1,4],huge:3,cours:4,multipl:[1,4],goal:3,secur:1,rather:[1,4],anoth:[1,4],get:[1,3,4],environ:[1,0,2,3],nyt:1,write:[3,4],far:1,lifecycl:1,anyon:5,recoveri:1,fourth:5,familiar:[3,4,2],nyc:3,negoti:1,simpl:[1,4],updat:[1,4],rollback:[1,4],map:1,product:1,resourc:5,overridden:1,alwai:[1,4],less:[1,3,4],max:[1,4],clone:2,after:[1,3,4],variant:[1,4],database_transact:1,reflect:1,befor:[1,4],catalog:1,employee_id:1,mixin:1,commit:[1,4],mai:[1,3,2,4],end:[1,4],redund:1,philosophi:4,data:[1,0,5,4],averag:4,ident:[1,4],attempt:[3,4],practic:[1,3,4],save:1,tutori:[1,3,2,4],bind:1,valid:[1,4],grant:4,explicit:1,correspond:[1,4],predic:1,caus:1,receiv:[1,3,4],scoped_sess:1,preced:[1,4],combin:[1,4],block:[1,4],allow:[1,3,4],my_us:1,mechan:5,first:[1,4],order:[1,4],talk:1,includ:[1,3,2,4],oper:[1,4],referenti:1,composit:[1,4],help:[1,3,4],offici:4,move:1,becaus:[1,4],cross:[1,4],held:1,through:[1,3,2,4],classifi:1,unique_kei:1,still:4,paramet:1,conjunct:[1,4],group:[1,3,4],directli:[1,2],concis:1,chosen:[1,4],psycopg2:1,fix:[1,4],acid_model:1,kirtland:[3,5],surrogate_kei:1,late:4,platform:3,window:2,pend:1,gem:5,creat:[1,4,2],persist:1,criterion:4,decad:3,main:1,might:[1,4],alter:1,memoiz:1,zipcod:1,them:[1,4],good:[3,4,5],"return":[1,4],candidate_kei:1,thei:[1,4,2],reveal:4,handl:1,promin:1,overal:3,initi:1,denorm:4,"break":4,promis:4,terminolog:1,instead:[1,4],front:[3,0],studi:4,detach:1,hall:5,introduct:[1,0,4,3],term:[1,0,4,3],retriev:[1,4],name:[1,4],edit:5,drop:1,revert:4,instruct:4,mari:1,separ:1,easili:4,slide:[3,0,2],exampl:[1,4,2],isolation_:1,compris:[1,4],each:[1,4],fulli:[1,4],difficult:4,side:[1,4],mean:[1,4],subset:4,domain:5,citat:1,dialect:1,michael:3,individu:[1,4],idea:[1,3,4],realli:4,contributor:3,linkag:1,connect:1,begun:1,year:[3,4],distributor:1,our:4,unload:1,thing:[1,4],event:1,special:[1,2],out:[1,4],variabl:1,expres:1,accomplish:4,attend:3,expedi:1,goe:4,algebra:[1,4],semi:1,primari:[1,4,5],categori:4,suitabl:1,rational:1,emp_id:[1,4],factori:1,empti:4,common:[1,4],model:[1,0,5,4],insid:[1,4],advanc:1,systemwid:2,manipul:[1,0,4],situat:1,differ:[1,4],omiss:4,standard:[1,4,2,5],reason:4,orm:1,table_2:4,intric:4,dictionari:1,table_1:4,quicki:1,org:[1,3,2,5,4],relat:[1,0,4,3],pycon2013_student_packag:2,upon:[1,4],care:4,kaufmann:5,architectur:[1,5],thread:1,could:[1,4],omit:4,synchron:4,address_obj:1,unavoid:4,filter:4,turn:[1,4],length:1,enforc:4,place:[1,3,4],perman:[1,4],geometri:4,profess:5,confus:[1,4],assign:[1,4],pep:1,"__delete__":1,origin:[1,4],softwar:[3,4,5],major:[1,3],project_employe:1,martin:1,walli:[1,4],onc:[1,4],independ:1,uncorrel:1,number:[1,4],thereof:1,yourself:4,tier:1,artistri:4,alreadi:[1,3,4],done:4,least:[1,3,4],plainli:4,lib:1,subqueri:[1,4],fantast:5,dep_nam:4,size:[1,3],datetim:1,avail:[1,3,2,5],given:[1,4],cartesian:1,smaller:[1,4],durability_:1,convent:[4,5],script:[1,2],associ:[1,4],top:1,creator:1,sometim:[1,4],construct:[1,4],attach:1,necessarili:4,master:4,demonstr:2,statement:[1,4],toolset:3,scheme:4,"final":[3,4],store:[1,4],too:[3,4],consol:4,option:1,relationship:[1,4],tool:[3,4],copi:[3,4],specifi:[1,4],task:[1,3],part:[1,3,2],enclos:1,mostli:1,daunt:4,essenti:[1,3,2,4],exactli:[1,4,5],haven:1,serv:1,wide:[1,3,2,4],kind:[1,3,4],target:[1,4],keyword:[1,4],instanc:1,remot:4,remov:[1,4],zero:1,structur:[1,4,5],horizont:1,project:[1,3],matter:[3,0],languag:[1,0,4,3],boil:4,iron:1,were:[1,3,4],schema:[1,0,5,4],surrog:[1,4],seri:[1,4],analysi:5,rowset:1,counter:1,comput:4,abov:[1,4],runner:[3,2],thereaft:1,modern:[1,4],mind:4,argument:[1,4],spent:[1,4],packag:[1,0,2,3],properli:4,expir:1,coher:1,tabl:[1,4],need:[1,4,2,5],seen:1,seem:5,element:4,dogbert:4,well:[1,3,2,4],uncomplet:1,dbapi:1,issu:4,three:[1,4,5],engin:[1,4],techniqu:[1,4,2],equival:1,min:[1,4],latter:4,violat:4,note:[1,4],also:[1,4,2],ideal:[1,4],maintain:1,take:[1,4],which:[1,3,2,4],ad_count:1,green:1,analogu:1,gmail:1,noth:1,channel:[3,0],greatest:2,blue:4,begin:1,unless:1,normal:[1,4],track:1,object:[1,0,4,5,3],oracl:3,most:[1,3,2,4],detect:[1,4],pair:1,prentic:5,slightli:1,segment:2,"class":[1,3,2],prematur:1,simplic:4,allevi:1,placement:1,correlat:1,url:1,doc:[1,2],clear:1,later:4,cover:3,sale:4,doe:[1,4,2],declar:[1,4],snapshot:1,determin:[1,4],databas:[1,0,2,4,3],dep_id_fk:1,incur:1,constrain:4,latest:[3,2],cannot:1,fact:4,think:[4,5],somewhat:4,carefulli:4,wikipedia:[1,4,5],page:4,brief:4,bring:1,session:1,particularli:4,myclass:1,identifi:[1,4],rough:4,tend:[1,4],fine:2,line:[1,4],make:[1,3,2,4],impact:[1,4],current:[1,4],rel:[1,4],explicitli:1,locat:1,acquir:[1,4],hadn:4,much:[3,4],explain:5,print:1,activ:1,state:[1,4],than:[1,4],configur:[1,4,2],latenc:1,suppos:4,analyz:4,"__tablename__":1,"__get__":1,local:[1,3,2,4],compoment:1,wilei:5,predict:4,nearli:1,variou:2,distinctli:4,googlegroup:3,express:[1,4],stop:1,autom:1,backend:1,repl:2,rest:1,report:4,requir:[1,4,2],prime:4,mapper:1,child:1,homegrown:3,enabl:[1,4],organ:[1,4],yield:4,email:[1,3],provid:[1,4,5],stuff:4,integr:4,mediat:1,contain:[1,4,2],demarc:[1,4],"01_engine_usag":2,where:[1,4,2],durabl:[1,4],wrote:3,view:[1,3,4],wiki:[1,4,5],set:[1,4],detail:[1,3,5],habit:4,proce:[1,4],knowledg:5,orphan:1,accord:[1,4],displai:4,resist:4,see:[1,4,2],temporarili:1,result:[1,4],respons:1,content:[0,2,4],close:1,email_address:1,servic:1,best:[4,2],subject:4,closer:4,awar:4,statu:1,said:1,simultan:1,onto:[1,4],correctli:4,hopefulli:3,pattern:[1,2,5],review:[3,0,4],enumer:1,below:[1,4],debat:4,"case":[1,4],behind:[1,4],celko:5,box:4,between:[1,4,2],"import":[1,4],awai:4,experi:3,approach:1,across:4,attribut:[1,4],assumpt:4,user_obj:1,extend:1,web:[1,0,3],foreignkei:1,style:[1,4,2],isol:[1,4],pypi:2,extens:[1,4],lazi:1,succeed:4,unit:[1,4],outer:[1,4],boss:4,come:4,embed:1,addit:[1,4],both:[1,4,5],toward:3,last:[1,4],expos:4,someth:[1,4],howev:[1,4,2],job:1,against:[1,4],foreign:[1,4],etc:4,entir:[1,3,4],monitor:4,context:1,logic:[1,4],pdf:2,corrupt:4,whole:[1,4],becam:1,load:[1,4],schmidt:5,unclear:1,revers:[1,4],reject:4,figur:4,instanti:1,overview:[0,4],inher:4,sai:1,subq:1,written:[1,3,4],linux:2,mistak:4,largest:1,guid:1,sever:[3,2],pycon:0,duplic:[1,4],code:[1,4],better:4,ultim:[1,3],vertic:1,java:[3,4],divid:1,eager:1,addition:[1,4],rebuild:2,"__set__":1,due:4,been:[1,3,5,4],sinc:[1,4],compon:1,accumul:[1,4],behvior:1,trigger:[1,4],treat:1,untouch:2,basic:[1,3,4],contractor:3,immedi:1,date:4,partial:1,strategi:5,addison:5,wish:1,exercis:3,face:4,summari:4,great:4,ani:[1,4,2,5],tiger:1,coordin:1,emp_count:4,togeth:[1,4],mail:[3,0],"catch":3,fundament:[1,4],repetit:4,repres:[1,3,4],driver:1,former:4,present:[1,0,4,3],input:4,sound:4,multi:[1,3,4],therefor:[1,4],look:[1,4],properti:[1,4],plain:1,straight:[1,4],erron:1,histor:4,contextu:1,act:4,defin:[1,4],invok:[1,4],outcom:1,behavior:[1,4],error:[1,4],glossari:[1,0,4,3],fixtur:4,nosql:4,manner:1,bin:2,layer:3,pragmat:4,customiz:1,have:[1,4,2,5],helper:1,applic:[1,3,2,5,4],almost:4,deliv:1,non:[1,3,2,4],worri:4,equal:4,middlewar:1,itself:[1,3,2,5,4],edgar:[1,4],crash:1,avg:4,wherea:[1,4],mvcc:[1,4],"__init__":1,scienc:4,parent:[1,4],nullpool:1,"null":[1,4],develop:4,clearli:5,author:4,perform:[1,4],began:4,format:2,exchang:4,intermediari:[1,4],same:[1,3,4],member:[1,4],python:[1,3,2,4],add:[1,4],complex:[1,4],auto:4,success:1,document:[1,0,2,4,3],conflict:4,higher:4,limit:1,assembl:[4,5],safe:[1,4],archiv:3,nil:4,denot:1,referenc:[1,4],interrog:1,kju:1,create_engin:1,effect:[1,4],hand:[1,3,4],capabl:1,my_sess:1,sliderepl:2,student:[3,4,2],mani:[1,3,5,4],extern:1,arguabl:4,typic:[1,4],recent:[1,4,2],lower:4,appropri:[1,4],off:[1,4],advic:5,discourag:1,com:[1,3],thu:1,usual:[1,4],facad:1,hypothet:4,without:[1,4],thought:5,client:1,command:1,get_bind:1,thi:[0,1,2,3,4,5],choos:4,emp_nam:[1,4],fail:[1,4],ourselv:4,self:1,propos:1,protocol:1,entri:1,just:[1,4],among:1,complet:[1,3,4],obtain:[1,0,2],tcp:1,risk:4,expung:1,shape:[3,4],venv:2,irc:[3,0],heavili:[1,4],shorthand:1,outlin:4,yet:1,check_constraint:1,previous:[1,4],hai:5,versu:2,now:[1,4,5],easi:2,singl:[1,4],interfer:2,point:[1,4],had:4,except:[1,4],param:1,discuss:4,blog:5,color:1,employee_project:1,other:[1,3,2,4],instrument:1,versa:1,citizen:1,backref:1,delv:5,subsequ:4,thows:4,match:[1,4],build:[1,0,2,4],earli:1,prerequistit:2,inspir:[1,5],varchar:[1,4],around:1,transpar:[1,4],read:[1,0,4,5,3],credit:[3,0,5],piec:4,period:1,test:[1,3,4],built:[1,4,2],leagu:3,grid:1,know:[1,4],elabor:1,world:[1,3],bit:5,characterist:1,formal:4,loss:1,ignor:1,specif:[1,4],lost:4,arbitrari:4,should:[1,3,4],manual:1,html:[1,2],integ:[1,4],server:[1,3],collect:1,princip:4,api:1,either:1,cascad:[1,4],popular:3,output:[1,4],record:[1,4],nest:1,decis:4,stdin:1,underli:1,www:3,instrumentedattribut:1,old:[4,2],often:[1,4],deal:[1,3,4],dilbert:[1,4],interact:[1,4,2],some:[1,3,4],back:[1,4],resolv:[1,4],intern:1,unchang:[1,4],flush:1,proper:4,guarante:[1,4],successfulli:[3,4],librari:[1,2],registri:1,virtualenv:2,autoflush:1,txt:5,wendi:[1,4],scala:4,"function":[1,4],though:[1,4,2],definit:[1,4],pars:4,per:4,subscrib:3,harrington:5,mimick:4,mathemat:1,larg:[1,3],proj:1,ddl:[1,4],condit:1,foo:1,localhost:1,mode:4,machin:3,weslei:5,encourag:[4,2],who:[1,3,5,4],run:[1,3,2,4],power:1,quit:5,acronym:[1,4],word:1,inspect:[1,4],usag:[1,4,2],unlik:4,interfac:1,uncommit:4,broken:[1,3,2,4],step:[1,3,2,4],isn:4,emp2:1,prerequisit:[3,0,2],emp1:1,post:5,zzzeek:2,relational_model:1,describ:[1,4],scenario:4,comparison:1,boldli:4,hidden:1,postgresql:[1,4],usa:1,constraint:[1,4],column:[1,4],materi:3,commun:4,http:[1,3,2,5,4],scott:1,manag:[1,4],degre:4,regular:[1,4],foreign_key_constraint:1,constructor:1,fals:1,discard:1,dep_id:[1,4],disabl:1,queuepool:1,own:[1,4],effici:1,rudiment:2,buildabl:2,rudimentari:1,curiou:1,datatyp:4,edgar_f:1,profession:5,bound:1,automat:[1,4],compos:[1,4],down:4,hotli:4,pysqlit:2,right:[1,4],rdbmss:4,sessionmak:1,ensur:[1,3,2,4],chang:[1,4],pgbouncer:1,next:4,storag:[1,4],your:2,smarti:5,git:2,wai:[1,4],few:4,overus:1,execut:[1,4],support:2,iter:1,custom:[1,2],like:[1,4],start:[1,4],reli:4,formul:1,bayer:3,inner:1,strong:4,replac:1,forward:4,overhead:[1,4],strictli:4,deserv:3,lambda:1,lowest:[1,4],creation:[1,5],form:[1,4],offer:1,tupl:1,recommend:2,transat:4,continu:4,sqlalchemi:[0,1,2,3,4,5],link:[1,4],gain:2,atom:[1,4],don:[1,4],overflow:1,highest:4,"true":[1,4],freenod:3,faster:4,count:[1,4],succe:4,made:[1,4],dirti:4,consist:[1,4],possibl:[1,4,2],whether:1,database_norm:[1,4],directori:2,access:[1,4,2,5],dml:[1,0,4],flip:4,lead:1,insert:[1,4],data_1:1,unusu:4,those:[1,3,2,4],how:4,sum:4,otherwis:4,problem:1,deadlock:4,similar:[1,4],emit:[1,4],boundari:1,serializ:4,classif:1,featur:[1,4,2],evalu:[1,4],classic:[1,5],certain:1,"abstract":[1,3],threadloc:1,meaningless:4,doesn:[1,4],drive:4,strongli:[4,2],chanc:4,intro:1,exist:[1,4],file:[1,5],field:[1,4],request:1,encompass:4,improv:4,check:[1,4],fill:1,phantom:4,again:4,mutual:1,misunderstood:[1,4],titl:5,user:1,when:[1,4],portion:[1,3],virtual:3,orient:5,"_codd":1,"default":[1,2],book:5,role:1,rdbm:[1,4],rememb:4,varieti:[1,4],hibern:1,tech:1,you:[1,4],roll:4,realiti:1,autocommit:1,draw:4,repeat:[1,4],intend:1,wildcard:4,sprawl:5,actual:[1,3,4],sequenc:1,fowler:[1,5],googl:3,meaning:4,scale:4,consid:[1,4],sql:[1,3,5,4],throughout:[1,4],hat:4,peac:4,pool:1,network:[3,2,5],reduc:[1,4],bitbucket:2,sphinx:2,longer:4,wherebi:[1,4],spend:[3,4],anywher:1,accept:4,reliabl:1,lot:[3,4],multiversion_concurrency_control:1,rule:[1,4],reciev:1,depth:1,mass:1,time:[1,3,4],plu:1},objtypes:{},titles:["PyCon 2013 - Introduction to SQLAlchemy","Glossary","Package Setup","Front Matter","Relational Database Review","Further Reading"],objnames:{},filenames:["index","glossary","setup","front","relational","reading"]})
+Search.setIndex({objects:{},terms:{osx:2,all:[1,3,4],concept:[1,3,4],jason:[3,5],consider:4,illustr:[1,4,2],queri:[1,0,4],global:[1,4],codd:[1,4],four:[1,4],defining_unique_kei:1,scalar:1,correl:[1,4],abil:4,follow:[1,4],disk:4,ptr:5,evalu:[1,4],row:[1,4],whose:[1,4],privat:4,middl:1,depend:[1,4,2],elsewher:4,specif:[1,4],send:3,cach:1,program:[1,3,2],swap:1,sql92:5,sens:[1,4],project_id:1,introduc:[3,4],proj:1,"case":[1,4],sourc:[1,2],everi:[1,4],string:[1,4],area:[1,4],evaul:1,zipchk:1,rise:4,none:4,focus:4,util:4,data_manipulation_languag:1,candid:[1,4],volum:5,jack:[1,4],failur:[1,4],veri:[1,3,4],affect:4,implicitli:1,cartesian_product:1,tri:[1,4],level:[1,4],list:[1,0,4,5,3],signific:4,handout:[3,0,2],factori:1,"try":[1,4],session:1,larg:[1,3],ride:1,enterpris:5,data_definition_languag:1,user_account_id:1,user_account:1,weslei:5,natur:[1,4],direct:1,sign:4,jump:4,grant:4,second:[3,4],mysqldb:1,design:[1,4],aggreg:[1,4],pass:[1,4],download:[3,2],further:[3,0,2,5],acid:[1,0,4],append:1,even:[1,4],index:[1,4,2],what:[1,3,5,4],anywher:1,hide:4,sub:4,compar:1,consistency_:1,section:3,abl:[3,4],brief:4,char_length:1,delet:[1,4],version:[1,3,2,4],primary_kei:1,succinct:1,"new":[1,4],net:1,method:1,metadata:1,ongo:[1,4],elimin:4,full:1,themselv:4,deriv:[1,4],dodg:1,gener:[1,3,4],never:[1,4],here:[1,3,2,4],restat:4,satisfi:4,procur:1,modif:[1,4],address:1,path:[1,3],along:[1,4],vertic:1,modifi:[1,4,5],implicit:1,valu:[1,4],invis:1,condit:1,search:4,celko:5,ahead:3,database_norm:[1,4],alchemist:4,reason:4,prior:[3,2],orm:1,throughput:4,behav:1,social:1,earli:1,extrem:3,implement:[1,4,5],explain:5,commonli:[1,4],intric:4,employe:[1,4],via:[1,2],depart:[1,4],drive:4,appli:[1,4],modul:1,prefer:2,layer:3,readili:1,"boolean":1,visibl:[1,4],instal:[3,0,2],total:1,establish:[1,4],beginin:1,select:[1,4],highli:4,kei:[1,3,4],discuss:4,pycon2013_student_packag:2,from:[1,4,2,5],proceed:[1,4],zip:2,memori:[1,4],distinct:[1,4],longer:4,univers:3,two:[1,3,4],perl:3,msn:1,database_system:1,edward:4,overhead:[1,4],criteria:[1,4],scope:[1,4],facad:1,type:[1,4],more:[1,3,4],flat:4,relax:1,peopl:4,hundr:4,claus:[1,4],yahoo:1,visual:4,"transient":1,stick:1,former:4,particular:[1,4,2],known:[1,4],actual:[1,3,4],compani:4,role_nam:1,must:[1,4,2],accid:4,account:[1,3,5,4],join:[1,4],sometim:[1,4],augment:1,hous:5,employeeproject:1,car:1,setup:[3,0,2],work:[1,3,2,4],uniqu:[1,4],dev:1,conceptu:1,remain:[1,4],archiv:3,obvious:4,can:[1,3,2,4],morgan:5,learn:[3,4],purpos:[1,0,3],fetch:1,def:1,appropri:[1,4],control:[1,4],claim:[4,5],sqlite:[1,4,2],omit:4,give:4,process:[1,4,2],lock:4,atomicity_:1,nock:5,share:1,indic:[1,4],topic:[4,5],critic:5,minimum:2,want:[1,4],basebal:3,natural_kei:1,phrase:1,serial:[1,4],unavoid:4,occur:[1,4],repl:2,nearli:1,low:[1,4],alwai:[1,4],cours:4,multipl:[1,4],goal:3,divid:1,rather:[1,4],anoth:[1,4],distinctli:4,environ:[1,0,2,3],classifi:1,write:[3,4],how:4,criterion:4,recoveri:1,fourth:5,googlegroup:3,nyc:3,negoti:1,simpl:[1,4],updat:[1,4,2],rollback:[1,4],map:1,product:1,resourc:5,overridden:1,huge:3,max:[1,4],clone:2,after:[1,3,4],variant:[1,4],database_transact:1,reflect:1,befor:[1,4],catalog:1,employee_project:1,mixin:1,discard:1,mai:[1,3,2,4],end:[1,4],redund:1,philosophi:4,data:[1,0,5,4],averag:4,subsequ:4,handl:1,attempt:[3,4],practic:[1,3,4],bind:1,secur:1,explicit:1,correspond:[1,4],element:4,caus:1,inform:[1,4,2,5],scoped_sess:1,preced:[1,4],combin:[1,4],queuepool:1,allow:[1,3,4],my_us:1,mechan:5,"__delete__":1,order:[1,4],talk:1,includ:[1,3,2,4],origin:[1,4],depth:1,composit:[1,4],help:[1,3,4],offici:4,move:1,becaus:[1,4],intermediari:[1,4],held:1,through:[1,3,2,4],nyt:1,unique_kei:1,still:4,paramet:1,conjunct:[1,4],group:[1,3,4],monitor:4,concis:1,chosen:[1,4],psycopg2:1,fix:[1,4],acid_model:1,kirtland:[3,5],surrogate_kei:1,late:4,platform:3,window:2,pend:1,transpar:[1,4],requir:[1,4,2],helper:1,persist:1,bin:2,mail:[3,0],hidden:1,main:1,might:[1,4],alter:1,memoiz:1,them:[1,4],good:[3,4,5],"return":[1,4],thei:[1,4,2],mapper:1,python:[1,3,2,4],promin:1,overal:3,initi:1,number:[1,4],"break":4,promis:4,automat:[1,4],instead:[1,4],front:[3,0],detach:1,hall:5,introduct:[1,0,4,3],term:[1,0,4,3],makefil:2,name:[1,4],auto:4,edit:5,drop:1,revert:4,artistri:4,separ:1,easili:[4,2],slide:[3,0,2],isolation_:1,compris:[1,4],each:[1,4],fulli:[1,4],higher:4,side:[1,4],mean:[1,4],subset:4,recommend:2,domain:5,outlin:4,citat:1,dialect:1,michael:3,individu:[1,4],idea:[1,3,4],realli:4,ensur:[1,3,2,4],linkag:1,been:[1,3,5,4],connect:1,begun:1,year:[3,4],distributor:1,our:4,event:1,special:[1,2],out:[1,4],variabl:1,accomplish:4,attend:3,goe:4,storag:[1,4],algebra:[1,4],dep_nam:4,categori:4,suitabl:1,rational:1,emp_id:[1,4],determin:[1,4],correct:[1,4],integr:4,insid:[1,4],advanc:1,systemwid:2,manipul:[1,0,4],situat:1,given:[1,4],omiss:4,standard:[1,4,2,5],unboundexecutionerror:1,base:[1,3,4],table_2:4,theori:4,dictionari:1,table_1:4,quicki:1,org:[1,3,2,5,4],dorset:5,limit:1,repeat:[1,4],care:4,kaufmann:5,thread:1,capabl:1,could:[1,4],traceback:1,synchron:4,address_obj:1,keep:[1,4],filter:4,thing:[1,4],length:1,enforc:4,place:[1,3,4],perman:[1,4],geometri:4,profess:5,confus:[1,4],assign:[1,4],first:[1,4],oper:[1,4],softwar:[3,4,5],major:[1,3],project_employe:1,walli:[1,4],onc:[1,4],independ:1,uncorrel:1,denorm:4,thereof:1,yourself:4,tier:1,instruct:4,alreadi:[1,3,4],done:4,construct:[1,4],plainli:4,fantast:5,primari:[1,4,5],size:[1,3],datetim:1,avail:[1,3,2,5],differ:[1,4],cartesian:1,smaller:[1,4],convent:[4,5],script:[1,2],associ:[1,4],top:1,habit:4,system:[1,3,2,4],least:[1,3,4],attach:1,necessarili:4,master:[4,2],demonstr:2,statement:[1,4],toolset:3,scheme:4,"final":[3,4],store:[1,4],too:[3,4],consol:4,option:1,relationship:[1,4],tool:[3,4],copi:[3,4],specifi:[1,4],get_bind:1,part:[1,3,2],enclos:1,mostli:1,daunt:4,essenti:[1,3,2,4],exactli:[1,4,5],haven:1,serv:1,wide:[1,3,2,4],liter:1,target:[1,4],keyword:[1,4],unload:1,provid:[1,4,5],instrumentedattribut:1,remov:[1,4],zero:1,structur:[1,4,5],horizont:1,project:[1,3],matter:[3,0],"__init__":1,boil:4,iron:1,were:[1,3,4],edgar_f:1,surrog:[1,4],html:[1,2],seri:[1,4],analysi:5,rowset:1,fashion:1,comput:4,behavior:[1,4],runner:[3,2],thereaft:1,modern:[1,4],mind:4,argument:[1,4],hypothet:4,packag:[1,0,2,3],properli:4,expir:1,increment:[1,4],tabl:[1,4],need:[1,4,2,5],seen:1,seem:5,predic:1,dogbert:4,uncomplet:1,dbapi:1,issu:4,counter:1,three:[1,4,5],engin:[1,4],techniqu:[1,4,2],lib:1,min:[1,4],latter:4,violat:4,client:1,note:[1,4],also:[1,4,2],ideal:[1,4],maintain:1,constructor:1,take:[1,4],which:[1,3,2,4],ad_count:1,green:1,analogu:1,subject:4,noth:1,channel:[3,0],wherebi:[1,4],blue:4,begin:1,unless:1,normal:[1,4],track:1,who:[1,3,2,5,4],oracl:3,most:[1,3,2,4],said:1,whether:1,portion:[1,3],advic:5,pair:1,prentic:5,mode:4,segment:2,"class":[1,3,2],prematur:1,simplic:4,allevi:1,synonym:1,exc:1,url:1,doc:[1,2],clear:1,later:4,cover:3,sale:4,doe:[1,4,2],declar:[1,4],snapshot:1,wildcard:4,fowler:[1,5],dep_id_fk:1,incur:1,constrain:4,usual:[1,4],cannot:1,fact:4,think:[4,5],somewhat:4,carefulli:4,enumer:1,bring:1,directli:[1,2],concurr:[1,4,5],particularli:4,schmidt:5,myclass:1,protocol:1,rough:4,debat:4,fine:2,overflow:1,make:[1,3,2,4],involv:1,current:[1,4],onli:[1,4],explicitli:1,locat:1,acquir:[1,4],hadn:4,trigger:[1,4],transact:[1,3,4],print:1,activ:1,behind:[1,4],than:[1,4],configur:[1,4,2],latenc:1,dict:1,analyz:4,"__tablename__":1,local:[1,3,2,4],compoment:1,wilei:5,predict:4,contribut:3,variou:2,get:[1,3,2,4],familiar:[3,4,2],express:[1,4],stop:1,kind:[1,3,4],secondari:1,backend:1,expres:1,mimick:4,tcp:1,network:[3,2,5],report:4,gem:5,layout:2,prime:4,reveal:4,child:1,homegrown:3,enabl:[1,4],organ:[1,4],yield:4,across:4,sum:4,expedi:1,stuff:4,common:[1,4],mediat:1,contain:[1,4,2],demarc:[1,4],"01_engine_usag":2,where:[1,4,2],wrote:3,view:[1,3,4],wiki:[1,4,5],smarti:5,set:[1,4],creator:1,knowledg:5,orphan:1,assumpt:4,lot:[3,4],flip:4,resist:4,see:[1,4,2],temporarili:1,result:[1,4],respons:1,fail:[1,4],close:1,email_address:1,servic:1,best:[4,2],gmail:1,closer:4,awar:4,statu:1,detect:[1,4],onto:[1,4],correctli:4,hopefulli:3,databas:[1,0,2,4,3],review:[3,0,4],wikipedia:[1,4,5],data_1:1,tend:[1,4],state:[1,4],durability_:1,box:4,between:[1,4,2],call:[1,4,2],"import":[1,4],awai:4,experi:3,approach:1,email:[1,3],attribut:[1,4],accord:[1,4],user_obj:1,extend:1,hai:5,fundament:[1,4],style:[1,4,2],isol:[1,4],pypi:2,extens:[1,4],lazi:1,succeed:4,would:[1,3,4],outer:[1,4],boss:4,come:4,problem:1,regular:[1,4],addit:[1,4],both:[1,4,5],toward:3,last:[1,4],easi:2,someth:[1,4],howev:[1,4,2],rdbmss:4,job:1,against:[1,4],foreign:[1,4],etc:4,instanc:1,postgresql:[1,4],context:1,logic:[1,4],pdf:2,corrupt:4,whole:[1,4],becam:1,"default":[1,2],load:[1,4],among:1,unclear:1,author:4,mass:1,figur:4,instanti:1,overview:[0,4],suppos:4,inher:4,dirti:4,period:1,book:5,written:[1,3,4],non:[1,3,2,4],linux:2,mistak:4,guid:1,pycon:0,duplic:[1,4],code:[1,4],better:4,ultim:[1,3],becom:4,java:[3,4],comma:1,compos:[1,4],instrument:1,addition:[1,4],rebuild:2,"__set__":1,mari:1,calculu:1,sinc:[1,4],compon:1,accumul:[1,4],behvior:1,much:[3,4],treat:1,untouch:2,basic:[1,3,4],immedi:1,date:4,partial:1,quickli:4,addison:5,versa:1,usag:[1,4,2],venv:2,summari:4,great:4,ani:[1,4,2,5],tiger:1,coordin:1,schema:[1,0,5,4],emp_count:4,togeth:[1,4],turn:[1,4],"catch":3,repetit:4,repres:[1,3,4],driver:1,decad:3,present:[1,0,4,3],emploi:4,multi:[1,3,4],ident:[1,4],look:[1,4],heavili:[1,4],plain:1,straight:[1,4],properti:[1,4],histor:4,contextu:1,defin:[1,4],"while":[1,3,2,4],outcom:1,abov:[1,4],error:[1,4],glossari:[1,0,4,3],fixtur:4,correlat:1,observ:4,manner:1,propag:1,seven:4,zipcod:1,customiz:1,coher:1,advantag:1,prerequistit:2,almost:4,"null":[1,4],deliv:1,therefor:[1,4],site:[3,0,2],worri:4,equal:4,middlewar:1,itself:[1,3,2,5,4],edgar:[1,4],crash:1,avg:4,wherea:[1,4],mvcc:[1,4],sever:[3,2],scienc:4,parent:[1,4],nullpool:1,employee_id:1,develop:4,realiti:1,minim:[1,4,2],perform:[1,4],impact:[1,4],began:4,referenti:1,exchang:4,cross:[1,4],same:[1,3,4],member:[1,4],proce:[1,4],tutori:[1,3,2,4],sql_join:1,success:1,document:[1,0,2,4,3],complex:[1,4],conflict:4,difficult:4,phantom:4,safe:[1,4],http:[1,3,2,5,4],nil:4,again:4,referenc:[1,4],interrog:1,kju:1,upon:[1,4],effect:[1,4],hand:[1,3,4],remot:4,my_sess:1,sliderepl:2,student:[3,4,2],mani:[1,3,5,4],extern:1,studi:4,recent:[1,4,2],lower:4,task:[1,3],off:[1,4],equival:1,discourag:1,com:[1,3],thu:1,well:[1,3,2,4],spent:[1,4],without:[1,4],thought:5,exampl:[1,4,2],command:1,greatest:2,thi:[0,1,2,3,4,5],choos:4,grid:1,model:[1,0,5,4],ourselv:4,spend:[3,4],piec:4,left:[1,4,2],identifi:[1,4],entri:1,just:[1,4],less:[1,3,4],erron:1,sound:4,deadlock:4,obtain:[1,0,2],rest:1,risk:4,expung:1,shape:[3,4],current_timestamp:1,irc:[3,0],mysql:[1,4],shorthand:1,simultan:1,yet:1,languag:[1,0,4,3],previous:[1,4],far:1,web:[1,0,3],versu:2,now:[1,4,5],expos:4,singl:[1,4],interfer:2,autom:1,point:[1,4],had:4,except:[1,4],param:1,contractor:3,blog:5,eager:1,add:[1,4],other:[1,3,2,4],exercis:3,citizen:1,input:4,delv:5,save:1,thows:4,latest:[3,2],match:[1,4],build:[1,0,2,4],real:1,applic:[1,3,2,5,4],inspir:[1,5],varchar:[1,4],around:1,format:2,read:[1,0,4,5,3],boldli:4,credit:[3,0,5],subqueri:[1,4],arguabl:4,hibern:1,built:[1,4,2],leagu:3,emp_nam:[1,4],know:[1,4],elabor:1,world:[1,3],bit:5,characterist:1,color:1,formal:4,loss:1,semi:1,lost:4,arbitrari:4,should:[1,3,4],anyon:5,manual:1,resolv:[1,4],integ:[1,4],server:[1,3],collect:1,princip:4,api:1,either:1,have:[1,4,2,5],cascad:[1,4],popular:3,output:[1,4],check_constraint:1,record:[1,4],nest:1,decis:4,stdin:1,underli:1,www:3,revers:[1,4],old:[4,2],often:[1,4],deal:[1,3,4],buildabl:[],dilbert:[1,4],interact:[1,4,2],some:[1,3,4],back:[1,4],self:1,certain:1,intern:1,propos:1,unchang:[1,4],flush:1,proper:4,guarante:[1,4],successfulli:[3,4],rel:[1,4],librari:[1,2],autocommit:1,autoflush:1,txt:5,wendi:[1,4],scala:4,"function":[1,4],though:[1,4,2],definit:[1,4],pars:4,per:4,harrington:5,pron:1,mathemat:1,leav:4,unit:[1,4],backref:1,ddl:[1,4],pattern:[1,2,5],foo:1,localhost:1,refer:[1,4],machin:3,core:[1,0,3],encourag:[4,2],object:[1,0,4,5,3],run:[1,3,2,4],power:1,quit:5,acronym:[1,4],word:1,inspect:[1,4],complet:[1,3,4],nosql:4,interfac:1,uncommit:4,broken:[1,3,2,4],step:[1,3,2,4],isn:4,emp2:1,prerequisit:[3,0,2],emp1:1,post:5,zzzeek:2,don:[1,4,2],relational_model:1,describ:[1,4],scenario:4,comparison:1,about:[1,4,5],pep:1,central:[1,4],usa:1,constraint:[1,4],column:[1,4],materi:3,commun:4,slightli:1,scott:1,page:4,degre:4,lifecycl:1,foreign_key_constraint:1,act:4,fals:1,commit:[1,4],dep_id:[1,4],disabl:1,produc:[1,4],block:[1,4],own:[1,4],effici:1,rudiment:2,subq:1,rudimentari:1,curiou:1,datatyp:4,within:[1,3,4],pragmat:4,bound:1,terminolog:1,due:4,down:4,hotli:4,pysqlit:2,right:[1,4],empti:4,sessionmak:1,contributor:3,chang:[1,4],pgbouncer:1,next:4,create_engin:1,your:2,durabl:[1,4],manag:[1,4],git:2,wai:[1,4],few:4,overus:1,execut:[1,4],support:2,iter:1,custom:[1,2],like:[1,4],start:[1,4,2],reli:4,formul:1,bayer:3,inner:1,strong:4,replac:1,forward:4,typic:[1,4],strictli:4,entir:[1,3,4],lambda:1,lowest:[1,4],creation:[1,5],form:[1,4],offer:1,tupl:1,subscrib:3,transat:4,continu:4,content:[0,2,4],sqlalchemi:[0,1,2,3,4,5],link:[1,4],gain:2,atom:[1,4],placement:1,line:[1,4],highest:4,"true":[1,4],freenod:3,"__get__":1,count:[1,4],succe:4,made:[1,4],largest:1,consist:[1,4],possibl:[1,4,2],clearli:5,wish:1,access:[1,4,2,5],dml:[1,0,4],displai:4,lead:1,insert:[1,4],below:[1,4],unusu:4,those:[1,3,2,4],unlik:4,foreignkei:1,otherwis:4,embed:1,strategi:5,similar:[1,4],emit:[1,4],boundari:1,serializ:4,classif:1,featur:[1,4,2],creat:[1,4,2],classic:[1,5],retriev:[1,4],"abstract":[1,3],threadloc:1,meaningless:4,doesn:[1,4],descriptor:1,strongli:[4,2],chanc:4,plu:1,intro:1,exist:[1,4],file:[1,2,5],request:1,encompass:4,face:4,check:[1,4],fill:1,assembl:[4,5],denot:1,mutual:1,misunderstood:[1,4],reject:4,titl:5,user:1,when:[1,4],detail:[1,3,5],virtual:3,orient:5,"_codd":1,field:[1,4],valid:[1,4],role:1,rdbm:[1,4],rememb:4,varieti:[1,4],test:[1,3,4],tech:1,you:[1,4],roll:4,architectur:[1,5],virtualenv:2,draw:4,relat:[1,0,4,3],intend:1,registri:1,sprawl:5,profession:5,sequenc:1,improv:4,googl:3,meaning:4,scale:4,consid:[1,4],sql:[1,3,5,4],throughout:[1,4],hat:4,peac:4,pool:1,deserv:3,reduc:[1,4],bitbucket:2,receiv:[1,3,4],sphinx:2,faster:4,vice:1,directori:2,accept:4,reliabl:1,martin:1,multiversion_concurrency_control:1,rule:[1,4],reciev:1,candidate_kei:1,ignor:1,invok:[1,4],time:[1,3,4],sai:1},objtypes:{},titles:["PyCon 2013 - Introduction to SQLAlchemy","Glossary","Package Setup","Front Matter","Relational Database Review","Further Reading"],objnames:{},filenames:["index","glossary","setup","front","relational","reading"]})

handout/setup.html

 <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline">¶</a></h2>
 <p>This package contains:</p>
 <ul class="simple">
-<li>student handout, buildable as HTML, PDF, or other formats via <a class="reference external" href="http://sphinx-doc.org/">Sphinx</a> , in <tt class="docutils literal"><span class="pre">handout/</span></tt></li>
+<li>student handout built as a PDF file <tt class="docutils literal"><span class="pre">handout.pdf</span></tt>, as well as
+an HTML layout starting at <tt class="docutils literal"><span class="pre">handout/index.html</span></tt>.</li>
+<li><a class="reference external" href="http://sphinx-doc.org/">Sphinx</a> source files for the handout in <tt class="docutils literal"><span class="pre">handout/source</span></tt>.  Those
+familiar with Sphinx can build the handout document in other formats
+using the makefile <tt class="docutils literal"><span class="pre">handout/Makefile</span></tt>.</li>
 <li>Interactive Python &#8220;slide runner&#8221; application, which
 is essentially a customized <a class="reference external" href="http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop">REPL</a>
 that can step through segments of a Python script</li>
 <p>The most recent version of this package is available using git:</p>
 <div class="highlight-python"><pre>git clone https://bitbucket.org/zzzeek/pycon2013_student_package.git</pre>
 </div>
+<p>While git is preferred so that the package can easily be updated,
+those who don&#8217;t have git installed can also download the file
+directly as a .zip file via
+<a class="reference external" href="https://bitbucket.org/zzzeek/pycon2013_student_package/get/master.zip">https://bitbucket.org/zzzeek/pycon2013_student_package/get/master.zip</a>.</p>
 </div>
 <div class="section" id="building-the-documentation-handout">
 <h2>Building the Documentation Handout<a class="headerlink" href="#building-the-documentation-handout" title="Permalink to this headline">¶</a></h2>

handout/source/setup.rst

 
 This package contains:
 
-* student handout, buildable as HTML, PDF, or other formats via Sphinx_	, in ``handout/``
+* student handout built as a PDF file ``handout.pdf``, as well as
+  an HTML layout starting at ``handout/index.html``.
+
+* Sphinx_ source files for the handout in ``handout/source``.  Those
+  familiar with Sphinx can build the handout document in other formats
+  using the makefile ``handout/Makefile``.
 
 * Interactive Python "slide runner" application, which
   is essentially a customized `REPL <http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
 
 	git clone https://bitbucket.org/zzzeek/pycon2013_student_package.git
 
+While git is preferred so that the package can easily be updated,
+those who don't have git installed can also download the file
+directly as a .zip file via
+https://bitbucket.org/zzzeek/pycon2013_student_package/get/master.zip.
+
 Building the Documentation Handout
 ==================================