The Pyramid Web Framework
Free

The Pyramid Web Framework

By Chris McDonough
Free
Book Description

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.
Table of Contents
  • 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
    You May Also Like
    Also Available On
    Categories
    Curated Lists