(original) (raw)


On 06/14/2012 01:53 PM, Antoine Pitrou wrote:
\* is\_implemented : bool  
 True if the parameter is implemented for use. Some platforms  
 implement functions but can't support specific parameters  
 (e.g. "mode" for \`\`os.mkdir\`\`). Passing in an unimplemented  
 parameter may result in the parameter being ignored,  
 or in NotImplementedError being raised. It is intended that  
 all conditions where \`\`is\_implemented\`\` may be False be  
 thoroughly documented.  
  
I don't understand what the purpose of is\_implemented is, or how it is  
supposed to be computed.

It's computed based on locally available functionality.  Its purpose is to allow LBYL when using functionality that may not be available on all platforms.  See issue 14626 for a specific use-case--which is why I pushed for this.

When all the chips fall into place, I expect to have some code that looks like this:
os.chown.\_\_signature\_\_.parameters\['fd'\].is\_implemented \= sysconfig.get\_config\_var('HAVE\_FCHOWN')
That's oversimplified (and almost certainly not spelled correctly) but you get the general idea.  os.chown will soon sprout an "fd" parameter, but it will only work on platforms where we have fchown().  Using it will result in a NotImplementedError.  But some folks want to LBYL.


/arry