diff options
| author | Chris McDonough <chrism@plope.com> | 2011-08-22 02:16:55 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2011-08-22 02:16:55 -0400 |
| commit | 3d338ea5737b7c113b17120b40684e2694cf3fa9 (patch) | |
| tree | 4bbca1ffb7dfcc1570c6c8d06884832b0be70237 | |
| parent | 6413015a8f5f4de675016f33640b483bb0ecb56f (diff) | |
| download | pyramid-3d338ea5737b7c113b17120b40684e2694cf3fa9.tar.gz pyramid-3d338ea5737b7c113b17120b40684e2694cf3fa9.tar.bz2 pyramid-3d338ea5737b7c113b17120b40684e2694cf3fa9.zip | |
- Use [app:main] instead of a pipeline in all scaffolds and tutorials
and narrative docs.
- Break out awkward description of PasteDeploy entry points from
project chapter into its own Paste chapter.
45 files changed, 223 insertions, 283 deletions
@@ -1,14 +1,11 @@ Pyramid TODOs ============= -Should-Have ------------ - -- Name WSGI app "main" instead of pipeline in scaffold configs? - Nice-to-Have ------------ +- Flesh out "paste" chapter. + - Move configuration-related stuff in "static" to config/views, from "settings" to config/settings, "renderers" to config/rendering, "asset" to config/assets, and possibly mako/chameleon rendering stuff to diff --git a/docs/index.rst b/docs/index.rst index 0c8b44e76..380dce065 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -54,6 +54,7 @@ Narrative documentation in chapter form explaining how to use narr/events narr/environment narr/logging + narr/paste narr/commandline narr/i18n narr/vhosting diff --git a/docs/latexindex.rst b/docs/latexindex.rst index 5afc47fd1..584dd3825 100644 --- a/docs/latexindex.rst +++ b/docs/latexindex.rst @@ -42,6 +42,7 @@ Narrative Documentation narr/events narr/environment narr/logging + narr/paste narr/commandline narr/i18n narr/vhosting diff --git a/docs/narr/MyProject/development.ini b/docs/narr/MyProject/development.ini index e134e9f06..e93266bab 100644 --- a/docs/narr/MyProject/development.ini +++ b/docs/narr/MyProject/development.ini @@ -1,4 +1,4 @@ -[app:MyProject] +[app:main] use = egg:MyProject pyramid.reload_templates = true @@ -9,10 +9,6 @@ pyramid.debug_templates = true pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar -[pipeline:main] -pipeline = - MyProject - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/narr/MyProject/production.ini b/docs/narr/MyProject/production.ini index 0a2154b15..83bce1ef2 100644 --- a/docs/narr/MyProject/production.ini +++ b/docs/narr/MyProject/production.ini @@ -1,4 +1,4 @@ -[app:MyProject] +[app:main] use = egg:MyProject pyramid.reload_templates = false @@ -8,10 +8,6 @@ pyramid.debug_routematch = false pyramid.debug_templates = false pyramid.default_locale_name = en -[pipeline:main] -pipeline = - MyProject - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/narr/commandline.rst b/docs/narr/commandline.rst index bb004c446..cef331e2d 100644 --- a/docs/narr/commandline.rst +++ b/docs/narr/commandline.rst @@ -127,12 +127,12 @@ The argument to ``pshell`` follows the format ``config_file#section_name`` where ``config_file`` is the path to your application's ``.ini`` file and ``section_name`` is the ``app`` section name inside the ``.ini`` file which points to your application. For example, if your application ``.ini`` file -might have a ``[app:MyProject]`` section that looks like so: +might have a ``[app:main]`` section that looks like so: .. code-block:: ini :linenos: - [app:MyProject] + [app:main] use = egg:MyProject pyramid.reload_templates = true pyramid.debug_authorization = false @@ -401,7 +401,7 @@ tween chain is used: .. code-block:: text :linenos: - [app:starter] + [app:main] use = egg:starter reload_templates = true debug_authorization = false diff --git a/docs/narr/environment.rst b/docs/narr/environment.rst index 352912a81..a5909e541 100644 --- a/docs/narr/environment.rst +++ b/docs/narr/environment.rst @@ -239,7 +239,7 @@ file in your application: .. code-block:: ini - [app:myapp] + [app:main] pyramid.includes = pyramid_debugtoolbar pyramid_tm @@ -352,7 +352,7 @@ file in your application: .. code-block:: ini - [app:myapp] + [app:main] pyramid.tweens = pyramid_debugtoolbar.toolbar.tween_factory pyramid.tweens.excview_tween_factory pyramid_tm.tm_tween_factory @@ -534,7 +534,7 @@ an example of such a section: :linenos: [app:main] - use = egg:MyProject#app + use = egg:MyProject pyramid.reload_templates = true pyramid.debug_authorization = true @@ -628,7 +628,7 @@ Here's how: .. code-block:: ini - [app:myapp] + [app:main] # .. other settings debug_frobnosticator = True diff --git a/docs/narr/i18n.rst b/docs/narr/i18n.rst index ba5490b31..aef9b59ab 100644 --- a/docs/narr/i18n.rst +++ b/docs/narr/i18n.rst @@ -787,7 +787,7 @@ application's Paster ``.ini`` file: :linenos: [app:main] - use = egg:MyProject#app + use = egg:MyProject pyramid.reload_templates = true pyramid.debug_authorization = false pyramid.debug_notfound = false @@ -847,7 +847,7 @@ Allow a deployer to modify your application's PasteDeploy .ini file: :linenos: [app:main] - use = egg:MyProject#app + use = egg:MyProject # ... available_languages = fr de en ru diff --git a/docs/narr/logging.rst b/docs/narr/logging.rst index 375ab820c..8abcba3c7 100644 --- a/docs/narr/logging.rst +++ b/docs/narr/logging.rst @@ -301,22 +301,36 @@ requests using the `Apache Combined Log Format with a FileHandler can be used to create an ``access.log`` file similar to Apache's. -Like any standard middleware with a Paste entry point, TransLogger can be -configured to wrap your application in the ``[app:main]`` section of the ini -file: +Like any standard middleware with a Paste entry point, TransLogger can be +configured to wrap your application using ``.ini`` file syntax. First, +rename your Pyramid ``.ini`` file's ``[app:main]`` section to +``[app:mypyramidapp]``, then add a ``[filter:translogger]`` section, then use +a ``[pipeline:main]`` section file to form a WSGI pipeline with both the +translogger and your application in it. For instance, change from this: .. code-block:: ini + [app:main] + use = egg:MyProject + +To this: + +.. code-block:: ini + + [app:mypyramidapp] + use = egg:MyProject + [filter:translogger] paste.filter_app_factory = egg:Paste#translogger setup_console_handler = False [pipeline:main] pipeline = translogger - myapp + mypyramidapp -This is equivalent to wrapping your app in a TransLogger instance via the -bottom the ``main`` function of your project's ``__init__`` file: +Using PasteDeploy this way to form and serve a pipeline is equivalent to +wrapping your app in a TransLogger instance via the bottom the ``main`` +function of your project's ``__init__`` file: .. code-block:: python diff --git a/docs/narr/paste.rst b/docs/narr/paste.rst new file mode 100644 index 000000000..39ae4f373 --- /dev/null +++ b/docs/narr/paste.rst @@ -0,0 +1,99 @@ +.. _paste_chapter: + +Paste +===== + +Packages generated via a :term:`scaffold` make use of a system created by Ian +Bicking named :term:`Paste`. Paste provides the following features: + +- A way to declare :term:`WSGI` application configuration in an ``.ini`` file + (PasteDeploy). + +- A :term:`WSGI` server runner (``paster serve``) which can accept + PasteDeploy ``.ini`` file values as input. + +- A mechanism for rendering scaffolds into projects (``paster create``). + +Paste is not a particularly integral part of Pyramid. It's more or less used +directly only in projects created from scaffolds. It's possible to create a +Pyramid application which does not use Paste at all. We show a Pyramid +application that doesn't use Paste in :ref:`firstapp_chapter`. However, all +Pyramid scaffolds use the system, to provide new developers with a +standardized way of starting, stopping, and setting deployment values. This +chapter is not a replacement for documentation about Paste or PasteDeploy; it +only contextualizes the use of Paste within Pyramid. For detailed +documentation, see http://pythonpaste.org. + +PasteDeploy +----------- + +:term:`PasteDeploy` is the system that Pyramid uses to allow +:term:`deployment settings` to be spelled using an ``.ini`` configuration +file format. It also allows the ``paster serve`` command to work. Its +configuration format provides a convenient place to define application +:term:`deployment settings` and WSGI server settings, and its server runner +allows you to stop and start a Pyramid application easily. + +.. _pastedeploy_entry_points: + +Entry Points and PasteDeploy ``.ini`` Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In the :ref:`project_narr` chapter, we breezed over the meaning of a +configuration line in the ``deployment.ini`` file. This was the ``use = +egg:MyProject`` line in the ``[app:main]`` section. We breezed over it +because it's pretty confusing and "too much information" for an introduction +to the system. We'll try to give it a bit of attention here. Let's see the +config file again: + +.. literalinclude:: MyProject/development.ini + :language: ini + :linenos: + +The line in ``[app:main]`` above that says ``use = egg:MyProject`` is +actually shorthand for a longer spelling: ``use = egg:MyProject#main``. The +``#main`` part is omitted for brevity, as ``#main`` is a default defined by +PasteDeploy. ``egg:MyProject#main`` is a string which has meaning to +PasteDeploy. It points at a :term:`setuptools` :term:`entry point` named +``main`` defined in the ``MyProject`` project. + +Take a look at the generated ``setup.py`` file for this project. + +.. literalinclude:: MyProject/setup.py + :language: python + :linenos: + +Note that the ``entry_point`` line in ``setup.py`` points at a string which +looks a lot like an ``.ini`` file. This string representation of an ``.ini`` +file has a section named ``[paste.app_factory]``. Within this section, there +is a key named ``main`` (the entry point name) which has a value +``myproject:main``. The *key* ``main`` is what our ``egg:MyProject#main`` +value of the ``use`` section in our config file is pointing at, although it +is actually shortened to ``egg:MyProject`` there. The value represents a +:term:`dotted Python name` path, which refers to a callable in our +``myproject`` package's ``__init__.py`` module. + +The ``egg:`` prefix in ``egg:MyProject`` indicates that this is an entry +point *URI* specifier, where the "scheme" is "egg". An "egg" is created when +you run ``setup.py install`` or ``setup.py develop`` within your project. + +In English, this entry point can thus be referred to as a "Paste application +factory in the ``MyProject`` project which has the entry point named ``main`` +where the entry point refers to a ``main`` function in the ``mypackage`` +module". Indeed, if you open up the ``__init__.py`` module generated within +any scaffold-generated package, you'll see a ``main`` function. This is the +function called by :term:`PasteDeploy` when the ``paster serve`` command is +invoked against our application. It accepts a global configuration object +and *returns* an instance of our application. + +``[DEFAULTS]`` Section of a PasteDeploy ``.ini`` File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can add a ``[DEFAULT]`` section to your PasteDeploy ``.ini`` file. Such +a section should consists of global parameters that are shared by all the +applications, servers and :term:`middleware` defined within the configuration +file. The values in a ``[DEFAULT]`` section will be passed to your +application's ``main`` function as ``global_config`` (see the reference to +the ``main`` function in :ref:`init_py`). + + diff --git a/docs/narr/project.rst b/docs/narr/project.rst index d259a9c79..9ea5f20dd 100644 --- a/docs/narr/project.rst +++ b/docs/narr/project.rst @@ -153,8 +153,7 @@ Another :term:`PasteDeploy` ``.ini`` file named ``production.ini`` will also be created in the project directory. It sports configuration that disables any interactive debugger (to prevent inappropriate access and disclosure), and turns off a number of debugging settings. You can use this file to put -your application into production, and you can modify it to do things like -send email when an exception occurs. +your application into production. The ``MyProject`` project directory contains an additional subdirectory named ``myproject`` (note the case difference) representing a Python @@ -294,7 +293,6 @@ configuration file settings that influence startup and runtime behavior, see :ref:`environment_chapter`. .. index:: - single: mod_wsgi single: WSGI Viewing the Application @@ -341,7 +339,7 @@ example, instead of: .. code-block:: ini :linenos: - [app:MyApp] + [app:main] ... pyramid.includes = pyramid_debugtoolbar @@ -350,7 +348,7 @@ Put a hash mark in front of the ``pyramid.includes`` line: .. code-block:: ini :linenos: - [app:MyApp] + [app:main] ... #pyramid.includes = pyramid_debugtoolbar @@ -443,73 +441,41 @@ The generated ``development.ini`` file looks like so: :language: ini :linenos: -This file contains several "sections" including ``[app:MyProject]``, -``[pipeline:main]``, ``[server:main]`` and several other sections related to -logging configuration. - -The ``[app:MyProject]`` section represents configuration for your -application. This section name represents the ``MyProject`` application (and -it's an ``app`` -lication, thus ``app:MyProject``) - -The ``use`` setting is required in the ``[app:MyProject]`` section. The -``use`` setting points at a :term:`setuptools` :term:`entry point` named -``MyProject`` (the ``egg:`` prefix in ``egg:MyProject`` indicates that this -is an entry point *URI* specifier, where the "scheme" is "egg"). -``egg:MyProject`` is actually shorthand for a longer spelling: -``egg:MyProject#main``. The ``#main`` part is omitted for brevity, as it is -the default. - -.. sidebar:: ``setuptools`` Entry Points and PasteDeploy ``.ini`` Files - - This part of configuration can be confusing so let's try to clear things - up a bit. Take a look at the generated ``setup.py`` file for this - project. Note that the ``entry_point`` line in ``setup.py`` points at a - string which looks a lot like an ``.ini`` file. This string - representation of an ``.ini`` file has a section named - ``[paste.app_factory]``. Within this section, there is a key named - ``main`` (the entry point name) which has a value ``myproject:main``. The - *key* ``main`` is what our ``egg:MyProject#main`` value of the ``use`` - section in our config file is pointing at (although it is actually - shortened to ``egg:MyProject`` there). The value represents a - :term:`dotted Python name` path, which refers to a callable in our - ``myproject`` package's ``__init__.py`` module. In English, this entry - point can thus be referred to as a "Paste application factory in the - ``MyProject`` project which has the entry point named ``main`` where the - entry point refers to a ``main`` function in the ``mypackage`` module". - Indeed, if you open up the ``__init__.py`` module generated within the - ``myproject`` package, you'll see a ``main`` function. This is the - function called by :term:`PasteDeploy` when the ``paster serve`` command - is invoked against our application. It accepts a global configuration - object and *returns* an instance of our application. - -The ``use`` setting is the only setting *required* in the ``[app:MyProject]`` -section unless you've changed the callable referred to by the -``egg:MyProject`` entry point to accept more arguments: other settings you -add to this section are passed as keyword arguments to the callable -represented by this entry point (``main`` in our ``__init__.py`` module). -You can provide startup-time configuration parameters to your application by +This file contains several "sections" including ``[app:main]``, +``[server:main]`` and several other sections related to logging +configuration. + +The ``[app:main]`` section represents configuration for your :app:`Pyramid` +application. The ``use`` setting is the only setting required to be present +in the ``[app:main]`` section. Its default value, ``egg:MyProject``, +indicates that our MyProject project contains the application that should be +served. Other settings added to this section are passed as keyword arguments +to the function named ``main`` in our package's ``__init__.py`` module. You +can provide startup-time configuration parameters to your application by adding more settings to this section. -The ``pyramid.reload_templates`` setting in the ``[app:MyProject]`` section is -a :app:`Pyramid` -specific setting which is passed into the framework. If it +.. note:: See :ref:`pastedeploy_entry_points` for more information about the + meaning of the ``use = egg:MyProject`` value in this section. + +The ``pyramid.reload_templates`` setting in the ``[app:main]`` section is a +:app:`Pyramid` -specific setting which is passed into the framework. If it exists, and its value is ``true``, :term:`Chameleon` and :term:`Mako` template changes will not require an application restart to be detected. See :ref:`reload_templates_section` for more information. -The ``pyramid.debug_templates`` setting in the ``[app:MyProject]`` section is a +The ``pyramid.debug_templates`` setting in the ``[app:main]`` section is a :app:`Pyramid` -specific setting which is passed into the framework. If it exists, and its value is ``true``, :term:`Chameleon` template exceptions will -contain more detailed and helpful information about the error than when -this value is ``false``. See :ref:`debug_templates_section` for more -information. +contain more detailed and helpful information about the error than when this +value is ``false``. See :ref:`debug_templates_section` for more information. .. warning:: The ``pyramid.reload_templates`` and ``pyramid.debug_templates`` options should be turned off for production applications, as template rendering is slowed when either is turned on. -The ``pyramid.includes`` setting in the ``[app:MyProject]`` section tells -Pyramid to "include" configuration from another package. In this case, the -line ``pyramid.includes = pyramid_debugtoolbar`` tells Pyramid to include +The ``pyramid.includes`` setting in the ``[app:main]`` section tells Pyramid +to "include" configuration from another package. In this case, the line +``pyramid.includes = pyramid_debugtoolbar`` tells Pyramid to include configuration from the ``pyramid_debugtoolbar`` package. This turns on a debugging panel in development mode which will be shown on the right hand side of the screen. Including the debug toolbar will also make it possible @@ -519,23 +485,15 @@ Various other settings may exist in this section having to do with debugging or influencing runtime behavior of a :app:`Pyramid` application. See :ref:`environment_chapter` for more information about these settings. -``[pipeline:main]``, has the name ``main`` signifying that this is the -default 'application' (although it's actually a pipeline of middleware and an -application) run by ``paster serve`` when it is invoked against this +The name ``main`` in ``[app:main]`` signifies that this is the default +application run by ``paster serve`` when it is invoked against this configuration file. The name ``main`` is a convention used by PasteDeploy signifying that it is the default application. The ``[server:main]`` section of the configuration file configures a WSGI server which listens on TCP port 6543. It is configured to listen on all -interfaces (``0.0.0.0``). The ``Paste#http`` server will create a new thread -for each request. - -.. note:: - - In general, :app:`Pyramid` applications generated from scaffolds - should be threading-aware. It is not required that a :app:`Pyramid` - application be nonblocking as all application code will run in its own - thread, provided by the server you're using. +interfaces (``0.0.0.0``). This means that any remote system which has TCP +access to your system can see your Pyramid application. The sections that live between the markers ``# Begin logging configuration`` and ``# End logging configuration`` represent Python's standard library @@ -545,22 +503,14 @@ configuration engine <http://docs.python.org/howto/logging.html#configuring-logging>`_ when the ``paster serve`` or ``paster pshell`` commands are executed. The default configuration sends application logging output to the standard error output -of your terminal. +of your terminal. For more information about logging configuration, see +:ref:`logging_chapter`. See the :term:`PasteDeploy` documentation for more information about other types of things you can put into this ``.ini`` file, such as other applications, :term:`middleware` and alternate :term:`WSGI` server implementations. -.. note:: - - You can add a ``[DEFAULT]`` section to your ``development.ini`` file. - Such a section should consists of global parameters that are shared by all - the applications, servers and :term:`middleware` defined within the - configuration file. The values in a ``[DEFAULT]`` section will be passed - to your application's ``main`` function as ``global_config`` (see - the reference to the ``main`` function in :ref:`init_py`). - .. index:: single: production.ini @@ -644,9 +594,12 @@ will be run when ``setup.py test`` is invoked. We examined ``entry_points`` in our discussion of the ``development.ini`` file; this file defines the ``main`` entry point that represents our project's application. -Usually you only need to think about the contents of the ``setup.py`` file -when distributing your application to other people, or when versioning your -application for your own use. For fun, you can try this command now: +A more exhaustive explanation of the purpose and composition of ``setup.py`` +is available at `The Hitchhiker's Guide to Packaging +<http://guide.python-distribute.org/>`_. Usually you only need to think +about the contents of the ``setup.py`` file when distributing your +application to other people, or when versioning your application for your own +use. For fun, you can try this command now: .. code-block:: text diff --git a/docs/narr/security.rst b/docs/narr/security.rst index a61578e21..8d30a76a7 100644 --- a/docs/narr/security.rst +++ b/docs/narr/security.rst @@ -525,7 +525,7 @@ application's configuration section, e.g.: :linenos: [app:main] - use = egg:MyProject#app + use = egg:MyProject pyramid.debug_authorization = true With this debug flag turned on, the response sent to the browser will diff --git a/docs/narr/startup.rst b/docs/narr/startup.rst index c9ed01f83..c66264655 100644 --- a/docs/narr/startup.rst +++ b/docs/narr/startup.rst @@ -51,7 +51,9 @@ Here's a high-level time-ordered overview of what happens when you press If instead of a simple application or a pipeline, you're using a Paste "composite" (e.g. ``[composite:main]``), refer to the documentation for that particular composite to understand how to make it refer to your - :app:`Pyramid` application. + :app:`Pyramid` application. In most cases, a Pyramid application built + from a scaffold will have a single ``[app:main]`` section in it, and this + will be the application served. #. The PasteDeploy framework finds all :mod:`logging` related configuration in the ``.ini`` file and uses it to configure the Python standard library @@ -78,10 +80,9 @@ Here's a high-level time-ordered overview of what happens when you press section of an ``.ini`` file. It also accepts a ``**settings`` argument, which collects another set of arbitrary key/value pairs. The arbitrary key/value pairs received by this function in ``**settings`` will be - composed of all the key/value pairs that are present in the - ``[app:MyProject]`` section (except for the ``use=`` setting) when this - function is called by the :term:`PasteDeploy` framework when you run - ``paster serve``. + composed of all the key/value pairs that are present in the ``[app:main]`` + section (except for the ``use=`` setting) when this function is called by + the :term:`PasteDeploy` framework when you run ``paster serve``. Our generated ``development.ini`` file looks like so: @@ -107,9 +108,9 @@ Here's a high-level time-ordered overview of what happens when you press application's root resource. It is not called during startup, only when a request is handled. - The ``settings`` dictionary contains all the options in the - ``[app:MyProject]`` section of our .ini file except the ``use`` option - (which is internal to Paste) such as ``pyramid.reload_templates``, + The ``settings`` dictionary contains all the options in the ``[app:main]`` + section of our .ini file except the ``use`` option (which is internal to + Paste) such as ``pyramid.reload_templates``, ``pyramid.debug_authorization``, etc. #. The ``main`` function then calls various methods on the instance of the @@ -128,9 +129,9 @@ Here's a high-level time-ordered overview of what happens when you press :ref:`events_chapter` for more information about events). #. Assuming there were no errors, the ``main`` function in ``myproject`` - returns the router instance created by ``make_wsgi_app`` back to - PasteDeploy. As far as PasteDeploy is concerned, it is "just another WSGI - application". + returns the router instance created by + :meth:`pyramid.config.Configurator.make_wsgi_app` back to PasteDeploy. As + far as PasteDeploy is concerned, it is "just another WSGI application". #. PasteDeploy starts the WSGI *server* defined within the ``[server:main]`` section. In our case, this is the ``Paste#http`` server (``use = diff --git a/docs/narr/templates.rst b/docs/narr/templates.rst index 0f46f6422..d5caed4be 100644 --- a/docs/narr/templates.rst +++ b/docs/narr/templates.rst @@ -638,8 +638,8 @@ the application's configuration section, e.g.: .. code-block:: ini :linenos: - [app:MyProject] - use = egg:MyProject#app + [app:main] + use = egg:MyProject pyramid.debug_templates = true With template debugging off, a :exc:`NameError` exception resulting @@ -800,7 +800,7 @@ application's configuration section, e.g.: :linenos: [app:main] - use = egg:MyProject#app + use = egg:MyProject pyramid.reload_templates = true .. index:: diff --git a/docs/narr/vhosting.rst b/docs/narr/vhosting.rst index ddbf1fb4d..8697df6a0 100644 --- a/docs/narr/vhosting.rst +++ b/docs/narr/vhosting.rst @@ -46,7 +46,7 @@ a ``urlmap`` composite. :linenos: [app:mypyramidapp] - use = egg:mypyramidapp#app + use = egg:mypyramidapp [composite:main] use = egg:Paste#urlmap diff --git a/docs/tutorials/wiki/basiclayout.rst b/docs/tutorials/wiki/basiclayout.rst index 726f32545..d3f2fb455 100644 --- a/docs/tutorials/wiki/basiclayout.rst +++ b/docs/tutorials/wiki/basiclayout.rst @@ -162,16 +162,9 @@ opposed to the tutorial :term:`package` directory) looks like this: .. literalinclude:: src/views/development.ini :language: ini -Note the existence of a ``[pipeline:main]`` section which specifies our WSGI -pipeline. This "pipeline" will be served up as our WSGI application. As far -as the WSGI server is concerned the pipeline *is* our application. - -Our ZODB database settings are specified as the ``zodbconn.uri`` setting in -the application section. - -The only line in the ``[pipeline:main]`` section is ``tutorial``, which -refers to the ``[app:tutorial]`` section above it. The ``[app:tutorial]`` -section is the section which actually defines our application settings. The +Note the existence of an ``[app:main]`` section which specifies our WSGI +application. Our ZODB database settings are specified as the +``zodbconn.uri`` setting within this section. This value, and the other values within this section are passed as ``**settings`` to the ``main`` function we defined in ``__init__.py`` when the server is started via ``paster serve``. diff --git a/docs/tutorials/wiki/src/authorization/development.ini b/docs/tutorials/wiki/src/authorization/development.ini index 2db77b9ef..a45860ff7 100644 --- a/docs/tutorials/wiki/src/authorization/development.ini +++ b/docs/tutorials/wiki/src/authorization/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -12,10 +12,6 @@ pyramid.includes = pyramid_debugtoolbar tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/authorization/production.ini b/docs/tutorials/wiki/src/authorization/production.ini index 0462bae90..0588f63a0 100644 --- a/docs/tutorials/wiki/src/authorization/production.ini +++ b/docs/tutorials/wiki/src/authorization/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_tm tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/basiclayout/development.ini b/docs/tutorials/wiki/src/basiclayout/development.ini index 28775cba9..87da2f84a 100644 --- a/docs/tutorials/wiki/src/basiclayout/development.ini +++ b/docs/tutorials/wiki/src/basiclayout/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -12,10 +12,6 @@ pyramid.includes = pyramid_debugtoolbar tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/basiclayout/production.ini b/docs/tutorials/wiki/src/basiclayout/production.ini index 0462bae90..0588f63a0 100644 --- a/docs/tutorials/wiki/src/basiclayout/production.ini +++ b/docs/tutorials/wiki/src/basiclayout/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_tm tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/models/development.ini b/docs/tutorials/wiki/src/models/development.ini index 2db77b9ef..a45860ff7 100644 --- a/docs/tutorials/wiki/src/models/development.ini +++ b/docs/tutorials/wiki/src/models/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -12,10 +12,6 @@ pyramid.includes = pyramid_debugtoolbar tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/models/production.ini b/docs/tutorials/wiki/src/models/production.ini index 0462bae90..0588f63a0 100644 --- a/docs/tutorials/wiki/src/models/production.ini +++ b/docs/tutorials/wiki/src/models/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_tm tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/tests/development.ini b/docs/tutorials/wiki/src/tests/development.ini index 2db77b9ef..a45860ff7 100644 --- a/docs/tutorials/wiki/src/tests/development.ini +++ b/docs/tutorials/wiki/src/tests/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -12,10 +12,6 @@ pyramid.includes = pyramid_debugtoolbar tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/tests/production.ini b/docs/tutorials/wiki/src/tests/production.ini index 0462bae90..0588f63a0 100644 --- a/docs/tutorials/wiki/src/tests/production.ini +++ b/docs/tutorials/wiki/src/tests/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_tm tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/views/development.ini b/docs/tutorials/wiki/src/views/development.ini index 28775cba9..87da2f84a 100644 --- a/docs/tutorials/wiki/src/views/development.ini +++ b/docs/tutorials/wiki/src/views/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -12,10 +12,6 @@ pyramid.includes = pyramid_debugtoolbar tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki/src/views/production.ini b/docs/tutorials/wiki/src/views/production.ini index 0462bae90..0588f63a0 100644 --- a/docs/tutorials/wiki/src/views/production.ini +++ b/docs/tutorials/wiki/src/views/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_tm tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/basiclayout.rst b/docs/tutorials/wiki2/basiclayout.rst index 0fd64fde4..2d25ace00 100644 --- a/docs/tutorials/wiki2/basiclayout.rst +++ b/docs/tutorials/wiki2/basiclayout.rst @@ -19,10 +19,11 @@ package. We use ``__init__.py`` both as a package marker and to contain configuration code. The generated ``development.ini`` file is read by ``paster`` which looks for -the application module in the ``use`` variable of the ``app:tutorial`` +the application module in the ``use`` variable of the ``app:main`` section. The *entry point* is defined in the Setuptools configuration of this module, specifically in the ``setup.py`` file. For this tutorial, the *entry -point* is defined as ``tutorial:main`` and points to a function named ``main``. +point* is defined as ``tutorial:main`` and points to a function named +``main``. First we need some imports to support later code: @@ -33,7 +34,7 @@ First we need some imports to support later code: Next we define the main function and create a SQLAlchemy database engine from the ``sqlalchemy.`` prefixed settings in the ``development.ini`` file's -``[app:tutorial]`` section. This will be a URI (something like +``[app:main]`` section. This will be a URI (something like ``sqlite://``): .. literalinclude:: src/basiclayout/tutorial/__init__.py diff --git a/docs/tutorials/wiki2/src/authorization/development.ini b/docs/tutorials/wiki2/src/authorization/development.ini index f93a88e6b..799ce7161 100644 --- a/docs/tutorials/wiki2/src/authorization/development.ini +++ b/docs/tutorials/wiki2/src/authorization/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_debugtoolbar sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/authorization/production.ini b/docs/tutorials/wiki2/src/authorization/production.ini index 45ef791b7..df91d0b49 100644 --- a/docs/tutorials/wiki2/src/authorization/production.ini +++ b/docs/tutorials/wiki2/src/authorization/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -10,10 +10,6 @@ pyramid.includes = pyramid_tm sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/basiclayout/development.ini b/docs/tutorials/wiki2/src/basiclayout/development.ini index f93a88e6b..799ce7161 100644 --- a/docs/tutorials/wiki2/src/basiclayout/development.ini +++ b/docs/tutorials/wiki2/src/basiclayout/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_debugtoolbar sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/basiclayout/production.ini b/docs/tutorials/wiki2/src/basiclayout/production.ini index 45ef791b7..df91d0b49 100644 --- a/docs/tutorials/wiki2/src/basiclayout/production.ini +++ b/docs/tutorials/wiki2/src/basiclayout/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -10,10 +10,6 @@ pyramid.includes = pyramid_tm sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/models/development.ini b/docs/tutorials/wiki2/src/models/development.ini index f93a88e6b..799ce7161 100644 --- a/docs/tutorials/wiki2/src/models/development.ini +++ b/docs/tutorials/wiki2/src/models/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_debugtoolbar sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/models/production.ini b/docs/tutorials/wiki2/src/models/production.ini index 45ef791b7..df91d0b49 100644 --- a/docs/tutorials/wiki2/src/models/production.ini +++ b/docs/tutorials/wiki2/src/models/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -10,10 +10,6 @@ pyramid.includes = pyramid_tm sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/tests/development.ini b/docs/tutorials/wiki2/src/tests/development.ini index f93a88e6b..799ce7161 100644 --- a/docs/tutorials/wiki2/src/tests/development.ini +++ b/docs/tutorials/wiki2/src/tests/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_debugtoolbar sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/tests/production.ini b/docs/tutorials/wiki2/src/tests/production.ini index 45ef791b7..df91d0b49 100644 --- a/docs/tutorials/wiki2/src/tests/production.ini +++ b/docs/tutorials/wiki2/src/tests/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -10,10 +10,6 @@ pyramid.includes = pyramid_tm sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/views/development.ini b/docs/tutorials/wiki2/src/views/development.ini index f93a88e6b..799ce7161 100644 --- a/docs/tutorials/wiki2/src/views/development.ini +++ b/docs/tutorials/wiki2/src/views/development.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = true pyramid.debug_authorization = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_debugtoolbar sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/docs/tutorials/wiki2/src/views/production.ini b/docs/tutorials/wiki2/src/views/production.ini index 45ef791b7..df91d0b49 100644 --- a/docs/tutorials/wiki2/src/views/production.ini +++ b/docs/tutorials/wiki2/src/views/production.ini @@ -1,4 +1,4 @@ -[app:tutorial] +[app:main] use = egg:tutorial pyramid.reload_templates = false pyramid.debug_authorization = false @@ -10,10 +10,6 @@ pyramid.includes = pyramid_tm sqlalchemy.url = sqlite:///%(here)s/tutorial.db -[pipeline:main] -pipeline = - tutorial - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/alchemy/development.ini_tmpl b/pyramid/scaffolds/alchemy/development.ini_tmpl index d946d7291..05e7ac296 100644 --- a/pyramid/scaffolds/alchemy/development.ini_tmpl +++ b/pyramid/scaffolds/alchemy/development.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = true @@ -12,10 +12,6 @@ pyramid.includes = pyramid_debugtoolbar sqlalchemy.url = sqlite:///%(here)s/{{project}}.db -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/alchemy/production.ini_tmpl b/pyramid/scaffolds/alchemy/production.ini_tmpl index 5bcfb432d..fad5baa30 100644 --- a/pyramid/scaffolds/alchemy/production.ini_tmpl +++ b/pyramid/scaffolds/alchemy/production.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_tm sqlalchemy.url = sqlite:///%(here)s/{{project}}.db -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/routesalchemy/development.ini_tmpl b/pyramid/scaffolds/routesalchemy/development.ini_tmpl index d946d7291..05e7ac296 100644 --- a/pyramid/scaffolds/routesalchemy/development.ini_tmpl +++ b/pyramid/scaffolds/routesalchemy/development.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = true @@ -12,10 +12,6 @@ pyramid.includes = pyramid_debugtoolbar sqlalchemy.url = sqlite:///%(here)s/{{project}}.db -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/routesalchemy/production.ini_tmpl b/pyramid/scaffolds/routesalchemy/production.ini_tmpl index 5bcfb432d..fad5baa30 100644 --- a/pyramid/scaffolds/routesalchemy/production.ini_tmpl +++ b/pyramid/scaffolds/routesalchemy/production.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = false @@ -11,10 +11,6 @@ pyramid.includes = pyramid_tm sqlalchemy.url = sqlite:///%(here)s/{{project}}.db -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/starter/development.ini_tmpl b/pyramid/scaffolds/starter/development.ini_tmpl index e670c167c..2d2f6e354 100644 --- a/pyramid/scaffolds/starter/development.ini_tmpl +++ b/pyramid/scaffolds/starter/development.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = true @@ -9,10 +9,6 @@ pyramid.debug_templates = true pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/starter/production.ini_tmpl b/pyramid/scaffolds/starter/production.ini_tmpl index bcccf53a0..b04f37ab3 100644 --- a/pyramid/scaffolds/starter/production.ini_tmpl +++ b/pyramid/scaffolds/starter/production.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = false @@ -8,10 +8,6 @@ pyramid.debug_routematch = false pyramid.debug_templates = false pyramid.default_locale_name = en -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/zodb/development.ini_tmpl b/pyramid/scaffolds/zodb/development.ini_tmpl index b3342acfe..29da8ee38 100644 --- a/pyramid/scaffolds/zodb/development.ini_tmpl +++ b/pyramid/scaffolds/zodb/development.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = true @@ -13,10 +13,6 @@ pyramid.includes = pyramid_debugtoolbar tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/pyramid/scaffolds/zodb/production.ini_tmpl b/pyramid/scaffolds/zodb/production.ini_tmpl index f79fe71dd..0275a33a7 100644 --- a/pyramid/scaffolds/zodb/production.ini_tmpl +++ b/pyramid/scaffolds/zodb/production.ini_tmpl @@ -1,4 +1,4 @@ -[app:{{project}}] +[app:main] use = egg:{{project}} pyramid.reload_templates = false @@ -12,10 +12,6 @@ pyramid.includes = pyramid_tm tm.attempts = 3 zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 -[pipeline:main] -pipeline = - {{project}} - [server:main] use = egg:Paste#http host = 0.0.0.0 |
