The Pyramid Web Framework
Chris McDonough
Computers & Technology
The Pyramid Web Framework
Free
Description
Contents
Reviews

Pyramid is a small, fast, down-to-earth Python web framework. It is developed as part of the Pylons Project. It is licensed under a BSD-like license.


This book is divided into three major parts:

  1. Narrative Documentation


    This is documentation which describes Pyramid concepts in narrative form, written in a largely conversational tone. Each narrative documentation chapter describes an isolated Pyramid concept. You should be able to get useful information out of the narrative chapters if you read them out-of-order, or when you need only a reminder about a particular topic while you’re developing an application.
  2. Tutorials


    Each tutorial builds a sample application or implements a set of concepts with a sample; it then describes the application or concepts in terms of the sample. You should read the tutorials if you want a guided tour of Pyramid.
  3. API Documentation


    Comprehensive reference material for every public API exposed by Pyramid. The API documentation is organized alphabetically by module name.

This is version 1.5.1; The Pyramid Documentation web page is on the Pylons project website.
Language
English
ISBN
Unknown
The Pyramid Web Framework
Copyright, Trademarks, and Attributions
Attributions
Copyright, Trademarks, and Attributions
Print Production
Contacting The Publisher
HTML Version and Source Code
Typographical Conventions
Pyramid Introduction
What Makes Pyramid Unique
What Makes Pyramid Unique
Single-file applications
Decorator-based configuration
URL generation
Static file serving
Fully Interactive Development
Debugging settings
Add-ons
Class-based and function-based views
Asset specifications
Extensible templating
Rendered views can return dictionaries
Event system
Built-in internationalization
HTTP caching
Sessions
Speed
Exception views
No singletons
View predicates and many views per route
Transaction management
Configuration conflict detection
Configuration extensibility
Flexible authentication and authorization
Traversal
Tweens
View response adapters
“Global” response object
Automating repetitive configuration
Programmatic Introspection
Python 3 Compatibility
Testing
Support
Documentation
Pyramid Introduction
What Is The Pylons Project?
Pyramid and Other Web Frameworks
Installing Pyramid
Before You Install
Before You Install
For Mac OS X Users
If You Don't Yet Have A Python Interpreter (UNIX)
If You Don't Yet Have A Python Interpreter (Windows)
Installing Pyramid on a UNIX System
Installing Pyramid on a UNIX System
Installing Setuptools
Installing the virtualenv Package
Creating the Virtual Python Environment
Installing Pyramid Into the Virtual Python Environment
Installing Pyramid
Installing Pyramid on a Windows System
What Gets Installed
Creating Your First Pyramid Application
Hello World
Hello World
Imports
View Callable Declarations
Application Configuration
Configurator Construction
Adding Configuration
WSGI Application Creation
WSGI Application Serving
Conclusion
References
Creating Your First Pyramid Application
Application Configuration
Imperative Configuration
Declarative Configuration
Summary
Application Configuration
Creating a Pyramid Project
Scaffolds Included with Pyramid
Creating the Project
Installing your Newly Created Project for Development
Running The Tests For Your Application
Running The Project Application
Running The Project Application
Reloading Code
Viewing the Application
Viewing the Application
The Debug Toolbar
The Project Structure
The MyProject Project
The MyProject Project
development.ini
production.ini
MANIFEST.in
setup.py
The myproject Package
The myproject Package
__init__.py
views.py
static
templates/mytemplate.pt
tests.py
Creating a Pyramid Project
Modifying Package Structure
Using the Interactive Shell
What Is This pserve Thing
Using an Alternate WSGI Server
Startup
The Startup Process
Deployment Settings
Startup
Request Processing
URL Dispatch
High-Level Operational Overview
Route Configuration
Route Configuration
Configuring a Route to Match a View
Route Pattern Syntax
Route Declaration Ordering
Route Configuration Arguments
Route Matching
Route Matching
The Matchdict
The Matched Route
Routing Examples
Routing Examples
Example 1
Example 2
Example 3
Matching the Root URL
Generating Route URLs
Static Routes
External Routes
Redirecting to Slash-Appended Routes
Debugging Route Matching
Using a Route Prefix to Compose Applications
Custom Route Predicates
Route Factories
Using Pyramid Security With URL Dispatch
Route View Callable Registration and Lookup Details
References
URL Dispatch
Views
View Callables
Defining a View Callable as a Function
Defining a View Callable as a Class
View Callable Responses
Using Special Exceptions In View Callables
Using Special Exceptions In View Callables
HTTP Exceptions
How Pyramid Uses HTTP Exceptions
Custom Exception Views
Using a View Callable to do an HTTP Redirect
Handling Form Submissions in View Callables (Unicode and Character Set Issues)
Alternate View Callable Argument/Calling Conventions
Passing Configuration Variables to a View
Pylons-1.0-Style “Controller” Dispatch
Views
Renderers
Writing View Callables Which Use a Renderer
Built-In Renderers
Built-In Renderers
string: String Renderer
JSON Renderer
JSONP Renderer
Varying Attributes of Rendered Responses
Adding and Changing Renderers
Adding and Changing Renderers
Adding a New Renderer
Adding a Default Renderer
Changing an Existing Renderer
Overriding A Renderer At Runtime
Renderers
Templates
Using Templates Directly
System Values Used During Rendering
Templates Used as Renderers via Configuration
Debugging Templates
Automatically Reloading Templates
Available Add-On Template System Bindings
Templates
View Configuration
Mapping a Resource or URL Pattern to a View Callable
Mapping a Resource or URL Pattern to a View Callable
View Configuration Parameters
Adding View Configuration Using the @view_config Decorator
Adding View Configuration Using add_view()
@view_defaults Class Decorator
@view_defaults Class Decorator
Configuring View Security
NotFound Errors
Influencing HTTP Caching
Debugging View Configuration
View Configuration
Static Assets
Understanding Asset Specifications
Serving Static Assets
Serving Static Assets
Generating Static Asset URLs
Advanced: Serving Static Assets Using a View Callable
Advanced: Serving Static Assets Using a View Callable
Root-Relative Custom Static View (URL Dispatch Only)
Registering A View Callable to Serve a “Static” Asset
Overriding Assets
Overriding Assets
The override_asset API
Static Assets
Request and Response Objects
Request
Request
Special Attributes Added to the Request by Pyramid
URLs
Methods
Unicode
Multidict
Dealing With A JSON-Encoded Request Body
Cleaning Up After a Request
More Details
Response
Response
Headers
Instantiating the Response
Exception Responses
More Details
Request and Response Objects
Sessions
Using The Default Session Factory
Using a Session Object
Using Alternate Session Factories
Creating Your Own Session Factory
Flash Messages
Flash Messages
Using the session.flash Method
Using the session.pop_flash Method
Using the session.peek_flash Method
Preventing Cross-Site Request Forgery Attacks
Preventing Cross-Site Request Forgery Attacks
Using the session.get_csrf_token Method
Checking CSRF Tokens Manually
Checking CSRF Tokens With A View Predicate
Using the session.new_csrf_token Method
Sessions
Using Events
Configuring an Event Listener Imperatively
Configuring an Event Listener Using a Decorator
An Example
Creating Your Own Events
Using Events
Environment Variables and .ini File Settings
Reloading Templates
Reloading Assets
Debugging Authorization
Debugging Not Found Errors
Debugging Route Matching
Preventing HTTP Caching
Debugging All
Reloading All
Default Locale Name
Including Packages
Including Packages
pyramid.includes vs. pyramid.config.Configurator.include()
Explicit Tween Configuration
Explicit Tween Configuration
PasteDeploy Configuration vs. Plain-Python Configuration
Examples
Understanding the Distinction Between reload_templates and reload_assets
Adding A Custom Setting
Environment Variables and .ini File Settings
Logging
Logging Configuration
Sending Logging Messages
Filtering log messages
Advanced Configuration
Logging Exceptions
Request Logging with Paste's TransLogger
Logging
PasteDeploy Configuration Files
PasteDeploy
PasteDeploy
Entry Points and PasteDeploy .ini Files
[DEFAULT] Section of a PasteDeploy .ini File
PasteDeploy Configuration Files
Command-Line Pyramid
Displaying Matching Views for a Given URL
The Interactive Shell
The Interactive Shell
Extending the Shell
IPython or bpython
Displaying All Application Routes
Displaying “Tweens”
Invoking a Request
Using Custom Arguments to Python when Running p* Scripts
Showing All Installed Distributions and their Versions
Writing a Script
Writing a Script
Changing the Request
Cleanup
Setting Up Logging
Making Your Script into a Console Script
Command-Line Pyramid
Internationalization and Localization
Creating a Translation String
Creating a Translation String
Using The TranslationString Class
Using the TranslationStringFactory Class
Working With gettext Translation Files
Working With gettext Translation Files
Installing Lingua and Gettext
Extracting Messages from Code and Templates
Initializing a Message Catalog File
Updating a Catalog File
Compiling a Message Catalog File
Using a Localizer
Using a Localizer
Performing a Translation
Performing a Pluralization
Obtaining the Locale Name for a Request
Performing Date Formatting and Currency Formatting
Chameleon Template Support for Translation Strings
Mako Pyramid I18N Support
Localization-Related Deployment Settings
“Detecting” Available Languages
Activating Translation
Activating Translation
Adding a Translation Directory
Setting the Locale
Locale Negotiators
Locale Negotiators
The Default Locale Negotiator
Using a Custom Locale Negotiator
Internationalization and Localization
Virtual Hosting
Hosting an Application Under a URL Prefix
Virtual Root Support
Further Documentation and Examples
Virtual Hosting
Unit, Integration, and Functional Testing
Test Set Up and Tear Down
Test Set Up and Tear Down
Test setup using a context manager
What?
Using the Configurator and pyramid.testing APIs in Unit Tests
Creating Integration Tests
Creating Functional Tests
Unit, Integration, and Functional Testing
Resources
Defining a Resource Tree
Location-Aware Resources
Generating The URL Of A Resource
Generating The URL Of A Resource
Overriding Resource URL Generation
Generating the Path To a Resource
Finding a Resource by Path
Obtaining the Lineage of a Resource
Determining if a Resource is In The Lineage of Another Resource
Finding the Root Resource
Resources Which Implement Interfaces
Finding a Resource With a Class or Interface in Lineage
Pyramid API Functions That Act Against Resources
Resources
Hello Traversal World
Example requests
Hello Traversal World
Much Ado About Traversal
URL Dispatch
Historical Refresher
Traversal (aka Resource Location)
What Is a “Resource”?
View Lookup
Use Cases
Much Ado About Traversal
Traversal
Traversal Details
The Resource Tree
The Traversal Algorithm
The Traversal Algorithm
A Description of The Traversal Algorithm
Traversal Algorithm Examples
Using Resource Interfaces In View Configuration
References
Traversal
Security
Enabling an Authorization Policy
Enabling an Authorization Policy
Enabling an Authorization Policy Imperatively
Protecting Views with Permissions
Protecting Views with Permissions
Setting a Default Permission
Assigning ACLs to your Resource Objects
Elements of an ACL
Special Principal Names
Special Permissions
Special ACEs
ACL Inheritance and Location-Awareness
Changing the Forbidden View
Debugging View Authorization Failures
Debugging Imperative Authorization Failures
Creating Your Own Authentication Policy
Creating Your Own Authorization Policy
Admonishment Against Secret-Sharing
Security
Combining Traversal and URL Dispatch
A Review of Non-Hybrid Applications
A Review of Non-Hybrid Applications
URL Dispatch Only
Traversal Only
Hybrid Applications
Hybrid Applications
The Root Object for a Route Match
Using *traverse In a Route Pattern
Using the traverse Argument In a Route Definition
Using *subpath in a Route Pattern
Corner Cases
Corner Cases
Registering a Default View for a Route That Has a view Attribute
Binding Extra Views Against a Route Configuration that Doesn't Have a *traverse Element In Its Pattern
Generating Hybrid URLs
Combining Traversal and URL Dispatch
Invoking a Subrequest
Using Hooks
Changing the Not Found View
Changing the Forbidden View
Changing the Request Factory
Adding Methods or Properties to Request Object
Using The Before Render Event
Using Response Callbacks
Using Finished Callbacks
Changing the Traverser
Changing How pyramid.request.Request.resource_url() Generates a URL
Changing How Pyramid Treats View Responses
Using a View Mapper
Registering Configuration Decorators
Registering Tweens
Registering Tweens
Creating a Tween
Registering an Implicit Tween Factory
Suggesting Implicit Tween Ordering
Explicit Tween Ordering
Tween Conflicts and Ordering Cycles
Displaying Tween Ordering
Adding A Third Party View, Route, or Subscriber Predicate
Adding A Third Party View, Route, or Subscriber Predicate
View and Route Predicates
Subscriber Predicates
Using Hooks
Pyramid Configuration Introspection
Using the Introspector
Introspectable Objects
Pyramid Introspection Categories
Introspection in the Toolbar
Disabling Introspection
Pyramid Configuration Introspection
Extending An Existing Pyramid Application
The Difference Between “Extensible” and “Pluggable” Applications
Rules for Building An Extensible Application
Rules for Building An Extensible Application
Fundamental Plugpoints
Extending an Existing Application
Extending an Existing Application
If The Application Has Configuration Decorations
Extending the Application
Overriding Views
Overriding Routes
Overriding Assets
Extending An Existing Pyramid Application
Advanced Configuration
Conflict Detection
Conflict Detection
Manually Resolving Conflicts
Automatic Conflict Resolution
Methods Which Provide Conflict Detection
Including Configuration from External Sources
Two-Phase Configuration
More Information
Advanced Configuration
Extending Pyramid Configuration
Adding Methods to the Configurator via add_directive
Using config.action in a Directive
Adding Configuration Introspection
Adding Configuration Introspection
Introspectable Relationships
Extending Pyramid Configuration
Creating Pyramid Scaffolds
Basics
Supporting Older Pyramid Versions
Examples
Creating Pyramid Scaffolds
Upgrading Pyramid
Deprecation and Removal Policy
Consulting the Change History
Testing Your Application Under a New Pyramid Release
My Application Doesn't Have Any Tests or Has Few Tests
Upgrading to the Very Latest Pyramid Release
Upgrading Pyramid
Thread Locals
Why and How Pyramid Uses Thread Local Variables
Why You Shouldn't Abuse Thread Locals
Thread Locals
Using the Zope Component Architecture in Pyramid
Using the ZCA Global API in a Pyramid Application
Using the ZCA Global API in a Pyramid Application
Disusing the Global ZCA API
Enabling the ZCA Global API by Using hook_zca
Enabling the ZCA Global API by Using The ZCA Global Registry
Using the Zope Component Architecture in Pyramid
SQLAlchemy + URL Dispatch Wiki Tutorial
SQLAlchemy + URL Dispatch Wiki Tutorial
Background
Design
Overall
Models
Views
Security
Summary
Design
Installation
Before You Begin
Making a Project
Installing the Project in Development Mode
Running the Tests
Exposing Test Coverage Information
Initializing the Database
Starting the Application
Decisions the alchemy Scaffold Has Made For You
Installation
Basic Layout
Application Configuration with __init__.py
View Declarations via views.py
Content Models with models.py
Basic Layout
Defining the Domain Model
Making Edits to models.py
Changing scripts/initializedb.py
Installing the Project and re-initializing the Database
Viewing the Application in a Browser
Defining the Domain Model
Defining Views
Declaring Dependencies in Our setup.py File
Running setup.py develop
Changing the views.py File
Adding Templates
Adding Routes to __init__.py
Viewing the Application in a Browser
Defining Views
Adding Authorization
Access Control
Login, Logout
Seeing Our Changes
Viewing the Application in a Browser
Adding Authorization
Adding Tests
Testing the Models
Testing the Views
Functional tests
Viewing the results of all our edits to tests.py
Running the Tests
Adding Tests
Distributing Your Application
ZODB + Traversal Wiki Tutorial
ZODB + Traversal Wiki Tutorial
Background
Design
Overall
Models
Views
Security
Summary
Design
Installation
Preparation
Make a Project
Install the Project in “Development Mode”
Run the Tests
Expose Test Coverage Information
Start the Application
Visit the Application in a Browser
Decisions the zodb Scaffold Has Made For You
Installation
Basic Layout
Application Configuration with __init__.py
Resources and Models with models.py
Views With views.py
Configuration in development.ini
Basic Layout
Defining the Domain Model
Delete the Database
Edit models.py
Look at the Result of Our Edits to models.py
View the Application in a Browser
Defining the Domain Model
Defining Views
Declaring Dependencies in Our setup.py File
Adding View Functions
Viewing the Result of all Our Edits to views.py
Adding Templates
Viewing the Application in a Browser
Defining Views
Adding Authorization
Access Control
Login, Logout
Seeing Our Changes
Viewing the Application in a Browser
Adding Authorization
Adding Tests
Test the Models
Test the Views
Functional tests
View the results of all our edits to tests.py
Running the Tests
Adding Tests
Distributing Your Application
Running a Pyramid Application under mod_wsgi
pyramid.authentication
Authentication Policies
Helper Classes
pyramid.authentication
pyramid.authorization
pyramid.compat
pyramid.config
pyramid.decorator
pyramid.events
Functions
Event Types
pyramid.events
pyramid.exceptions
pyramid.httpexceptions
HTTP Exceptions
pyramid.httpexceptions
pyramid.i18n
pyramid.interfaces
Event-Related Interfaces
Other Interfaces
pyramid.interfaces
pyramid.location
pyramid.paster
pyramid.path
pyramid.registry
pyramid.renderers
pyramid.request
pyramid.response
Functions
pyramid.response
pyramid.scaffolds
pyramid.scripting
pyramid.security
Authentication API Functions
Authorization API Functions
Constants
Return Values
pyramid.security
pyramid.session
pyramid.settings
pyramid.static
pyramid.testing
pyramid.threadlocal
pyramid.traversal
pyramid.tweens
pyramid.url
pyramid.view
pyramid.wsgi
What's New In Pyramid 1.5
Major Backwards Incompatibilities
Feature Additions
Other Backwards Incompatibilities
Deprecations
Documentation Enhancements
Scaffolding Enhancements
Dependency Changes
What's New In Pyramid 1.5
What's New In Pyramid 1.4
Major Feature Additions
Major Feature Additions
Third-Party Predicates
Easy Custom JSON Serialization
Partial Mako and Chameleon Template Renderings
Subrequest Support
Minor Feature Additions
Backwards Incompatibilities
Deprecations
Documentation Enhancements
Dependency Changes
What's New In Pyramid 1.4
What's New In Pyramid 1.3
Major Feature Additions
Major Feature Additions
Python 3 Compatibility
The paster Command Has Been Replaced
paste.httpserver replaced by waitress in Scaffolds
Compatibility Helper Library
Introspection
@view_defaults Decorator
Extending a Request without Subclassing
Not Found and Forbidden View Helpers
Minor Feature Additions
Backwards Incompatibilities
Deprecations
Known Issues
Documentation Enhancements
Dependency Changes
Scaffolding Changes
What's New In Pyramid 1.3
What's New In Pyramid 1.2
Major Feature Additions
Major Feature Additions
Debug Toolbar
route_prefix Argument to include
Tweens
Scaffolding Changes
Minor Feature Additions
Deprecations
Backwards Incompatibilities
Behavior Differences
Documentation Enhancements
Dependency Changes
What's New In Pyramid 1.2
What's New In Pyramid 1.1
Terminology Changes
Major Feature Additions
Major Feature Additions
request.response
paster pviews
Static Routes
Default HTTP Exception View
http_cache
Easier Scripting Writing
Minor Feature Additions
Backwards Incompatibilities
Deprecations and Behavior Differences
Dependency Changes
Documentation Enhancements
What's New In Pyramid 1.1
What's New In Pyramid 1.0
Major Feature Additions
Major Feature Additions
New Name and Branding
BFG Conversion Script
Scaffold Improvements
Terminology Changes
Better Platform Compatibility and Support
Sessions
Mako
URL Dispatch
ZCML Externalized
Imperative Two-Phase Configuration
Better Support for Global Template Variables During Rendering
View Mappers
Testing Support Improvements
Authentication Support Improvements
Documentation Improvements
Minor Feature Additions
Backwards Incompatibilities
Deprecations and Behavior Differences
Dependency Changes
Documentation Enhancements
What's New In Pyramid 1.0
Pyramid Change History
Next release
1.5.1 (2014-05-31)
1.5 (2014-04-08)
1.5b1 (2014-02-08)
1.5b1 (2014-02-08)
Features
1.5a4 (2014-01-28)
1.5a4 (2014-01-28)
Features
Bug Fixes
1.5a3 (2013-12-10)
1.5a3 (2013-12-10)
Features
Bug Fixes
Documentation
Backwards Incompatibilities
Deprecations
Dependencies
1.5a2 (2013-09-22)
1.5a2 (2013-09-22)
Features
Bug Fixes
Backwards Incompatibilities
Deprecations
1.5a1 (2013-08-30)
1.5a1 (2013-08-30)
Features
Bug Fixes
Backwards Incompatibilities
1.4 (2012-12-18)
1.4 (2012-12-18)
Docs
1.4b3 (2012-12-10)
1.4b2 (2012-12-10)
1.4b2 (2012-12-10)
Docs
Backwards Incompatibilities
1.4b1 (2012-11-21)
1.4b1 (2012-11-21)
Features
Bug Fixes
Documentation
1.4a4 (2012-11-14)
1.4a4 (2012-11-14)
Features
Bug Fixes
Deprecations
Documentation
Internals
1.4a3 (2012-10-26)
1.4a3 (2012-10-26)
Bug Fixes
Features
1.4a2 (2012-09-27)
1.4a2 (2012-09-27)
Bug Fixes
Features
Documentation
1.4a1 (2012-09-16)
1.4a1 (2012-09-16)
Bug Fixes
Features
Deprecations
Backwards Incompatibilities
Documentation
Dependencies
1.3 (2012-03-21)
1.3 (2012-03-21)
Bug Fixes
1.3b3 (2012-03-17)
1.3b3 (2012-03-17)
Bug Fixes
Scaffolds
Documentation
1.3b2 (2012-03-02)
1.3b2 (2012-03-02)
Bug Fixes
1.3b1 (2012-02-26)
1.3b1 (2012-02-26)
Bug Fixes
Deprecations
1.3a9 (2012-02-22)
1.3a9 (2012-02-22)
Features
Backwards Incompatibilities
Deprecations
Bug Fixes
Documentation
1.3a8 (2012-02-19)
1.3a8 (2012-02-19)
Features
Backwards Incompatibilities
Documentation
Scaffolding
Dependencies
Internal
1.3a7 (2012-02-07)
1.3a7 (2012-02-07)
Features
Bug Fixes
Backwards Incompatibilities
Documentation
1.3a6 (2012-01-20)
1.3a6 (2012-01-20)
Features
Bug Fixes
1.3a5 (2012-01-09)
1.3a5 (2012-01-09)
Bug Fixes
Backwards Incompatibilities
1.3a4 (2012-01-05)
1.3a4 (2012-01-05)
Features
Bug Fixes
Backwards Incompatibilities
1.3a3 (2011-12-21)
1.3a3 (2011-12-21)
Features
Bug Fixes
Documentation
1.3a2 (2011-12-14)
1.3a2 (2011-12-14)
Features
Documentation
Backwards Incompatibilities
1.3a1 (2011-12-09)
1.3a1 (2011-12-09)
Features
Bug Fixes
Backwards Incompatibilities
Dependencies
Documentation
Scaffolds
1.2 (2011-09-12)
1.2 (2011-09-12)
Features
1.2b3 (2011-09-11)
1.2b3 (2011-09-11)
Bug Fixes
1.2b2 (2011-09-08)
1.2b2 (2011-09-08)
Bug Fixes
Documentation
1.2b1 (2011-09-08)
1.2b1 (2011-09-08)
Bug Fixes
Documentation
1.2a6 (2011-09-06)
1.2a6 (2011-09-06)
Bug Fixes
Internal
Behavior Differences
Scaffolds
1.2a5 (2011-09-04)
1.2a5 (2011-09-04)
Bug Fixes
Dependencies
1.2a4 (2011-09-02)
1.2a4 (2011-09-02)
Features
Dependencies
1.2a3 (2011-08-29)
1.2a3 (2011-08-29)
Bug Fixes
Internal
1.2a2 (2011-08-27)
1.2a2 (2011-08-27)
Bug Fixes
Features
1.2a1 (2011-08-24)
1.2a1 (2011-08-24)
Features
Internal
Deprecations
Backwards Incompatibilities
Documentation
Dependency Changes
Scaffolds
Bug Fixes
1.1 (2011-07-22)
1.1 (2011-07-22)
Features
Internals
Documentation
1.1b4 (2011-07-18)
1.1b4 (2011-07-18)
Documentation
Backwards Incompatibilities
Features
Bug Fixes
1.1b3 (2011-07-15)
1.1b3 (2011-07-15)
Features
Deprecations
Bug Fixes
1.1b2 (2011-07-13)
1.1b2 (2011-07-13)
Features
Behavior Changes
Bug Fixes
Documentation
1.1b1 (2011-07-10)
1.1b1 (2011-07-10)
Features
Bug Fixes
Documentation
Behavior Changes
1.1a4 (2011-07-01)
1.1a4 (2011-07-01)
Bug Fixes
Features
Deprecations
Documentation
1.1a3 (2011-06-26)
1.1a3 (2011-06-26)
Features
Bug fixes
1.1a2 (2011-06-22)
1.1a2 (2011-06-22)
Bug Fixes
Backwards Incompatibilities
1.1a1 (2011-06-20)
1.1a1 (2011-06-20)
Documentation
Features
Bug Fixes
Deprecations
Behavior Changes
Backwards Incompatibilities
Dependencies
1.0 (2011-01-30)
1.0 (2011-01-30)
Documentation
Bug Fixes
1.0b3 (2011-01-28)
1.0b3 (2011-01-28)
Bug Fixes
Documentation
1.0b2 (2011-01-24)
1.0b2 (2011-01-24)
Bug Fixes
1.0b1 (2011-01-21)
1.0b1 (2011-01-21)
Features
Bug Fixes
Documentation
Deprecations
Backwards Incompatibilities
Paster Templates
1.0a10 (2011-01-18)
1.0a10 (2011-01-18)
Bug Fixes
Backwards Incompatibilities
Features
Paster Templates
Documentation
Deprecations
1.0a9 (2011-01-08)
1.0a9 (2011-01-08)
Bug Fixes
Features
Backwards Incompatibilities
Documentation
Internals
1.0a8 (2010-12-27)
1.0a8 (2010-12-27)
Bug Fixes
Features
Paster Templates
Documentation
Pyramid Change History
1.0a7 (2010-12-20)
1.0a7 (2010-12-20)
Terminology Changes
Bug Fixes
Features
Environment
Documentation
Paster Templates
Dependencies
1.0a6 (2010-12-15)
1.0a6 (2010-12-15)
Bug Fixes
Documentation
1.0a5 (2010-12-14)
1.0a5 (2010-12-14)
Features
Dependencies
Bug Fixes
Documentation
Deprecations
1.0a4 (2010-11-21)
1.0a4 (2010-11-21)
Features
Documentation
Bug Fixes
Backwards Incompatibilities
Deprecations
Documentation
Internal
1.0a3 (2010-11-16)
1.0a3 (2010-11-16)
Features
Bug Fixes
Documentation
Deprecations
Behavior Differences
1.0a2 (2010-11-09)
1.0a2 (2010-11-09)
Documentation
1.0a1 (2010-11-05)
1.0a1 (2010-11-05)
Features (delta from BFG 1.3)
Documentation (delta from BFG 1.3)
Backwards Incompatibilities (with BFG 1.3)
repoze.bfg Change History (previous name for Pyramid)
repoze.bfg Change History (previous name for Pyramid)
1.3b1 (2010-10-25)
1.3b1 (2010-10-25)
Features
Bug Fixes
Documentation
1.3a15 (2010-09-30)
1.3a15 (2010-09-30)
Features
1.3a14 (2010-09-14)
1.3a14 (2010-09-14)
Bug Fixes
Features
Requirements
Backwards Incompatibilities
Errata
1.3a13 (2010-09-14)
1.3a13 (2010-09-14)
Bug Fixes
Features
Backwards Incompatibilities
Deprecations
Documentation
1.3a12 (2010-09-08)
1.3a12 (2010-09-08)
Bug Fixes
Features
Documentation
Paster Templates
Dependencies
Internal
1.3a11 (2010-09-05)
1.3a11 (2010-09-05)
Bug Fixes
1.3a10 (2010-09-05)
1.3a10 (2010-09-05)
Features
Bug Fixes
Backwards Incompatibilities
Documentation
Internal
1.3a9 (2010-08-22)
1.3a9 (2010-08-22)
Features
Backwards Incompatibilities
Documentation
Internal
1.3a8 (2010-08-08)
1.3a8 (2010-08-08)
Features
Documentation
Internal
1.3a7 (2010-08-01)
1.3a7 (2010-08-01)
Features
Bug Fixes
Backwards Incompatibilities
Documentation
1.3a6 (2010-07-25)
1.3a6 (2010-07-25)
Features
Documentation
Bug Fixes
Deprecations
Backwards Incompatibilities
1.3a5 (2010-07-14)
1.3a5 (2010-07-14)
Features
Bug Fixes
Documentation
Backwards Incompatibilities
1.3a4 (2010-07-03)
1.3a4 (2010-07-03)
Features
Documentation
Internal
1.3a3 (2010-05-01)
1.3a3 (2010-05-01)
Paster Templates
Documentation
1.3a2 (2010-04-28)
1.3a2 (2010-04-28)
Features
Backwards Incompatibilities
Behavior Changes
Documentation
1.3a1 (2010-04-26)
1.3a1 (2010-04-26)
Features
ZCML
Deprecations
Dependencies
Internal
Documentation
Paster Templates
Licensing
1.2 (2010-02-10)
1.2b6 (2010-02-06)
1.2b6 (2010-02-06)
Backwards Incompatibilities
Bug Fixes
1.2b5 (2010-02-04)
1.2b5 (2010-02-04)
Bug Fixes
1.2b4 (2010-02-03)
1.2b4 (2010-02-03)
Documentation
Bug Fixes
Features
Backwards Incompatibilities
Dependencies
1.2b3 (2010-01-24)
1.2b3 (2010-01-24)
Bug Fixes
Features
Internal
1.2b2 (2010-01-21)
1.2b2 (2010-01-21)
Bug Fixes
Documentation
Dependencies
1.2b1 (2010-01-18)
1.2b1 (2010-01-18)
Bug Fixes
Features
Documentation
1.2a11 (2010-01-05)
1.2a11 (2010-01-05)
Bug Fixes
Features
1.2a10 (2010-01-04)
1.2a10 (2010-01-04)
Features
Documentation and Paster Templates
Documentation Licensing
1.2a9 (2009-12-27)
1.2a9 (2009-12-27)
Documentation Licensing
Documentation
1.2a8 (2009-12-24)
1.2a8 (2009-12-24)
Features
Bug Fixes
Documentation
Deprecations
1.2a7 (2009-12-20)
1.2a7 (2009-12-20)
Features
Internal
Documenation
1.2a6 (2009-12-18)
1.2a6 (2009-12-18)
Features
Documentation
Bug Fixes
1.2a5 (2009-12-10)
1.2a5 (2009-12-10)
Features
Internals
Documentation
Dependencies
1.2a4 (2009-12-07)
1.2a4 (2009-12-07)
Features
Bug Fixes
1.2a3 (2009-12-02)
1.2a3 (2009-12-02)
Bug Fixes
Backwards Incompatibilities
1.2a2 (2009-11-29)
1.2a2 (2009-11-29)
Bug Fixes
Documentation
1.2a1 (2009-11-28)
1.2a1 (2009-11-28)
Features
Documentation
Bug Fixes
Internals
Backwards Incompatibilites
Deprecations
Dependencies
1.1.1 (2009-11-21)
1.1.1 (2009-11-21)
Bug Fixes
1.1 (2009-11-15)
1.1 (2009-11-15)
Internals
Documentation
1.1b4 (2009-11-12)
1.1b4 (2009-11-12)
Bug Fixes
Documentation
Templates
Deprecations
1.1b3 (2009-11-06)
1.1b3 (2009-11-06)
Features
Bug Fixes
Backwards Incompatibilities
1.1b2 (2009-11-02)
1.1b2 (2009-11-02)
Bug Fixes
Documentation
Features
Dependencies
1.1b1 (2009-11-01)
1.1b1 (2009-11-01)
Bug Fixes
Documentation
Internal
1.1a9 (2009-10-31)
1.1a9 (2009-10-31)
Bug Fixes
Features
Documentation
Internal
Backwards Incompatibilities
1.1a8 (2009-10-27)
1.1a8 (2009-10-27)
Features
Bug Fixes
Documentation
Backwards Incompatibilities
Internal
1.1a7 (2009-10-18)
1.1a7 (2009-10-18)
Features
Documentation
Internal
1.1a6 (2009-10-15)
1.1a6 (2009-10-15)
Features
Documentation
Backwards Incompatibilities
Internal
1.1a5 (2009-10-10)
1.1a5 (2009-10-10)
Documentation
Features
Internal
Deprecations
Backwards Incompatibilities
1.1a4 (2009-09-23)
1.1a4 (2009-09-23)
Bug Fixes
Documentation
Features
Backwards Incompatibilities
Internal
1.1a3 (2009-09-16)
1.1a3 (2009-09-16)
Documentation
Features
Dependencies
Deprecations
Backwards Incompatibilities
1.1a2 (2009-09-14)
1.1a2 (2009-09-14)
Features
1.1a1 (2009-09-06)
1.1a1 (2009-09-06)
Bug Fixes
Features
Internal
Documentation
Deprecations
Backwards Incompatibilities
1.0.1 (2009-07-22)
1.0 (2009-07-05)
1.0b2 (2009-07-03)
1.0b1 (2009-07-02)
1.0b1 (2009-07-02)
Features
Documentation
1.0a9 (2009-07-01)
1.0a9 (2009-07-01)
Features
1.0a8 (2009-07-01)
1.0a8 (2009-07-01)
Deprecations
Features
Bug Fixes
1.0a7 (2009-06-30)
1.0a7 (2009-06-30)
Features
Documentation
Internal
1.0a6 (2009-06-29)
1.0a6 (2009-06-29)
Bug Fixes
1.0a5 (2009-06-28)
1.0a5 (2009-06-28)
Features
1.0a4 (2009-06-25)
1.0a4 (2009-06-25)
Features
Documentation
Bug Fixes
1.0a3 (2009-06-24)
1.0a3 (2009-06-24)
Implementation Changes
Bug Fixes
Documentation
Features
Backwards Incompatibilities
1.0a2 (2009-06-23)
1.0a2 (2009-06-23)
Bug Fixes
Features
Documentation
Backwards Incompatibilities
1.0a1 (2009-06-22)
1.0a1 (2009-06-22)
Features
Deprecations
Removals
Backwards Incompatibilities
Bug Fixes
Documentation
0.9.1 (2009-06-02)
0.9.1 (2009-06-02)
Features
Bug Fixes
Documentation
API Removals
0.9 (2009-06-01)
0.9 (2009-06-01)
Bug Fixes
Features
Removals
Documentation
0.9a8 (2009-05-31)
0.9a8 (2009-05-31)
Features
Bug Fixes
Deprecations
Renames
0.9a7 (2009-05-30)
0.9a7 (2009-05-30)
Features
0.9a6 (2009-05-29)
0.9a6 (2009-05-29)
Documentation
Features
0.9a5 (2009-05-28)
0.9a5 (2009-05-28)
Features
0.9a4 (2009-05-27)
0.9a4 (2009-05-27)
Bug Fixes
0.9a3 (2009-05-27)
0.9a3 (2009-05-27)
Features
Documentation
Deprecations
Deprecated Import Alias Removals
0.9a2 (2009-05-27)
0.9a2 (2009-05-27)
Features
Deprecations
0.9a1 (2009-5-27)
0.9a1 (2009-5-27)
Features
Backwards Incompatibilities
Deprecations
0.8.1 (2009-05-21)
0.8.1 (2009-05-21)
Features
0.8 (2009-05-18)
0.8 (2009-05-18)
Features
Deprecations
Backwards Incompatibilities
0.8a7 (2009-05-16)
0.8a7 (2009-05-16)
Backwards Incompatibilities
Documentation
Features
0.8a6 (2009-05-11)
0.8a6 (2009-05-11)
Features
Documentation
Bug Fixes
0.8a5 (2009-05-08)
0.8a5 (2009-05-08)
Features
Deprecations
0.8a4 (2009-05-04)
0.8a4 (2009-05-04)
Features
Backwards Incompatibilities
0.8a3 (2009-05-03)
0.8a3 (2009-05-03)
Features
0.8a2 (2009-05-02)
0.8a2 (2009-05-02)
Features
0.8a1 (2009-05-02)
0.8a1 (2009-05-02)
Deprecation Warning and Import Alias Removals
Features
Backwards Incompatibilities
0.7.1 (2009-05-01)
0.7.1 (2009-05-01)
Index-Related
Features
Backwards Incompatibilities
0.7.0 (2009-04-11)
0.7.0 (2009-04-11)
Bug Fixes
Features
Backwards Incompatibilities
Documentation
0.6.9 (2009-02-16)
0.6.9 (2009-02-16)
Bug Fixes
Features
Documentation
Implementation Changes
0.6.8 (2009-02-05)
0.6.8 (2009-02-05)
Backwards Incompatibilities
Bugfixes
Features
Implementation Changes
0.6.7 (2009-01-27)
0.6.7 (2009-01-27)
Features
Implementation Changes
0.6.6 (2009-01-26)
0.6.6 (2009-01-26)
Implementation Changes
0.6.5 (2009-01-26)
0.6.5 (2009-01-26)
Features
Behavior Changes
Implementation Changes
Bug Fixes
0.6.4 (2009-01-23)
0.6.4 (2009-01-23)
Backwards Incompatibilities
Implementation Changes
New Modules
0.6.3 (2009-01-19)
0.6.3 (2009-01-19)
Bug Fixes
Features
Deprecations
Implementation Changes
Documentation Additions
0.6.2 (2009-01-13)
0.6.2 (2009-01-13)
Features
Bug Fixes
Implementation Changes
New Modules
Behavior Changes
Deprecations
0.6.1 (2009-01-06)
0.6.1 (2009-01-06)
New Modules
Deprecations
Features
0.6 (2008-12-26)
0.6 (2008-12-26)
Backwards Incompatibilities
Other
0.5.6 (2008-12-18)
0.5.5 (2008-12-17)
0.5.5 (2008-12-17)
Backwards Incompatibilities
0.5.4 (2008-12-13)
0.5.4 (2008-12-13)
Backwards Incompatibilities
Bugfixes
Features
0.5.3 (2008-12-07)
0.5.2 (2008-12-05)
0.5.1 (2008-11-25)
0.5.0 (2008-11-18)
0.4.9 (2008-11-17)
0.4.8 (2008-11-12)
0.4.8 (2008-11-12)
Backwards Incompatibilities
0.4.7 (2008-11-11)
0.4.7 (2008-11-11)
Features
0.4.6 (2008-11-10)
0.4.6 (2008-11-10)
Bug Fixes
0.4.5 (2008-11-09)
0.4.5 (2008-11-09)
Features
0.4.4 (2008-11-08)
0.4.4 (2008-11-08)
Features
Deprecations
0.4.3 (2008-11-02)
0.4.3 (2008-11-02)
Bug Fixes
0.4.2 (2008-11-02)
0.4.2 (2008-11-02)
Features
Documentation
Bug Fixes
0.4.1 (2008-10-28)
0.4.1 (2008-10-28)
Bug Fixes
0.4.0 (2008-10-03)
0.4.0 (2008-10-03)
Docs
Features
Bug Fixes
Deprecations
Backwards incompatibilities
0.3.9 (2008-08-27)
0.3.9 (2008-08-27)
Features
Backwards incompatibilities
0.3.8 (2008-08-26)
0.3.8 (2008-08-26)
Docs
Bug fixes
Features
Deprecations
0.3.7 (2008-09-09)
0.3.7 (2008-09-09)
Features
Bug fixes
0.3.6 (2008-09-04)
0.3.6 (2008-09-04)
Features
Bug Fixes
0.3.5 (2008-09-01)
0.3.5 (2008-09-01)
Features
0.3.4 (2008-08-28)
0.3.4 (2008-08-28)
Backwards incompatibilities
Features
0.3.3 (2008-08-23)
0.3.2 (2008-08-23)
0.3.1 (2008-08-20)
0.3.0 (2008-08-16)
0.2.9 (2008-08-11)
0.2.8 (2008-08-11)
0.2.7 (2008-08-05)
0.2.6 (2008-07-31)
0.2.5 (2008-07-28)
0.2.4 (2008-07-27)
0.2.3 (2008-07-20)
0.2.2 (2008-07-20)
0.2.1 (2008-07-20)
0.2 (2008-07-19)
0.1 (2008-07-08)
Defending Pyramid's Design
Pyramid Provides More Than One Way to Do It
Pyramid Uses A Zope Component Architecture (“ZCA”) Registry
Pyramid Uses A Zope Component Architecture (“ZCA”) Registry
Problems
Ameliorations
Rationale
Conclusion
Pyramid “Encourages Use of ZCML”
Pyramid Does Traversal, And I Don't Like Traversal
Pyramid Does URL Dispatch, And I Don't Like URL Dispatch
Pyramid Views Do Not Accept Arbitrary Keyword Arguments
Pyramid Provides Too Few “Rails”
Pyramid Provides Too Many “Rails”
Pyramid Is Too Big
Pyramid Has Too Many Dependencies
Pyramid “Cheats” To Obtain Speed
Pyramid Gets Its Terminology Wrong (“MVC”)
Pyramid Applications are Extensible; I Don't Believe In Application Extensibility
Zope 3 Enforces “TTW” Authorization Checks By Default; Pyramid Does Not
Zope 3 Enforces “TTW” Authorization Checks By Default; Pyramid Does Not
Challenge
Defense
Pyramid Uses its Own HTTP Exception Class Hierarchy Rather Than webob.exc
Pyramid has Simpler Traversal Machinery than Does Zope
Microframeworks Have Smaller Hello World Programs
Microframeworks Have Smaller Hello World Programs
Application Programmers Don't Control The Module-Scope Codepath (Import-Time Side-Effects Are Evil)
Routes Need Relative Ordering
“Stacked Object Proxies” Are Too Clever / Thread Locals Are A Nuisance
Explicitly WSGI
Wrapping Up
Pyramid Doesn't Offer Pluggable Apps
Pyramid Has Zope Things In It, So It's Too Complex
Pyramid Has Zope Things In It, So It's Too Complex
Too Complex
Hate Zope
Love Simplicity
Other Challenges
Defending Pyramid's Design
The book hasn't received reviews yet.