• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1The Future Of Paste
2===================
3
4Introduction
5------------
6
7Paste has been under development for a while, and has lots of code in it.  Too much code!  The code is largely decoupled except for some core functions shared by many parts of the code.  Those core functions are largely replaced in `WebOb <http://pythonpaste.org/webob/>`_, and replaced with better implementations.
8
9The future of these pieces is to split them into independent packages, and refactor the internal Paste dependencies to rely instead on WebOb.
10
11Already Extracted
12-----------------
13
14paste.fixture:
15  WebTest
16  ScriptTest
17
18paste.lint:
19  wsgiref.validate
20
21paste.exceptions and paste.evalexception:
22  WebError
23
24paste.util.template:
25  Tempita
26
27
28To Be Separated
29---------------
30
31paste.httpserver and paste.debug.watchthreads:
32  Not sure what to call this.
33
34paste.cascade and paste.errordocuments:
35  Not sure; Ben has an implementation of errordocuments in ``pylons.middleware.StatusCodeRedirect``
36
37paste.urlmap, paste.deploy.config.PrefixMiddleware:
38  In... some routing thing?  Together with the previous package?
39
40paste.proxy:
41  WSGIProxy (needs lots of cleanup though)
42
43paste.fileapp, paste.urlparser.StaticURLParser, paste.urlparser.PkgResourcesParser:
44  In some new file-serving package.
45
46paste.cgiapp, wphp.fcgi_app:
47  Some proxyish app... maybe WSGIProxy?
48
49paste.translogger, paste.debug.prints, paste.util.threadedprint, wsgifilter.proxyapp.DebugHeaders:
50  Some... other place.  Something loggy.
51
52paste.registry, paste.config:
53  Not sure.  Alberto Valverde expressed interest in splitting out paste.registry.
54
55paste.cgitb_catcher:
56  Move to WebError?  Not sure if it matters.  For some reason people use this, though.
57
58
59To Deprecate
60------------
61
62(In that, I won't extract these anywhere; I'm not going to do any big deletes anytime soon, though)
63
64paste.recursive
65  Better to do it manually (with webob.Request.get_response)
66
67paste.wsgiwrappers, paste.request, paste.response, paste.wsgilib, paste.httpheaders, paste.httpexceptions:
68  All the functionality is already in WebOb.
69
70paste.urlparser.URLParser:
71  Really this is tied to paste.webkit more than anything.
72
73paste.auth.*:
74  Well, these all need to be refactored, and replacements exist in AuthKit and repoze.who.  Some pieces might still have utility.
75
76paste.debug.profile:
77  I think repoze.profile supersedes this.
78
79paste.debug.wdg_validator:
80  It could get reimplemented with more options for validators, but I'm not really that interested at the moment.  The code is nothing fancy.
81
82paste.transaction:
83  More general in repoze.tm
84
85paste.url:
86  No one uses this
87
88
89Undecided
90---------
91
92paste.debug.fsdiff:
93  Maybe ScriptTest?
94
95paste.session:
96  It's an okay naive session system.  But maybe Beaker makes it irrelevant (Beaker does seem slightly more complex to setup).  But then, this can just live here indefinitely.
97
98paste.gzipper:
99  I'm a little uncomfortable with this in concept.  It's largely in WebOb right now, but not as middleware.
100
101paste.reloader:
102  Maybe this should be moved to paste.script (i.e., paster serve)
103
104paste.debug.debugapp, paste.script.testapp:
105  Alongside other debugging tools, I guess
106
107paste.progress:
108  Not sure this works.
109