classification
Title: os module does not have the documented EX_NOTFOUND attribute
Type: behavior Stage:
Components: Documentation Versions: Python 3.1, Python 3.2, Python 2.7
process
Status: closed Resolution: works for me
Dependencies: Superseder:
Assigned To: docs@python Nosy List: brian.curtin, docs@python, georg.brandl, kisielk, loewis, r.david.murray
Priority: normal Keywords:

Created on 2010-09-23 23:48 by kisielk, last changed 2010-09-24 07:10 by georg.brandl. This issue is now closed.

Messages (9)
msg117245 - (view) Author: Kamil Kisiel (kisielk) Date: 2010-09-23 23:48
The library documentation (http://docs.python.org/library/os.html) states:

"""
os.EX_NOTFOUND
Exit code that means something like “an entry was not found”.

Availability: Unix.

New in version 2.3.
"""

However, on both my Linux and OS X installs of OS X this happens:

python
Python 2.6.2 (r262:71600, Oct 24 2009, 03:15:21) 
[GCC 4.4.1 [gcc-4_4-branch revision 150839]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
im>>> import os
>>> os.EX_NOTFOUND
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'EX_NOTFOUND'
>>> 


Unfortunately I don't have another Python version available to test with at the moment so I'm not sure if this affects other versions as well.
msg117246 - (view) Author: Kamil Kisiel (kisielk) Date: 2010-09-23 23:49
That should have read "Linux and OS X installs of *Python*".
msg117249 - (view) Author: Brian Curtin (brian.curtin) * (Python committer) Date: 2010-09-24 00:21
The following code exists in Modules/posixmodule.c

8167     /* These come from sysexits.h */
...
8216 #ifdef EX_NOTFOUND
8217     if (ins(d, "EX_NOTFOUND", (long)EX_NOTFOUND)) return -1;
8218 #endif /* EX_NOTFOUND */


sysexits.h on my Mac has no mention of EX_NOTFOUND. I'm guessing it was removed some time ago or maybe it never existed? I wasn't able to find anything after a quick Google search.

Was there any particular reason you need EX_NOTFOUND other than that it's documented? Just trying to trace where this thing came from and went.
msg117250 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-09-24 00:49
Perhaps this constant existed at some point on some linux systems...google found one comment about it referencing posix.2.  I also found it mentioned in a specific version of sendmail, and in bash.  When it appears it seems to most often have the value 127.

I suspect the mention of this constant should just be deleted from the docs.  Google code search finds no mention of it in any sysexits.h file anywhere it has searched, so the chances are this constant will never be defined by Python.
msg117251 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-09-24 00:56
s/linux/unix/
msg117252 - (view) Author: Brian Curtin (brian.curtin) * (Python committer) Date: 2010-09-24 00:57
+1 for removing it from the docs.
msg117260 - (view) Author: Kamil Kisiel (kisielk) Date: 2010-09-24 04:11
I mostly wanted to just report the issue rather than propose a solution, so I'm in favor of whatever everyone feels is best.

As for how I came across the issue, it was mostly curiosity, I wanted to see the numerical value of all the os.EX_* constants and was printing them out on the screen when I stumbled upon this.

If there's no chance of it working, which seems to be the case, I agree it should probably be just removed from the documentation.
msg117261 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2010-09-24 05:51
I fail to see the issue. The documentation clearly says, above the block of all the EX_* constants:

Note

Some of these may not be available on all Unix platforms, since there is some variation. These constants are defined where they are defined by the underlying platform.

That seems to explain the situation well, no?
msg117263 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2010-09-24 07:10
I agree with Martin.
History
Date User Action Args
2010-09-24 07:10:38georg.brandlsetstatus: open -> closed

nosy: + georg.brandl
messages: + msg117263

resolution: works for me
2010-09-24 05:51:50loewissetnosy: + loewis
messages: + msg117261
2010-09-24 04:11:08kisielksetmessages: + msg117260
2010-09-24 00:57:52brian.curtinsetmessages: + msg117252
2010-09-24 00:56:45r.david.murraysetmessages: + msg117251
2010-09-24 00:49:37r.david.murraysetversions: + Python 3.1, Python 2.7, Python 3.2, - Python 2.6
nosy: + r.david.murray, docs@python

messages: + msg117250

assignee: docs@python
components: + Documentation, - Library (Lib)
2010-09-24 00:21:28brian.curtinsetnosy: + brian.curtin
messages: + msg117249
2010-09-23 23:49:30kisielksetmessages: + msg117246
2010-09-23 23:48:34kisielkcreate