<html><body>
<p><font size="2" face="sans-serif">I posted same question below yesterday, not sure why it's not posted in the list ...</font><br>
<br>
<br>
<font size="2" face="sans-serif">Best Regards! <br>
<br>
Kevin (Chen) Ji ¼Í ³¿<br>
<br>
Engineer, zVM Development, CSTL<br>
Notes: Chen CH Ji/China/IBM@IBMCN   Internet: jichenjc@cn.ibm.com<br>
Phone: +86-10-82454158<br>
Address: 3/F Ring Building, ZhongGuanCun Software Park, Haidian District, Beijing 100193, PRC </font><br>
<br>
<img width="16" height="16" src="cid:1__=C7BBF494DFB5309C8f9e8a93df938@cn.ibm.com" border="0" alt="Inactive hide details for Chris Friesen ---03/13/2015 07:57:29 AM---On 03/12/2015 12:13 PM, Sean Dague wrote: > On 03/12/2015 0"><font size="2" color="#424282" face="sans-serif">Chris Friesen ---03/13/2015 07:57:29 AM---On 03/12/2015 12:13 PM, Sean Dague wrote: > On 03/12/2015 02:03 PM, Chris Friesen wrote:</font><br>
<br>
<font size="1" color="#5F5F5F" face="sans-serif">From:      </font><font size="1" face="sans-serif">Chris Friesen <chris.friesen@windriver.com></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">To:        </font><font size="1" face="sans-serif"><openstack-dev@lists.openstack.org></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Date:      </font><font size="1" face="sans-serif">03/13/2015 07:57 AM</font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Subject:   </font><font size="1" face="sans-serif">Re: [openstack-dev] [nova] is it possible to microversion a static class method?</font><br>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<tt><font size="2">On 03/12/2015 12:13 PM, Sean Dague wrote:<br>
> On 03/12/2015 02:03 PM, Chris Friesen wrote:<br>
>> Hi,<br>
>><br>
>> I'm having an issue with microversions.<br>
>><br>
>> The api_version() code has a comment saying "This decorator MUST appear<br>
>> first (the outermost decorator) on an API method for it to work correctly"<br>
>><br>
>> I tried making a microversioned static class method like this:<br>
>><br>
>>      @wsgi.Controller.api_version("2.4")  # noqa<br>
>>      @staticmethod<br>
>>      def _my_func(req, foo):<br>
>><br>
>> and pycharm highlighted the api_version decorator and complained that<br>
>> "This decorator will not receive a callable it may expect; the built-in<br>
>> decorator returns a special object."<br>
>><br>
>> Is this a spurious warning from pycharm?  The pep8 checks don't complain.<br>
>><br>
>> If I don't make it static, then pycharm suggests that the method could<br>
>> be static.<br>
><br>
> *API method*<br>
><br>
> This is not intended for use by methods below the top controller level.<br>
> If you want conditionals lower down in your call stack pull the request<br>
> version out yourself and use that.<br>
<br>
Both the original spec and doc/source/devref/api_microversions.rst contain text <br>
talking about decorating a private method.  The latter gives this example:<br>
<br>
     @api_version("2.1", "2.4")<br>
     def _version_specific_func(self, req, arg1):<br>
         pass<br>
<br>
     @api_version(min_version="2.5") #noqa<br>
     def _version_specific_func(self, req, arg1):<br>
         pass<br>
<br>
     def show(self, req, id):<br>
         .... common stuff ....<br>
         self._version_specific_func(req, "foo")<br>
         .... common stuff ....<br>
<br>
It's entirely possible that such a private method might not need to reference <br>
"self", and could therefore be static, so I think it's a valid question.<br>
<br>
Chris<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe<br>
</font></tt><tt><font size="2"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><tt><font size="2"><br>
<br>
</font></tt><br>
</body></html>