Sean Davis wrote: > Hi, all. I just upgraded to paste 1.2 and started getting these > errors. The same code works on paste 1.1.1. I can try posting to a > paste list, if nothing obvious comes up here, as I think this is > probably a Paste issue. Any thoughts? > > Thanks, > sean > > > Module pylons.error:*226* in |respond| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> *try** :* > __traceback_supplement__ *=* Supplement*,* self*,* environ > app_iter *=* self*.*application*(*environ* ,* > detect_start_response*)* > *try**:* > return_iter *=* list*(*app_iter*)*|| >> > <http://localhost:5000/files#>app_iter *=* > self*.*application*(*environ*,* detect_start_response *)*| > Module paste.httpexceptions:*622* in |__call__| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> return catch_errors_app( > self.application, environ, start_response, > self.send_http_response, catch=HTTPException) > > def send_http_response(self, environ, start_response, > exc_info):||>> > <http://localhost:5000/files#>self*.*send_http_response*,* > catch*=*HTTPException*)*| > Module paste.wsgilib:*226* in |catch_errors_app| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> """ > try: > app_iter = application(environ, start_response) > except catch: > return error_callback_app(environ, start_response, > sys.exc_info())|| >> <http://localhost:5000/files#>app_iter *=* > application*(*environ*,* start_response*)*| > Module paste.deploy.config:*161* in |__call__| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> CONFIG*.* > push_thread_config*(*conf*)* > *try**:* > app_iter *=* self*.*application*(*environ* ,* > start_response*)* > *finally**:* > *if* app_iter *is* None*:*|| >> > <http://localhost:5000/files#>app_iter *=* > self*.*application*(*environ*,* start_response *)*| > Module pylons.wsgiapp:*263* in |__call__| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> *def* *__call__**(**self**,* > *environ**,* *start_response**)**:* > environ*[*'pylons.environ_config'*]* *=* self*.* econf > *return* self*.*app*(*environ*,* start_response *)*||>> > <http://localhost:5000/files#>*return* self*.*app*(*environ*,* > start_response*)*| > Module beaker.cache:*124* in |__call__| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> > environ['paste.registry'].register(cache_manager, self.cache_manager) > environ['beaker.cache'] = self.cache_manager > return self.app(environ, start_response) > > class CacheArgs(PrefixArgs):||>> > <http://localhost:5000/files#>*return * self*.*app*(*environ*,* > start_response*)*| > Module beaker.session:*105* in |__call__| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> return > start_response(status, headers, exc_info) > try: > response = self.wrap_app(environ, session_start_response) > except: > ty, val = sys.exc_info()[:2]||>> > <http://localhost:5000/files#> response *=* self*.*wrap_app*(*environ*,* > session_start_response*)*| > Module routes.middleware:*45* in |__call__| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> old_method = > environ['REQUEST_METHOD'] > environ['REQUEST_METHOD'] = req.GET['_method'].upper() > elif environ['REQUEST_METHOD'] == 'POST' and '_method' > in req.POST: > old_method = environ['REQUEST_METHOD'] > environ['REQUEST_METHOD'] = > req.POST['_method'].upper()|| >> <http://localhost:5000/files#>*elif* > environ*[*'REQUEST_METHOD'*]* *==* 'POST' *and* '_method' *in* > req*.*POST*:*| > Module paste.wsgiwrappers:*198* in |POST| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> *`**`*charset *`**`* *is* set*.* > """ > params = self._POST() > if self.charset: > params = UnicodeMultiDict(params, > encoding=self.charset,||>> <http://localhost:5000/files#>params *=* > self*.*_POST*(**)*| > Module paste.wsgiwrappers:*180* in |_POST| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> > *def* *_POST**(**self**)**:* > *return* parse_formvars*(*self*.*environ*,* > include_get_vars*=*False*)* > > *def* *POST**(**self**)**:*|| >> > <http://localhost:5000/files#>*return* > parse_formvars*(*self*.*environ*,* include_get_vars *=*False*)*| > Module paste.request:*174* in |parse_formvars| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> fs *=* > cgi*.*FieldStorage*(*fp*=*input*,* > environ*=*environ*,* > keep_blank_values*=**1**)* > environ*[*'QUERY_STRING'*]* *=* old_query_string > *if* fake_out_cgi*:*|| >> > <http://localhost:5000/files#>keep_blank_values*=**1**)*| > Module cgi:*534* in |__init__| <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> self.read_urlencoded() > elif ctype[:10] == 'multipart/': > self.read_multi(environ, keep_blank_values, strict_parsing) > else: > self.read_single()||>> > <http://localhost:5000/files#>self *.*read_multi*(*environ*,* > keep_blank_values*,* strict_parsing*)*| > Module cgi:*654* in |read_multi| <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> klass *=* > self*.*FieldStorageClass *or* self*.*__class__ > part *=* klass*(*self*.*fp*,* *{**}**,* ib*,* > environ*,* keep_blank_values*,* strict_parsing*)* > # Throw first part away > *while* *not* part*.*done*:*|| >> > <http://localhost:5000/files#>environ*,* keep_blank_values*,* > strict_parsing*)*| > Module cgi:*536* in |__init__| <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> self.read_multi(environ, > keep_blank_values, strict_parsing) > else: > self.read_single() > > def __repr__(self):||>> <http://localhost:5000/files#>self* > .*read_single*(**)*| > Module cgi:*669* in |read_single| <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> self.skip_lines() > else: > self.read_lines() > self.file.seek(0) > ||>> <http://localhost:5000/files#>self*.* read_lines*(**)*| > Module cgi:*691* in |read_lines| <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> self*.* file *=* > self*.*__file *=* StringIO*(**)* > *if* self*.*outerboundary*:* > self*.*read_lines_to_outerboundary*(**)* > *else**:* > self*.*read_lines_to_eof*(**)*|| >> > <http://localhost:5000/files#>self*.*read_lines_to_outerboundary*(**)*| > Module cgi:*719* in |read_lines_to_outerboundary| > <http://localhost:5000/files#> > |<< <http://localhost:5000/files#> last_line_lfend *=* True > *while* *1**:* > line *=* self*.*fp*.*readline*(* *1**<<**16**)* > *if* *not* line*:* > self*.*done *=* *-**1*|| >> > <http://localhost:5000/files#>line *=* self*.*fp*.*readline*(**1** > <<**16**)*| > *<type 'exceptions.TypeError'>: readline() takes exactly 1 argument (2 > given)*
Dammit, I read the WSGI spec when changing paste.httpserver but forgot that there's an outstanding bug in it. Well, several bugs in it now. I'll make a 1.2.1 release shortly. -- Ian Bicking | [EMAIL PROTECTED] | http://blog.ianbicking.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to pylons-discuss@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---