Skip to content
This repository
tree: b6a102e5ec
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 145 lines (92 sloc) 4.762 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
Pyramid TODOs
=============

Nice-to-Have
------------

- config.set_registry_attr (with conflict detection).

- _fix_registry should dictify the registry being fixed.

- Provide the presumed renderer name to the called view as an attribute of
  the request.

- Have action methods return their discriminators.

- Add docs about upgrading between Pyramid versions (e.g. how to see
  deprecation warnings).

- Fix renderers chapter to better document system values passed to template
  renderers.

- Modify view mapper narrative docs to not use pyramid_handlers.

- Modify the urldispatch chapter examples to assume a scan rather than
  ``add_view``.

- Introspection:

  * ``default root factory`` category (prevent folks from needing to searh
    "root factories" category)?

  * ``default view mapper`` category (prevent folks from needing to search
    "view mappers" category)?

  * get rid of "tweens" category (can't sort properly?)

- Fix deployment recipes in cookbook (discourage proxying without changing
  server).

- Try "with transaction.manager" in an exception view with SQLA (preempt
  homina homina response about how to write "to the database" from within in
  an exception view). Note: tried this and couldn't formulate the right
  situation where the database could not be written to within an exception
  view (but didn't try exhaustively).

- Add narrative docs for wsgiapp and wsgiapp2.

- Flesh out "Paste" narrative docs chapter.

- Basic WSGI documentation (pipeline / app / server).

- Change docs about creating a venusian decorator to not use ZCA (use
  configurator methods instead).

- Try to better explain the relationship between a renderer and a template in
  the templates chapter and elsewhere. Scan the documentation for reference
  to a renderer as *only* view configuration (it's a larger concept now).

- Add better docs about what-to-do-when-behind-a-proxy: paste.urlmap ("/foo =
  app1" and "domain app1.localhost = app1"), ProxyPreserveHost and the nginx
  equivalent, preserving HTTPS URLs.

- Make "localizer" a property of request (instead of requiring
  "get_localizer(request)"?

- Alias the stupid long default session factory name.

- Debug option to print view matching decision (e.g. debug_viewlookup or so).

- Non-bwcompat use of threadlocals that need to be documented or ameliorated:

  security.principals_allowed_by_permission

  resource.OverrideProvider._get_overrides: can't credibly be removed,
  because it stores an overrideprovider as a module-scope global.

  traversal.traverse: this API is a stepchild, and needs to be changed.

  Configurator.add_translation_dirs: not passed any context but a message,
  can't credibly be removed.

- Deprecate pyramid.security.view_execution_permitted (it only works for
  traversal).

- Create a function which performs a recursive request.

- Create a ``render_view`` that works by using config.derive_view against an
  existing view callable instead of querying the registry (some sort of API
  for rendering a view callable object to a response from within another view
  callable). Possible idea: have config.add_view mark up the
  function/method/class like @view_config does, then use the attached info to
  derive a view callable whenever called via some API.

- Provide a ``has_view`` function.

- Update App engine chapter with less creaky directions.

Future
------

- 1.5: remove ``pyramid.view.static`` and ``pyramid.view.is_response``.

- 1.5: turn ``pyramid.settings.Settings`` into a function that returns the
  original dict (after ``__getattr__`` deprecation period, it was deprecated
  in 1.2).

- 1.5: Remove ``pyramid.requests.DeprecatedRequestMethodsMixin``.

- 1.6: Maybe? deprecate set_request_property in favor of pointing people at
  set_request_method.

- 1.6: Remove IContextURL and TraversalContextURL.

Probably Bad Ideas
------------------

- Add functionality that mocks the behavior of ``repoze.browserid``.

- Consider implementing the API outlined in
  http://plope.com/pyramid_auth_design_api_postmortem, phasing out the
  current auth-n-auth abstractions in a backwards compatible way.

- Maybe add ``add_renderer_globals`` method to Configurator.

- Supply ``X-Vhm-Host`` support (probably better to do what paste#prefix
  middleware does).

- Have ``remember`` and ``forget`` actually set headers on the response using
  a response callback (and return the empty list)?

- http://pythonguy.wordpress.com/2011/06/22/dynamic-variables-revisited/
  instead of thread locals

- Context manager for creating a new configurator (replacing
  ``with_package``). E.g.::

    with config.partial(package='bar') as c:
        c.add_view(...)

  or::

    with config.partial(introspection=False) as c:
        c.add_view(..)

Something went wrong with that request. Please try again.