the shelve database although shelves can also store simpler object types such as lists and dictionariesclass instances allow us to combine both data and behavior for our stored items in senseinstance attributes and class methods take the place of records and processing programs in more traditional schemes other database options at this pointwe have full-fledged database systemour classes simultaneously implement record data and record processingand they encapsulate the implementation of the behavior and the python pickle and shelve modules provide simple ways to store our database persistently between program executions this is not relational database (we store objectsnot tablesand queries take the form of python object processing code)but it is sufficient for many kinds of programs if we need more functionalitywe could migrate this application to even more powerful tools for exampleshould we ever need full-blown sql query supportthere are interfaces that allow python scripts to communicate with relational databases such as mysqlpostgresqland oracle in portable ways orms (object relational mapperssuch as sqlobject and sqlalchemy offer another approach which retains the python class viewbut translates it to and from relational database tables--in sense providing the best of both worldswith python class syntax on topand enterprise-level databases underneath moreoverthe open source zodb system provides more comprehensive object database for pythonwith support for features missing in shelvesincluding concurrent updatestransaction commits and rollbacksautomatic updates on in-memory component changesand more we'll explore these more advanced third-party tools in for nowlet' move on to putting good face on our system "buses considered harmfulover the yearspython has been remarkably well supported by the volunteer efforts of both countless individuals and formal organizations todaythe nonprofit python software foundation (psfoversees python conferences and other noncommercial activities the psf was preceded by the psaa group that was originally formed in response to an early thread on the python newsgroup that posed the semiserious question"what would happen if guido was hit by bus?these dayspython creator guido van rossum is still the ultimate arbiter of proposed python changes he was officially anointed the bdfl--benevolent dictator for life-of python at the first python conference and still makes final yes and no decisions on language changes (and apart from ' deliberate incompatibilitieshas usually said noa good thing in the programming languages domainbecause python tends to change slowly and in backward-compatible ways sneak preview