Bert JW Regeer
2016-04-13 d26e3af4b220d3794c8e40103eb8bd86fd68372d
commit | author | age
c4d7f0 1 .. _glossary:
PE 2
74e3c4 3 Glossary
878328 4 ========
c4d7f0 5
PE 6 .. glossary::
878328 7    :sorted:
c4d7f0 8
8c56ae 9    request
050868 10      An object that represents an HTTP request, usually an instance of the
CM 11      :class:`pyramid.request.Request` class.  See :ref:`webob_chapter`
12      (narrative) and :ref:`request_module` (API documentation) for
13      information about request objects.
bc857e 14
e25a70 15    request factory
050868 16      An object which, provided a :term:`WSGI` environment as a single
CM 17      positional argument, returns a Pyramid-compatible request.
e25a70 18
e8a666 19    response factory
ff01cd 20      An object which, provided a :term:`request` as a single positional
da5f5f 21      argument, returns a Pyramid-compatible response. See
MM 22      :class:`pyramid.interfaces.IResponseFactory`.
e8a666 23
8c56ae 24    response
d868ff 25      An object returned by a :term:`view callable` that represents response
0e5cd0 26      data returned to the requesting user agent.  It must implement the
d868ff 27      :class:`pyramid.interfaces.IResponse` interface.  A response object is
CM 28      typically an instance of the :class:`pyramid.response.Response` class or
29      a subclass such as :class:`pyramid.httpexceptions.HTTPFound`.  See
30      :ref:`webob_chapter` for information about response objects.
878328 31
1f901a 32    response adapter
CM 33      A callable which accepts an arbitrary object and "converts" it to a
34      :class:`pyramid.response.Response` object.  See :ref:`using_iresponse`
35      for more information.
36
878328 37    Repoze
7e7fc9 38      "Repoze" is essentially a "brand" of software developed by `Agendaless
CM 39      Consulting <http://agendaless.com>`_ and a set of contributors.  The
40      term has no special intrinsic meaning.  The project's `website
41      <http://repoze.org>`_ has more information.  The software developed
42      "under the brand" is available in a `Subversion repository
43      <http://svn.repoze.org>`_.  Pyramid was originally known as
44      :mod:`repoze.bfg`.
878328 45
8c56ae 46    setuptools
878328 47      `Setuptools <http://peak.telecommunity.com/DevCenter/setuptools>`_
CM 48      builds on Python's ``distutils`` to provide easier building,
eab66f 49      distribution, and installation of libraries and applications.  As of
CM 50      this writing, setuptools runs under Python 2, but not under Python 3.
51      You can use :term:`distribute` under Python 3 instead.
52
53    distribute
54      `Distribute <http://packages.python.org/distribute/>`_ is a fork of
55      :term:`setuptools` which runs on both Python 2 and Python 3.
878328 56
CM 57    pkg_resources
eab66f 58      A module which ships with :term:`setuptools` and :term:`distribute` that
CM 59      provides an API for addressing "asset files" within a Python
60      :term:`package`.  Asset files are static files, template files, etc;
61      basically anything non-Python-source that lives in a Python package can
2033ee 62      be considered a asset file.
SP 63      
64      .. seealso::
65          
66          See also `PkgResources
67          <http://peak.telecommunity.com/DevCenter/PkgResources>`_.
878328 68
3e2f12 69    asset
878328 70      Any file contained within a Python :term:`package` which is *not*
CM 71      a Python source code file.
72
3e2f12 73    asset specification
a5ffd6 74      A colon-delimited identifier for an :term:`asset`.  The colon
878328 75      separates a Python :term:`package` name from a package subpath.
3e2f12 76      For example, the asset specification
878328 77      ``my.package:static/baz.css`` identifies the file named
CM 78      ``baz.css`` in the ``static`` subdirectory of the ``my.package``
2e3f70 79      Python :term:`package`.  See :ref:`asset_specifications` for more
b33ae9 80      info.
878328 81
8c56ae 82    package
878328 83      A directory on disk which contains an ``__init__.py`` file, making
CM 84      it recognizable to Python as a location which can be ``import`` -ed.
cdac6d 85      A package exists to contain :term:`module` files.
878328 86
798aad 87    module
CM 88      A Python source file; a file on the filesystem that typically ends with
2e3f70 89      the extension ``.py`` or ``.pyc``.  Modules often live in a
798aad 90      :term:`package`.
CM 91
8c56ae 92    project
878328 93      (Setuptools/distutils terminology). A directory on disk which
CM 94      contains a ``setup.py`` file and one or more Python packages.  The
95      ``setup.py`` file contains code that allows the package(s) to be
96      installed, distributed, and tested.
97
8c56ae 98    distribution
878328 99      (Setuptools/distutils terminology).  A file representing an
CM 100      installable library or application.  Distributions are usually
101      files that have the suffix of ``.egg``, ``.tar.gz``, or ``.zip``.
eab66f 102      Distributions are the target of Setuptools-related commands such as
878328 103      ``easy_install``.
CM 104
8c56ae 105    entry point
878328 106      A :term:`setuptools` indirection, defined within a setuptools
CM 107      :term:`distribution` setup.py.  It is usually a name which refers
108      to a function somewhere in a package which is held by the
109      distribution.
110
8c56ae 111    dotted Python name
878328 112      A reference to a Python object by name using a string, in the form
f8869c 113      ``path.to.modulename:attributename``.  Often used in Pyramid and
c9c3c4 114      setuptools configurations.  A variant is used in dotted names within
CM 115      configurator method arguments that name objects (such as the "add_view"
116      method's "view" and "context" attributes): the colon (``:``) is not
878328 117      used; in its place is a dot.
CM 118
8c56ae 119    view
878328 120      Common vernacular for a :term:`view callable`.
CM 121
8c56ae 122    view callable
878328 123      A "view callable" is a callable Python object which is associated
CM 124      with a :term:`view configuration`; it returns a :term:`response`
125      object .  A view callable accepts a single argument: ``request``,
126      which will be an instance of a :term:`request` object.  An
127      alternate calling convention allows a view to be defined as a
128      callable which accepts a pair of arguments: ``context`` and
197f0c 129      ``request``: this calling convention is useful for
CM 130      traversal-based applications in which a :term:`context` is always
131      very important.  A view callable is the primary mechanism by
132      which a developer writes user interface code within
fd5ae9 133      :app:`Pyramid`.  See :ref:`views_chapter` for more information
CM 134      about :app:`Pyramid` view callables.
878328 135
8c56ae 136    view configuration
f7f0dd 137      View configuration is the act of associating a :term:`view callable`
CM 138      with configuration information.  This configuration information helps
139      map a given :term:`request` to a particular view callable and it can
140      influence the response of a view callable.  :app:`Pyramid` views can be
c9c3c4 141      configured via :term:`imperative configuration`, or by a special
CM 142      ``@view_config`` decorator coupled with a :term:`scan`.  See
f7f0dd 143      :ref:`view_config_chapter` for more information about view
CM 144      configuration.
878328 145
8c56ae 146    view name
878328 147      The "URL name" of a view, e.g ``index.html``.  If a view is
CM 148      configured without a name, its name is considered to be the empty
149      string (which implies the :term:`default view`).
150
151    Default view
a5ffd6 152      The default view of a :term:`resource` is the view invoked when the
CM 153      :term:`view name` is the empty string (``''``).  This is the case when
154      :term:`traversal` exhausts the path elements in the PATH_INFO of a
780999 155      request before it returns a :term:`context` resource.
878328 156
8c56ae 157    virtualenv
d67566 158      The `virtualenv tool <https://virtualenv.pypa.io/en/latest/>`_ that allows
SP 159      one to create virtual environments. In Python 3.3 and greater,
160      :term:`venv` is the preferred tool.
878328 161
f73f0e 162      Note: whenever you encounter commands prefixed with ``$VENV`` (Unix)
TL 163      or ``%VENV`` (Windows), know that that is the environment variable whose
164      value is the root of the virtual environment in question.
165
3e2f12 166    resource
a5ffd6 167      An object representing a node in the :term:`resource tree` of an
125ea4 168      application.  If :term:`traversal` is used, a resource is an element in
a5ffd6 169      the resource tree traversed by the system.  When traversal is used, a
125ea4 170      resource becomes the :term:`context` of a :term:`view`.  If :term:`url
a5ffd6 171      dispatch` is used, a single resource is generated for each request and
780999 172      is used as the context resource of a view.
a5ffd6 173
CM 174    resource tree
175      A nested set of dictionary-like objects, each of which is a
176      :term:`resource`.  The act of :term:`traversal` uses the resource tree
780999 177      to find a :term:`context` resource.
a5ffd6 178
CM 179    domain model
180      Persistent data related to your application.  For example, data stored
181      in a relational database.  In some applications, the :term:`resource
182      tree` acts as the domain model.
878328 183
8c56ae 184    traversal
3e2f12 185      The act of descending "up" a tree of resource objects from a root
780999 186      resource in order to find a :term:`context` resource.  The
CM 187      :app:`Pyramid` :term:`router` performs traversal of resource objects
188      when a :term:`root factory` is specified.  See the
189      :ref:`traversal_chapter` chapter for more information.  Traversal can be
190      performed *instead* of :term:`URL dispatch` or can be combined *with*
191      URL dispatch.  See :ref:`hybrid_chapter` for more information about
192      combining traversal and URL dispatch (advanced).
878328 193
8c56ae 194    router
878328 195      The :term:`WSGI` application created when you start a
fd5ae9 196      :app:`Pyramid` application.  The router intercepts requests,
878328 197      invokes traversal and/or URL dispatch, calls view functions, and
CM 198      returns responses to the WSGI server on behalf of your
fd5ae9 199      :app:`Pyramid` application.
878328 200
CM 201    URL dispatch
3e2f12 202      An alternative to :term:`traversal` as a mechanism for locating a
780999 203      :term:`context` resource for a :term:`view`.  When you use a
CM 204      :term:`route` in your :app:`Pyramid` application via a :term:`route
878328 205      configuration`, you are using URL dispatch. See the
CM 206      :ref:`urldispatch_chapter` for more information.
207
8c56ae 208    context
a42a1e 209      A resource in the resource tree that is found during :term:`traversal`
780999 210      or :term:`URL dispatch` based on URL data; if it's found via traversal,
3e2f12 211      it's usually a :term:`resource` object that is part of a resource tree;
a42a1e 212      if it's found via :term:`URL dispatch`, it's an object manufactured on
780999 213      behalf of the route's "factory".  A context resource becomes the subject
CM 214      of a :term:`view`, and often has security information attached to
215      it.  See the :ref:`traversal_chapter` chapter and the
3e2f12 216      :ref:`urldispatch_chapter` chapter for more information about how a URL
780999 217      is resolved to a context resource.
878328 218
8c56ae 219    application registry
878328 220      A registry of configuration information consulted by
fd5ae9 221      :app:`Pyramid` while servicing an application.  An application
3e2f12 222      registry maps resource types to views, as well as housing other
878328 223      application-specific component registrations.  Every
fd5ae9 224      :app:`Pyramid` application has one (and only one) application
878328 225      registry.
CM 226
8c56ae 227    template
878328 228      A file with replaceable parts that is capable of representing some
CM 229      text, XML, or HTML when rendered.
230
8c56ae 231    location
a5ffd6 232      The path to an object in a :term:`resource tree`.  See
CM 233      :ref:`location_aware` for more information about how to make a resource
234      object *location-aware*.
878328 235
8c56ae 236    permission
1cb110 237      A string or Unicode object that represents an action being taken against
780999 238      a :term:`context` resource.  A permission is associated with a view name
CM 239      and a resource type by the developer.  Resources are decorated with
240      security declarations (e.g. an :term:`ACL`), which reference these
2e3f70 241      tokens also.  Permissions are used by the active security policy to
780999 242      match the view permission against the resources's statements about which
2e3f70 243      permissions are granted to which principal in a context in order to
780999 244      answer the question "is this user allowed to do this".  Examples of
CM 245      permissions: ``read``, or ``view_blog_entries``.
878328 246
a62cc2 247    default permission
CM 248      A :term:`permission` which is registered as the default for an
249      entire application.  When a default permission is in effect,
250      every :term:`view configuration` registered with the system will
251      be effectively amended with a ``permission`` argument that will
252      require that the executing user possess the default permission in
253      order to successfully execute the associated :term:`view
2033ee 254      callable`.
SP 255
256      .. seealso::
257         
258         See also :ref:`setting_a_default_permission`.
a62cc2 259
878328 260    ACE
CM 261      An *access control entry*.  An access control entry is one element
262      in an :term:`ACL`.  An access control entry is a three-tuple that
263      describes three things: an *action* (one of either ``Allow`` or
264      ``Deny``), a :term:`principal` (a string describing a user or
265      group), and a :term:`permission`.  For example the ACE, ``(Allow,
266      'bob', 'read')`` is a member of an ACL that indicates that the
267      principal ``bob`` is allowed the permission ``read`` against the
780999 268      resource the ACL is attached to.
878328 269
CM 270    ACL
780999 271      An *access control list*.  An ACL is a sequence of :term:`ACE` tuples.
CM 272      An ACL is attached to a resource instance.  An example of an ACL is ``[
273      (Allow, 'bob', 'read'), (Deny, 'fred', 'write')]``.  If an ACL is
274      attached to a resource instance, and that resource is findable via the
275      context resource, it will be consulted any active security policy to
b7057f 276      determine whether a particular request can be fulfilled given the
780999 277      :term:`authentication` information in the request.
878328 278
8c56ae 279    authentication
c5f24b 280      The act of determining that the credentials a user presents
CM 281      during a particular request are "good".  Authentication in
fd5ae9 282      :app:`Pyramid` is performed via an :term:`authentication
878328 283      policy`.
CM 284
8c56ae 285    authorization
780999 286      The act of determining whether a user can perform a specific action.  In
CM 287      pyramid terms, this means determining whether, for a given resource, any
288      :term:`principal` (or principals) associated with the request have the
289      requisite :term:`permission` to allow the request to continue.
290      Authorization in :app:`Pyramid` is performed via its
291      :term:`authorization policy`.
878328 292
8c56ae 293    principal
1cb110 294      A *principal* is a string or Unicode object representing an entity,
SP 295      typically a user or group. Principals are provided by an
296      :term:`authentication policy`. For example, if a user has the
297      :term:`userid` `bob`, and is a member of two groups named `group foo` and
298      `group bar`, then the request might have information attached to it
299      indicating that Bob was represented by three principals: `bob`, `group
300      foo` and `group bar`.
5cf183 301
KOP 302    userid
1cb110 303      A *userid* is a string or Unicode object used to identify and authenticate
SP 304      a real-world user or client. A userid is supplied to an
305      :term:`authentication policy` in order to discover the user's
306      :term:`principals <principal>`. In the authentication policies which
307      :app:`Pyramid` provides, the default behavior returns the user's userid as
308      a principal, but this is not strictly necessary in custom policies that
309      define their principals differently.
878328 310
8c56ae 311    authorization policy
fd5ae9 312      An authorization policy in :app:`Pyramid` terms is a bit of
878328 313      code which has an API which determines whether or not the
CM 314      principals associated with the request can perform an action
315      associated with a permission, based on the information found on the
780999 316      :term:`context` resource.
878328 317
8c56ae 318    authentication policy
fd5ae9 319      An authentication policy in :app:`Pyramid` terms is a bit of
878328 320      code which has an API which determines the current
CM 321      :term:`principal` (or principals) associated with a request.
322
323    WSGI
675153 324      `Web Server Gateway Interface <http://www.wsgi.org/>`_.  This is a
878328 325      Python standard for connecting web applications to web servers,
7138ca 326      similar to the concept of Java Servlets.  :app:`Pyramid` requires
878328 327      that your application be served as a WSGI application.
CM 328
8c56ae 329    middleware
878328 330      *Middleware* is a :term:`WSGI` concept.  It is a WSGI component
CM 331      that acts both as a server and an application.  Interesting uses
332      for middleware exist, such as caching, content-transport
675153 333      encoding, and other functions.  See `WSGI.org <http://www.wsgi.org>`_
878328 334      or `PyPI <http://python.org/pypi>`_ to find middleware for your
CM 335      application.
336
8c56ae 337    pipeline
f8869c 338      The :term:`PasteDeploy` term for a single configuration of a WSGI
37607c 339      server, a WSGI application, with a set of :term:`middleware` in-between.
878328 340
CM 341    Zope
342      `The Z Object Publishing Framework <http://zope.org>`_, a
343      full-featured Python web framework.
344
345    Grok
346      `A web framework based on Zope 3 <http://grok.zope.org>`_.
347
348    Django
349      `A full-featured Python web framework <http://djangoproject.com>`_.
350
351    Pylons
44b651 352      `A lightweight Python web framework <http://docs.pylonsproject.org/projects/pylons-webframework/en/latest/>`_
TL 353      and a predecessor of Pyramid.
878328 354
CM 355    ZODB
2279a5 356       `Zope Object Database <http://zodb.org>`_, a
878328 357       persistent Python object store.
CM 358
359    WebOb
e005c2 360      `WebOb <http://webob.org>`_ is a WSGI request/response
878328 361      library created by Ian Bicking.
CM 362
363    PasteDeploy
6ad5fb 364      `PasteDeploy <http://pythonpaste.org/deploy/>`_ is a library used by
fd5ae9 365      :app:`Pyramid` which makes it possible to configure
878328 366      :term:`WSGI` components together declaratively within an ``.ini``
f8869c 367      file.  It was developed by Ian Bicking.
878328 368
CM 369    Chameleon
8d212a 370      `chameleon <https://chameleon.readthedocs.org/en/latest/>`_ is an
SP 371      attribute language template compiler which supports the :term:`ZPT`
372      templating specification. It is written and maintained by Malthe Borch. It
373      has several extensions, such as the ability to use bracketed (Mako-style)
374      ``${name}`` syntax. It is also much faster than the reference
375      implementation of ZPT. :app:`Pyramid` offers Chameleon templating out of
376      the box in ZPT and text flavors.
878328 377
CM 378    ZPT
379      The `Zope Page Template <http://wiki.zope.org/ZPT/FrontPage>`_
380      templating language.
381
382    METAL
383      `Macro Expansion for TAL <http://wiki.zope.org/ZPT/METAL>`_, a
384      part of :term:`ZPT` which makes it possible to share common look
2e3f70 385      and feel between templates.
878328 386
CM 387    Genshi
388      An `XML templating language <http://pypi.python.org/pypi/Genshi/>`_
389      by Christopher Lenz.
390
391    Jinja2
2e3f70 392      A `text templating language <http://jinja.pocoo.org/2/>`_ by Armin
878328 393      Ronacher.
CM 394
395    Routes
396      A `system by Ben Bangert <http://routes.groovie.org/>`_ which
397      parses URLs and compares them against a number of user defined
fd5ae9 398      mappings. The URL pattern matching syntax in :app:`Pyramid` is
878328 399      inspired by the Routes syntax (which was inspired by Ruby On
CM 400      Rails pattern syntax).
401
8c56ae 402    route
878328 403      A single pattern matched by the :term:`url dispatch` subsystem,
CM 404      which generally resolves to a :term:`root factory` (and then
2033ee 405      ultimately a :term:`view`).
SP 406
407      .. seealso::
408
409         See also :term:`url dispatch`.
878328 410
8c56ae 411    route configuration
c9c3c4 412      Route configuration is the act of associating request parameters with a
CM 413      particular :term:`route` using pattern matching and :term:`route
414      predicate` statements.  See :ref:`urldispatch_chapter` for more
415      information about route configuration.
878328 416
CM 417    Zope Component Architecture
418      The `Zope Component Architecture
419      <http://www.muthukadan.net/docs/zca.html>`_ (aka ZCA) is a system
420      which allows for application pluggability and complex dispatching
421      based on objects which implement an :term:`interface`.
fd5ae9 422      :app:`Pyramid` uses the ZCA "under the hood" to perform view
878328 423      dispatching and other application configuration tasks.
CM 424
8c56ae 425    reStructuredText
44c64f 426      A `plain text markup format <http://docutils.sourceforge.net/rst.html>`_
TL 427      that is the defacto standard for documenting Python projects.
428      The Pyramid documentation is written in reStructuredText.
878328 429
8c56ae 430    root
780999 431      The object at which :term:`traversal` begins when :app:`Pyramid`
CM 432      searches for a :term:`context` resource (for :term:`URL Dispatch`, the
2e3f70 433      root is *always* the context resource unless the ``traverse=`` argument
780999 434      is used in route configuration).
878328 435
8c56ae 436    subpath
878328 437      A list of element "left over" after the :term:`router` has
CM 438      performed a successful traversal to a view.  The subpath is a
439      sequence of strings, e.g. ``['left', 'over', 'names']``.  Within
edd915 440      Pyramid applications that use URL dispatch rather than traversal, you
878328 441      can use ``*subpath`` in the route pattern to influence the
CM 442      subpath.  See :ref:`star_subpath` for more information.
443
8c56ae 444    interface
878328 445      A `Zope interface <http://pypi.python.org/pypi/zope.interface>`_
fd5ae9 446      object.  In :app:`Pyramid`, an interface may be attached to a
3e2f12 447      :term:`resource` object or a :term:`request` object in order to
878328 448      identify that the object is "of a type".  Interfaces are used
fd5ae9 449      internally by :app:`Pyramid` to perform view lookups and other
878328 450      policy lookups.  The ability to make use of an interface is
CM 451      exposed to an application programmers during :term:`view
eecdbc 452      configuration` via the ``context`` argument, the ``request_type``
878328 453      argument and the ``containment`` argument.  Interfaces are also
CM 454      exposed to application developers when they make use of the
fd5ae9 455      :term:`event` system. Fundamentally, :app:`Pyramid`
eecdbc 456      programmers can think of an interface as something that they can
CM 457      attach to an object that stamps it with a "type" unrelated to its
458      underlying Python type.  Interfaces can also be used to describe
459      the behavior of an object (its methods and attributes), but
fd5ae9 460      unless they choose to, :app:`Pyramid` programmers do not need
eecdbc 461      to understand or use this feature of interfaces.
878328 462
8c56ae 463    event
878328 464      An object broadcast to zero or more :term:`subscriber` callables
fd5ae9 465      during normal :app:`Pyramid` system operations during the
878328 466      lifetime of an application.  Application code can subscribe to
CM 467      these events by using the subscriber functionality described in
468      :ref:`events_chapter`.
469
8c56ae 470    subscriber
878328 471      A callable which receives an :term:`event`.  A callable becomes a
c9c3c4 472      subscriber via :term:`imperative configuration` or via
CM 473      :term:`configuration decoration`.  See :ref:`events_chapter` for more
474      information.
878328 475
8c56ae 476    request type
878328 477      An attribute of a :term:`request` that allows for specialization
CM 478      of view invocation based on arbitrary categorization.  The every
fd5ae9 479      :term:`request` object that :app:`Pyramid` generates and
878328 480      manipulates has one or more :term:`interface` objects attached to
CM 481      it.  The default interface attached to a request object is
050868 482      :class:`pyramid.interfaces.IRequest`.
878328 483
CM 484    repoze.lemonade
485      Zope2 CMF-like `data structures and helper facilities
486      <http://docs.repoze.org/lemonade>`_ for CA-and-ZODB-based
fd5ae9 487      applications useful within :app:`Pyramid` applications.
878328 488
CM 489    repoze.catalog
490      An indexing and search facility (fielded and full-text) based on
491      `zope.index <http://pypi.python.org/pypi/zope.index>`_.  See `the
492      documentation <http://docs.repoze.org/catalog>`_ for more
3e4f42 493      information.
878328 494
CM 495    repoze.who
496      `Authentication middleware <http://docs.repoze.org/who>`_ for
fd5ae9 497      :term:`WSGI` applications.  It can be used by :app:`Pyramid` to
878328 498      provide authentication information.
CM 499
500    repoze.workflow
501      `Barebones workflow for Python apps
502      <http://docs.repoze.org/workflow>`_ .  It can be used by
fd5ae9 503      :app:`Pyramid` to form a workflow system.
878328 504
8c56ae 505    virtual root
c25a8f 506      A resource object representing the "virtual" root of a request; this is
CM 507      typically the :term:`physical root` object unless :ref:`vhosting_chapter`
508      is in use.
509
510    physical root
043ccd 511      The object returned by the application :term:`root factory`.
TL 512      Unlike the :term:`virtual root` of a request, it is not impacted by
c25a8f 513      :ref:`vhosting_chapter`: it will always be the actual object returned by
CM 514      the root factory, never a subobject.
515
516    physical path
517      The path required by a traversal which resolve a :term:`resource` starting
518      from the :term:`physical root`.  For example, the physical path of the
519      ``abc`` subobject of the physical root object is ``/abc``.  Physical paths
520      can also be specified as tuples where the first element is the empty
521      string (representing the root), and every other element is a Unicode
522      object, e.g. ``('', 'abc')``.  Physical paths are also sometimes called
523      "traversal paths".
878328 524
8c56ae 525    lineage
780999 526      An ordered sequence of objects based on a ":term:`location` -aware"
CM 527      resource.  The lineage of any given :term:`resource` is composed of
528      itself, its parent, its parent's parent, and so on.  The order of the
529      sequence is resource-first, then the parent of the resource, then its
530      parent's parent, and so on.  The parent of a resource in a lineage is
531      available as its ``__parent__`` attribute.
878328 532
8c56ae 533    root factory
96188a 534      The "root factory" of a :app:`Pyramid` application is called on every
CM 535      request sent to the application.  The root factory returns the traversal
536      root of an application.  It is conventionally named ``get_root``.  An
537      application may supply a root factory to :app:`Pyramid` during the
538      construction of a :term:`Configurator`.  If a root factory is not
539      supplied, the application creates a default root object using the
540      :term:`default root factory`.  
541
542    default root factory
543      If an application does not register a :term:`root factory` at Pyramid
544      configuration time, a *default* root factory is used to created the
545      default root object.  Use of the default root object is useful in
546      application which use :term:`URL dispatch` for all URL-to-view code
547      mappings, and does not (knowingly) use traversal otherwise.
878328 548
CM 549    SQLAlchemy
7e7fc9 550      `SQLAlchemy <http://www.sqlalchemy.org/>`_ is an object
878328 551      relational mapper used in tutorials within this documentation.
CM 552
553    JSON
554      `JavaScript Object Notation <http://www.json.org/>`_ is a data
555      serialization format.
556
6a0602 557    jQuery
CM 558      A popular `Javascript library <http://jquery.org>`_.
559
8c56ae 560    renderer
94bad2 561      A serializer which converts non-:term:`Response` return values from a
SP 562      :term:`view` into a string, and ultimately into a response, usually
563      through :term:`view configuration`. Using a renderer can make writing
564      views that require templating or other serialization, like JSON, less
565      tedious. See :ref:`views_which_use_a_renderer` for more information.
878328 566
410457 567    renderer factory
CM 568      A factory which creates a :term:`renderer`.  See
569      :ref:`adding_and_overriding_renderers` for more information.
570
878328 571    mod_wsgi
CM 572      `mod_wsgi <http://code.google.com/p/modwsgi/>`_ is an Apache
573      module developed by Graham Dumpleton.  It allows :term:`WSGI`
574      applications (such as applications developed using
fd5ae9 575      :app:`Pyramid`) to be served using the Apache web server.
878328 576
8c56ae 577    view predicate
878328 578      An argument to a :term:`view configuration` which evaluates to
CM 579      ``True`` or ``False`` for a given :term:`request`.  All predicates
580      attached to a view configuration must evaluate to true for the
581      associated view to be considered as a possible callable for a
582      given request.
583
8c56ae 584    route predicate
878328 585      An argument to a :term:`route configuration` which implies a value
CM 586      that evaluates to ``True`` or ``False`` for a given
587      :term:`request`.  All predicates attached to a :term:`route
588      configuration` must evaluate to ``True`` for the associated route
589      to "match" the current request.  If a route does not match the
590      current request, the next route (in definition order) is
591      attempted.
592
49eccc 593    routes mapper
CM 594      An object which compares path information from a request to an
595      ordered set of route patterns.  See :ref:`urldispatch_chapter`.
596
8c56ae 597    predicate
878328 598      A test which returns ``True`` or ``False``.  Two different types
fd5ae9 599      of predicates exist in :app:`Pyramid`: a :term:`view predicate`
878328 600      and a :term:`route predicate`.  View predicates are attached to
CM 601      :term:`view configuration` and route predicates are attached to
602      :term:`route configuration`.
603
8c56ae 604    decorator
878328 605      A wrapper around a Python function or class which accepts the
CM 606      function or class as its first argument and which returns an
fd5ae9 607      arbitrary object.  :app:`Pyramid` provides several decorators,
2033ee 608      used for configuration and return value modification purposes.
SP 609
610      .. seealso::
611      
612         See also `PEP 318 <http://www.python.org/dev/peps/pep-0318/>`_.
878328 613
8c56ae 614    configuration declaration
c4503b 615      An individual method call made to a :term:`configuration directive`,
CM 616      such as registering a :term:`view configuration` (via the
050868 617      :meth:`~pyramid.config.Configurator.add_view` method of the
CM 618      configurator) or :term:`route configuration` (via the
619      :meth:`~pyramid.config.Configurator.add_route` method of the
620      configurator).  A set of configuration declarations is also implied by
621      the :term:`configuration decoration` detected by a :term:`scan` of code
622      in a package.
878328 623
8c56ae 624    configuration decoration
878328 625      Metadata implying one or more :term:`configuration declaration`
CM 626      invocations.  Often set by configuration Python :term:`decorator`
197f0c 627      attributes, such as :class:`pyramid.view.view_config`, aka
CM 628      ``@view_config``.
878328 629
8c56ae 630    scan
fd5ae9 631      The term used by :app:`Pyramid` to define the process of
878328 632      importing and examining all code in a Python package or module for
CM 633      :term:`configuration decoration`.
634
8c56ae 635    configurator
878328 636      An object used to do :term:`configuration declaration` within an
CM 637      application.  The most common configurator is an instance of the
050868 638      :class:`pyramid.config.Configurator` class.
878328 639
8c56ae 640    imperative configuration
878328 641      The configuration mode in which you use Python to call methods on
CM 642      a :term:`Configurator` in order to add each :term:`configuration
643      declaration` required by your application.
644
8c56ae 645    declarative configuration
4e1199 646      The configuration mode in which you use the combination of
3cf66a 647      :term:`configuration decoration` and a :term:`scan` to configure your
CM 648      Pyramid application.
878328 649
2f4bde 650    Not Found View
050868 651       An :term:`exception view` invoked by :app:`Pyramid` when the developer
CM 652       explicitly raises a :class:`pyramid.httpexceptions.HTTPNotFound`
653       exception from within :term:`view` code or :term:`root factory` code,
654       or when the current request doesn't match any :term:`view
655       configuration`.  :app:`Pyramid` provides a default implementation of a
2f4bde 656       Not Found View; it can be overridden.  See
878328 657       :ref:`changing_the_notfound_view`.
CM 658
8c56ae 659    Forbidden view
050868 660       An :term:`exception view` invoked by :app:`Pyramid` when the developer
CM 661       explicitly raises a :class:`pyramid.httpexceptions.HTTPForbidden`
662       exception from within :term:`view` code or :term:`root factory` code,
663       or when the :term:`view configuration` and :term:`authorization policy`
239a93 664       found for a request disallows a particular view invocation.
050868 665       :app:`Pyramid` provides a default implementation of a forbidden view;
CM 666       it can be overridden.  See :ref:`changing_the_forbidden_view`.
878328 667
239a93 668    Exception view
CM 669       An exception view is a :term:`view callable` which may be
fd5ae9 670       invoked by :app:`Pyramid` when an exception is raised during
239a93 671       request processing.  See :ref:`exception_views` for more
CM 672       information.
673
1ffb8e 674    HTTP Exception
CM 675       The set of exception classes defined in :mod:`pyramid.httpexceptions`.
676       These can be used to generate responses with various status codes when
2033ee 677       raised or returned from a :term:`view callable`.
SP 678
679       .. seealso::
680
681           See also :ref:`http_exceptions`.
878328 682
CM 683    thread local
7e7fc9 684       A thread-local variable is one which is essentially a global variable
CM 685       in terms of how it is accessed and treated, however, each `thread
686       <http://en.wikipedia.org/wiki/Thread_(computer_science)>`_ used by the
687       application may have a different value for this same "global" variable.
688       :app:`Pyramid` uses a small number of thread local variables, as
eb71e9 689       described in :ref:`threadlocals_chapter`.
2033ee 690
SP 691       .. seealso::
692
693           See also the :class:`stdlib documentation <threading.local>`
694           for more information.
e4e3aa 695
8c56ae 696    multidict
2a1c3f 697      An ordered dictionary that can have multiple values for each key. Adds
CM 698      the methods ``getall``, ``getone``, ``mixed``, ``add`` and
699      ``dict_of_lists`` to the normal dictionary interface.  See
700      :ref:`multidict_narr` and :class:`pyramid.interfaces.IMultiDict`.
e4e3aa 701
125e97 702    PyPI
CM 703      `The Python Package Index <http://pypi.python.org/pypi>`_, a
704      collection of software available for Python.
e0887e 705
CM 706    Agendaless Consulting
707      A consulting organization formed by Paul Everitt, Tres Seaver,
2033ee 708      and Chris McDonough.
SP 709
710      .. seealso::
711
712          See also `Agendaless Consulting <http://agendaless.com>`_.
9ec2d6 713
CM 714    Jython
7e7fc9 715      A `Python implementation <http://www.jython.org/>`_ written for
9ec2d6 716      the Java Virtual Machine.
CM 717
718    Python
7e7fc9 719      The `programming language <http://python.org>`_ in which
fd5ae9 720      :app:`Pyramid` is written.
9ec2d6 721
CM 722    CPython
723      The C implementation of the Python language.  This is the
724      reference implementation that most people refer to as simply
725      "Python"; :term:`Jython`, Google's App Engine, and `PyPy
cff857 726      <http://doc.pypy.org/en/latest/>`_ are examples of
9ec2d6 727      non-C based Python implementations.
590fe7 728
CM 729    View Lookup
294929 730      The act of finding and invoking the "best" :term:`view callable`,
780999 731      given a :term:`request` and a :term:`context` resource.
590fe7 732
780999 733    Resource Location
CM 734      The act of locating a :term:`context` resource given a :term:`request`.
735      :term:`Traversal` and :term:`URL dispatch` are the resource location
736      subsystems used by :app:`Pyramid`.
590fe7 737
abf62d 738    Google App Engine
CM 739      `Google App Engine <http://code.google.com/appengine/>`_ (aka
740      "GAE") is a Python application hosting service offered by Google.
fd5ae9 741      :app:`Pyramid` runs on GAE.
abf62d 742
e6fa66 743    Venusian
452005 744      :ref:`Venusian` is a library which
e6fa66 745      allows framework authors to defer decorator actions.  Instead of
CM 746      taking actions when a function (or class) decorator is executed
747      at import time, the action usually taken by the decorator is
fd5ae9 748      deferred until a separate "scan" phase.  :app:`Pyramid` relies
e6fa66 749      on Venusian to provide a basis for its :term:`scan` feature.
7534ba 750
CM 751    Translation String
197f0c 752      An instance of :class:`pyramid.i18n.TranslationString`, which
7534ba 753      is a class that behaves like a Unicode string, but has several
CM 754      extra attributes such as ``domain``, ``msgid``, and ``mapping``
755      for use during translation.  Translation strings are usually
756      created by hand within software, but are sometimes created on the
757      behalf of the system for automatic template translation.  For
758      more information, see :ref:`i18n_chapter`.
759
760    Translation Domain
761      A string representing the "context" in which a translation was
762      made.  For example the word "java" might be translated
763      differently if the translation domain is "programming-languages"
764      than would be if the translation domain was "coffee".  A
2a079b 765      translation domain is represented by a collection of ``.mo`` files
7534ba 766      within one or more :term:`translation directory` directories.
CM 767
2a079b 768    Translation Context
SP 769      A string representing the "context" in which a translation was
770      made within a given :term:`translation domain`. See the gettext
771      documentation, `11.2.5 Using contexts for solving ambiguities
772      <https://www.gnu.org/software/gettext/manual/gettext.html#Contexts>`_
773      for more information.
774
7534ba 775    Translator
050868 776      A callable which receives a :term:`translation string` and returns a
CM 777      translated Unicode object for the purposes of internationalization.  A
778      :term:`localizer` supplies a translator to a :app:`Pyramid` application
779      accessible via its :class:`~pyramid.i18n.Localizer.translate` method.
7534ba 780
CM 781    Translation Directory
782      A translation directory is a :term:`gettext` translation
783      directory.  It contains language folders, which themselves
784      contain ``LC_MESSAGES`` folders, which contain ``.mo`` files.
785      Each ``.mo`` file represents a set of translations for a language
786      in a :term:`translation domain`.  The name of the ``.mo`` file
787      (minus the .mo extension) is the translation domain name.
788
789    Localizer
197f0c 790      An instance of the class :class:`pyramid.i18n.Localizer` which
7534ba 791      provides translation and pluralization services to an
CM 792      application.  It is retrieved via the
197f0c 793      :func:`pyramid.i18n.get_localizer` function.
7534ba 794
CM 795    Locale Name
796      A string like ``en``, ``en_US``, ``de``, or ``de_AT`` which
797      uniquely identifies a particular locale.
798
b5dc7f 799    Default Locale Name
CM 800      The :term:`locale name` used by an application when no explicit
801      locale name is set.  See :ref:`localization_deployment_settings`.
802
7534ba 803    Locale Negotiator
CM 804      An object supplying a policy determining which :term:`locale
805      name` best represents a given :term:`request`.  It is used by the
197f0c 806      :func:`pyramid.i18n.get_locale_name`, and
CM 807      :func:`pyramid.i18n.negotiate_locale_name` functions, and
808      indirectly by :func:`pyramid.i18n.get_localizer`.  The
809      :func:`pyramid.i18n.default_locale_negotiator` function
7534ba 810      is an example of a locale negotiator.
CM 811
812    Gettext
813      The GNU `gettext <http://www.gnu.org/software/gettext/>`_
fd5ae9 814      library, used by the :app:`Pyramid` translation machinery.
7534ba 815
CM 816    Babel
8d212a 817      A `collection of tools <http://babel.pocoo.org/en/latest/>`_ for
SP 818      internationalizing Python applications. :app:`Pyramid` does not depend on
819      Babel to operate, but if Babel is installed, additional locale
820      functionality becomes available to your application.
7534ba 821
5119ae 822    Lingua
98a99d 823      A package by Wichert Akkerman which provides the ``pot-create``
WA 824      command to extract translateable messages from Python sources
825      and Chameleon ZPT template files.
5119ae 826
7534ba 827    Message Identifier
CM 828      A string used as a translation lookup key during localization.
829      The ``msgid`` argument to a :term:`translation string` is a
830      message identifier.  Message identifiers are also present in a
831      :term:`message catalog`.
832
833    Message Catalog
834      A :term:`gettext` ``.mo`` file containing translations.
835
df3beb 836    Internationalization
CM 837      The act of creating software with a user interface that can
838      potentially be displayed in more than one language or cultural
839      context.  Often shortened to "i18n" (because the word
2033ee 840      "internationalization" is I, 18 letters, then N).
SP 841
842      .. seealso::
843
844          See also :term:`Localization`.
7534ba 845
df3beb 846    Localization
CM 847      The process of displaying the user interface of an
848      internationalized application in a particular language or
849      cultural context.  Often shortened to "l10" (because the word
2033ee 850      "localization" is L, 10 letters, then N).
SP 851
852      .. seealso::
853      
854          See also :term:`Internationalization`.
250c02 855
CM 856    renderer globals
c6601f 857       Values injected as names into a renderer by a
CM 858       :class:`pyramid.event.BeforeRender` event.
81d3b5 859
CM 860    response callback
861       A user-defined callback executed by the :term:`router` at a
862       point after a :term:`response` object is successfully created.
2033ee 863
SP 864       .. seealso::
865
866           See also :ref:`using_response_callbacks`.
81d3b5 867
CM 868    finished callback
869       A user-defined callback executed by the :term:`router`
870       unconditionally at the very end of request processing .  See
871       :ref:`using_finished_callbacks`.
70f1cd 872
CM 873    pregenerator
874       A pregenerator is a function associated by a developer with a
050868 875       :term:`route`.  It is called by
CM 876       :meth:`~pyramid.request.Request.route_url` in order to adjust the set
877       of arguments passed to it by the user for special purposes.  It will
878       influence the URL returned by
879       :meth:`~pyramid.request.Request.route_url`.  See
880       :class:`pyramid.interfaces.IRoutePregenerator` for more information.
04ebd5 881
CM 882    session
883       A namespace that is valid for some period of continual activity
884       that can be used to represent a user's interaction with a web
885       application.
886
887    session factory
643a83 888       A callable, which, when called with a single argument named ``request``
CM 889       (a :term:`request` object), returns a :term:`session` object.  See
890       :ref:`using_the_default_session_factory`,
891       :ref:`using_alternate_session_factories` and
892       :meth:`pyramid.config.Configurator.set_session_factory` for more
893       information.
04ebd5 894
7698bd 895    Mako
043ccd 896      `Mako <http://www.makotemplates.org/>`_ is a template language
7698bd 897      which refines the familiar ideas of componentized layout and inheritance
BB 898      using Python with Python scoping and calling semantics.
2f980d 899
CM 900    View handler
901      A view handler ties together
d7f259 902      :meth:`pyramid.config.Configurator.add_route` and
2323d4 903      :meth:`pyramid.config.Configurator.add_view` to make it more convenient
CM 904      to register a collection of views as a single class when using
905      :term:`url dispatch`.  View handlers ship as part of the
906      :term:`pyramid_handlers` add-on package.
a1365e 907
CM 908    Deployment settings
909      Deployment settings are settings passed to the :term:`Configurator` as a
910      ``settings`` argument.  These are later accessible via a
050868 911      ``request.registry.settings`` dictionary in views or as
CM 912      ``config.registry.settings`` in configuration code.  Deployment settings
913      can be used as global application values.
a1365e 914
6ee49a 915    WebTest
CM 916      `WebTest <http://pythonpaste.org/webtest/>`_ is a package which can help
917      you write functional tests for your WSGI application.
918
80aa77 919    view mapper
CM 920     A view mapper is a class which implements the
921     :class:`pyramid.interfaces.IViewMapperFactory` interface, which performs
922     view argument and return value mapping.  This is a plug point for
923     extension builders, not normally used by "civilians".
6ee49a 924
5653d1 925    matchdict
CM 926     The dictionary attached to the :term:`request` object as
927     ``request.matchdict`` when a :term:`URL dispatch` route has been matched.
928     Its keys are names as identified within the route pattern; its values are
929     the values matched by each pattern name.
c9c3c4 930
CM 931    pyramid_zcml
932      An add-on package to :app:`Pyramid` which allows applications to be
55ce9d 933      configured via :term:`ZCML`.  It is available on :term:`PyPI`.  If you
050868 934      use :mod:`pyramid_zcml`, you can use ZCML as an alternative to
55ce9d 935      :term:`imperative configuration` or :term:`configuration decoration`.
c9c3c4 936
CM 937    ZCML
938      `Zope Configuration Markup Language
939      <http://www.muthukadan.net/docs/zca.html#zcml>`_, an XML dialect
2e3f70 940      used by Zope and :term:`pyramid_zcml` for configuration tasks.
c9c3c4 941
78fe62 942    pyramid_handlers
CM 943      An add-on package which allows :app:`Pyramid` users to create classes
944      that are analogues of Pylons 1 "controllers".  See
7e7fc9 945      http://docs.pylonsproject.org/projects/pyramid_handlers/dev/ .
78fe62 946
2323d4 947    pyramid_jinja2
CM 948      :term:`Jinja2` templating system bindings for Pyramid, documented at
949      http://docs.pylonsproject.org/projects/pyramid_jinja2/dev/ .  This
758464 950      package also includes a scaffold named
2323d4 951      ``pyramid_jinja2_starter``, which creates an application package based
CM 952      on the Jinja2 templating system.
953
0eb82e 954    Akhet
94c28e 955      `Akhet <http://docs.pylonsproject.org/projects/akhet/en/latest/>`_ is a 
MO 956      Pyramid library and demo application with a Pylons-like feel.
957      It's most known for its former application scaffold, which helped 
7096d9 958      users transition from Pylons and those preferring a more Pylons-like API.
94c28e 959      The scaffold has been retired but the demo plays a similar role. 
2323d4 960
34515f 961    Pyramid Community Cookbook
6860b2 962      Additional, community-based documentation for Pyramid which presents
SP 963      topical, practical uses of Pyramid:
964      :ref:`Pyramid Community Cookbook <cookbook:pyramid-cookbook>`
4cf41f 965
ff3ba5 966    distutils
CM 967      The standard system for packaging and distributing Python packages.  See
968      http://docs.python.org/distutils/index.html for more information.
969      :term:`setuptools` is actually an *extension* of the Distutils.
970
df15ed 971    exception response
CM 972      A :term:`response` that is generated as the result of a raised exception
973      being caught by an :term:`exception view`.
2323d4 974
f98925 975    PyPy
CM 976      PyPy is an "alternative implementation of the Python
f65e19 977      language": http://pypy.org/
f98925 978
dc7122 979    tween
CM 980      A bit of code that sits between the Pyramid router's main request
981      handling function and the upstream WSGI component that uses
05f610 982      :app:`Pyramid` as its 'app'.  The word "tween" is a contraction of
CM 983      "between".  A tween may be used by Pyramid framework extensions, to
984      provide, for example, Pyramid-specific view timing support, bookkeeping
985      code that examines exceptions before they are returned to the upstream
986      WSGI application, or a variety of other features.  Tweens behave a bit
37607c 987      like :term:`WSGI` :term:`middleware` but they have the benefit of running in a
dc7122 988      context in which they have access to the Pyramid :term:`application
05f610 989      registry` as well as the Pyramid rendering machinery.  See
CM 990      :ref:`registering_tweens`.
dc7122 991
391402 992    pyramid_debugtoolbar
4b43ba 993      A Pyramid add-on which displays a helpful debug toolbar "on top of" HTML
391402 994      pages rendered by your application, displaying request, routing, and
050868 995      database information.  :mod:`pyramid_debugtoolbar` is configured into
CM 996      the ``development.ini`` of all applications which use a Pyramid
391402 997      :term:`scaffold`.  For more information, see
4b43ba 998      http://docs.pylonsproject.org/projects/pyramid_debugtoolbar/en/latest/.
391402 999
CM 1000    scaffold
989544 1001      A project template that generates some of the major parts of a Pyramid
SP 1002      application and helps users to quickly get started writing larger
1003      applications.  Scaffolds are usually used via the ``pcreate`` command.
391402 1004
bfdbcf 1005    pyramid_exclog
CM 1006      A package which logs Pyramid application exception (error) information
1007      to a standard Python logger.  This add-on is most useful when
1008      used in production applications, because the logger can be configured to
1009      log to a file, to UNIX syslog, to the Windows Event Log, or even to
1010      email. See its `documentation
f75a3f 1011      <http://docs.pylonsproject.org/projects/pyramid_exclog/dev/>`_.
d36b56 1012
5edd54 1013    console script
CM 1014      A script written to the ``bin`` (on UNIX, or ``Scripts`` on Windows)
d67566 1015      directory of a Python installation or :term:`virtual environment` as the
SP 1016      result of running ``pip install`` or ``pip install -e .``.
5edd54 1017
c4503b 1018    introspector
CM 1019      An object with the methods described by
1020      :class:`pyramid.interfaces.IIntrospector` that is available in both
1021      configuration code (for registration) and at runtime (for querying) that
1022      allows a developer to introspect configuration statements and
1023      relationships between those statements.
1024
1025    conflict resolution
1026      Pyramid attempts to resolve ambiguous configuration statements made by
1027      application developers via automatic conflict resolution.  Automatic
1028      conflict resolution is described in
1029      :ref:`automatic_conflict_resolution`.  If Pyramid cannot resolve
1030      ambiguous configuration statements, it is possible to manually resolve
1031      them as described in :ref:`manually_resolving_conflicts`.
1032
1033    configuration directive
1034      A method of the :term:`Configurator` which causes a configuration action
1035      to occur.  The method :meth:`pyramid.config.Configurator.add_view` is a
1036      configuration directive, and application developers can add their own
1037      directives as necessary (see :ref:`add_directive`).
1038
1039    action
1040      Represents a pending configuration statement generated by a call to a
1041      :term:`configuration directive`.  The set of pending configuration
1042      actions are processed when :meth:`pyramid.config.Configurator.commit` is
1043      called.
1044
1045    discriminator
1046      The unique identifier of an :term:`action`.
1047
1048    introspectable
1049       An object which implements the attributes and methods described in
1050       :class:`pyramid.interfaces.IIntrospectable`.  Introspectables are used
1051       by the :term:`introspector` to display configuration information about
1052       a running Pyramid application.  An introspectable is associated with a
1053       :term:`action` by virtue of the
1054       :meth:`pyramid.config.Configurator.action` method.
56df90 1055
CM 1056    asset descriptor
1057       An instance representing an :term:`asset specification` provided by the
1058       :meth:`pyramid.path.AssetResolver.resolve` method.  It supports the
1059       methods and attributes documented in
1060       :class:`pyramid.interfaces.IAssetDescriptor`.
c3a36b 1061
CM 1062    Waitress
1063       A :term:`WSGI` server that runs on UNIX and Windows under Python 2.6+
1064       and Python 3.2+.  Projects generated via Pyramid scaffolding use
1065       Waitress as a WGSI server.  See
1066       http://docs.pylonsproject.org/projects/waitress/en/latest/ for detailed
1067       information.
1068
1069    Green Unicorn
1070       Aka ``gunicorn``, a fast :term:`WSGI` server that runs on UNIX under
ab2fed 1071       Python 2.6+ or Python 3.1+.  See http://gunicorn.org/ for detailed 
CM 1072       information.
0196b2 1073
CM 1074    predicate factory
1075       A callable which is used by a third party during the registration of a
95f766 1076       route, view, or subscriber predicates to extend the configuration
0196b2 1077       system.  See :ref:`registering_thirdparty_predicates` for more
CM 1078       information.
95f766 1079
d559af 1080    add-on
PE 1081       A Python :term:`distribution` that uses Pyramid's extensibility
1082       to plug into a Pyramid application and provide extra,
c6601f 1083       configurable services.
ab2fed 1084
CM 1085    pyramid_redis_sessions
1086       A package by Eric Rasmussen which allows you to store Pyramid session 
1087       data in a Redis database.  See 
1088       https://pypi.python.org/pypi/pyramid_redis_sessions for more information.
1089
3a4119 1090    cache busting
MM 1091       A technique used when serving a cacheable static asset in order to force
1092       a client to query the new version of the asset. See :ref:`cache_busting`
1093       for more information.
b4147b 1094
MM 1095    view deriver
1096       A view deriver is a composable component of the view pipeline which is
1097       used to create a :term:`view callable`. A view deriver is a callable
1098       implementing the :class:`pyramid.interfaces.IViewDeriver` interface.
890ea8 1099       Examples of built-in derivers including view mapper, the permission
7fc181 1100       checker, and applying a renderer to a dictionary returned from the view.
6b35eb 1101
MM 1102    truthy string
1103       A string represeting a value of ``True``. Acceptable values are
1104       ``t``, ``true``, ``y``, ``yes``, ``on`` and ``1``.
1105
1106    falsey string
1107       A string represeting a value of ``False``. Acceptable values are
1108       ``f``, ``false``, ``n``, ``no``, ``off`` and ``0``.
231a53 1109
a7dd05 1110    pip
d60369 1111       The `Python Packaging Authority's <https://www.pypa.io/>`_ recommended
SP 1112       tool for installing Python packages.
ec1bbf 1113
SP 1114    pyvenv
d60369 1115       The Python Packaging Authority formerly recommended using this command
SP 1116       for `creating virtual environments on Python 3.4 and 3.5
1117       <https://packaging.python.org/en/latest/installing/#creating-virtual-environments>`_,
83d7d9 1118       but it is deprecated in 3.6 in favor of ``python3 -m venv`` on UNIX or
SP 1119       ``python -m venv`` on Windows, which is backward compatible on Python
1120       3.3 and greater.
d60369 1121
d67566 1122    virtual environment
SP 1123       An isolated Python environment that allows packages to be installed for
1124       use by a particular application, rather than being installed system wide.
1125
d60369 1126    venv
SP 1127       The `Python Packaging Authority's <https://www.pypa.io/>`_ recommended
83d7d9 1128       tool for creating virtual environments on Python 3.3 and greater.
d67566 1129
SP 1130       Note: whenever you encounter commands prefixed with ``$VENV`` (Unix)
1131       or ``%VENV`` (Windows), know that that is the environment variable whose
1132       value is the root of the virtual environment in question.