[Python-Dev] Use function names instead of functions for os.supports_dir_fd? (original) (raw)
Steven D'Aprano steve at pearwood.info
Wed Jul 18 01:45:28 CEST 2012
- Previous message: [Python-Dev] Use function names instead of functions for os.supports_dir_fd?
- Next message: [Python-Dev] Use function names instead of functions for os.supports_dir_fd?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Victor Stinner wrote:
Hi,
Python 3.3 introduced os.supportsdirfd to check if some os functions do accept a file descriptor instead of a path. The problem is that os.supportsdirfd is a list of functions, not a list of function names. If os functions are monkey patched, you cannot test anymore if a function supports file descriptor.
One of the dangers of monkey-patching.
Monkey patching is a common practice in Python. testos.py replaces os.exec*() functions temporary for example.
Perhaps for testing, but I don't think monkey-patching is common in production code. Perhaps you are thinking of Ruby :)
It's also inconsistent with the new time.getclockinfo() function which expects the name of a time function, not the function directly.
Since functions are first-class objects in Python, and people should be used to passing functions around as parameters, perhaps it is better to say that get_clock_info is inconsistent with supports_dir_fd.
Personally, I prefer passing function objects rather than names, since the name of the function shouldn't matter. But since I recognise that other people may think differently, I would probably support passing both the name or the function object itself.
-- Steven
- Previous message: [Python-Dev] Use function names instead of functions for os.supports_dir_fd?
- Next message: [Python-Dev] Use function names instead of functions for os.supports_dir_fd?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]