2015-03-13 19:10 GMT+08:00 Sean Dague <[email protected]>: > On 03/13/2015 02:55 AM, Chris Friesen wrote: > > On 03/12/2015 12:13 PM, Sean Dague wrote: > >> On 03/12/2015 02:03 PM, Chris Friesen wrote: > >>> Hi, > >>> > >>> I'm having an issue with microversions. > >>> > >>> The api_version() code has a comment saying "This decorator MUST appear > >>> first (the outermost decorator) on an API method for it to work > >>> correctly" > >>> > >>> I tried making a microversioned static class method like this: > >>> > >>> @wsgi.Controller.api_version("2.4") # noqa > >>> @staticmethod > >>> def _my_func(req, foo): > >>> > >>> and pycharm highlighted the api_version decorator and complained that > >>> "This decorator will not receive a callable it may expect; the built-in > >>> decorator returns a special object." > >>> > >>> Is this a spurious warning from pycharm? The pep8 checks don't > >>> complain. > >>> > >>> If I don't make it static, then pycharm suggests that the method could > >>> be static. > >> > >> *API method* > >> > >> This is not intended for use by methods below the top controller level. > >> If you want conditionals lower down in your call stack pull the request > >> version out yourself and use that. > > > > Both the original spec and doc/source/devref/api_microversions.rst > > contain text talking about decorating a private method. The latter > > gives this example: > > > > @api_version("2.1", "2.4") > > def _version_specific_func(self, req, arg1): > > pass > > > > @api_version(min_version="2.5") #noqa > > def _version_specific_func(self, req, arg1): > > pass > > > > def show(self, req, id): > > .... common stuff .... > > self._version_specific_func(req, "foo") > > .... common stuff .... > > > > It's entirely possible that such a private method might not need to > > reference "self", and could therefore be static, so I think it's a valid > > question. > > That's a doc bug, we should change it. >
Actually it is not a bug. It's controversial point in the spec, but finally that was keep in the spec. http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/api-microversions.html The discussion at line 268 https://review.openstack.org/#/c/127127/7/specs/kilo/approved/api-microversions.rst > > -Sean > > -- > Sean Dague > http://dague.net > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: [email protected]?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
