Home | History | Annotate | Download | only in docs
      1 The Future Of Paste
      2 ===================
      3 
      4 Introduction
      5 ------------
      6 
      7 Paste 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 
      9 The future of these pieces is to split them into independent packages, and refactor the internal Paste dependencies to rely instead on WebOb.
     10 
     11 Already Extracted
     12 -----------------
     13 
     14 paste.fixture:
     15   WebTest
     16   ScriptTest
     17 
     18 paste.lint:
     19   wsgiref.validate
     20 
     21 paste.exceptions and paste.evalexception:
     22   WebError
     23 
     24 paste.util.template:
     25   Tempita
     26 
     27 
     28 To Be Separated
     29 ---------------
     30 
     31 paste.httpserver and paste.debug.watchthreads:
     32   Not sure what to call this.
     33 
     34 paste.cascade and paste.errordocuments:
     35   Not sure; Ben has an implementation of errordocuments in ``pylons.middleware.StatusCodeRedirect``
     36 
     37 paste.urlmap, paste.deploy.config.PrefixMiddleware:
     38   In... some routing thing?  Together with the previous package?
     39 
     40 paste.proxy:
     41   WSGIProxy (needs lots of cleanup though)
     42 
     43 paste.fileapp, paste.urlparser.StaticURLParser, paste.urlparser.PkgResourcesParser:
     44   In some new file-serving package.
     45 
     46 paste.cgiapp, wphp.fcgi_app:
     47   Some proxyish app... maybe WSGIProxy?
     48 
     49 paste.translogger, paste.debug.prints, paste.util.threadedprint, wsgifilter.proxyapp.DebugHeaders:
     50   Some... other place.  Something loggy.
     51 
     52 paste.registry, paste.config:
     53   Not sure.  Alberto Valverde expressed interest in splitting out paste.registry.
     54 
     55 paste.cgitb_catcher:
     56   Move to WebError?  Not sure if it matters.  For some reason people use this, though.
     57 
     58 
     59 To 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 
     64 paste.recursive
     65   Better to do it manually (with webob.Request.get_response)
     66 
     67 paste.wsgiwrappers, paste.request, paste.response, paste.wsgilib, paste.httpheaders, paste.httpexceptions:
     68   All the functionality is already in WebOb.
     69 
     70 paste.urlparser.URLParser:
     71   Really this is tied to paste.webkit more than anything.
     72 
     73 paste.auth.*:
     74   Well, these all need to be refactored, and replacements exist in AuthKit and repoze.who.  Some pieces might still have utility.
     75 
     76 paste.debug.profile:
     77   I think repoze.profile supersedes this.
     78 
     79 paste.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 
     82 paste.transaction:
     83   More general in repoze.tm
     84 
     85 paste.url:
     86   No one uses this
     87 
     88 
     89 Undecided
     90 ---------
     91 
     92 paste.debug.fsdiff:
     93   Maybe ScriptTest?
     94 
     95 paste.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 
     98 paste.gzipper:
     99   I'm a little uncomfortable with this in concept.  It's largely in WebOb right now, but not as middleware.
    100 
    101 paste.reloader:
    102   Maybe this should be moved to paste.script (i.e., paster serve)
    103 
    104 paste.debug.debugapp, paste.script.testapp:
    105   Alongside other debugging tools, I guess
    106 
    107 paste.progress:
    108   Not sure this works.
    109