I posted same question below yesterday, not sure why it's not posted in the list ...
Best Regards! Kevin (Chen) Ji 纪 晨 Engineer, zVM Development, CSTL Notes: Chen CH Ji/China/IBM@IBMCN Internet: jiche...@cn.ibm.com Phone: +86-10-82454158 Address: 3/F Ring Building, ZhongGuanCun Software Park, Haidian District, Beijing 100193, PRC From: Chris Friesen <chris.frie...@windriver.com> To: <openstack-dev@lists.openstack.org> Date: 03/13/2015 07:57 AM Subject: Re: [openstack-dev] [nova] is it possible to microversion a static class method? 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. Chris __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev