[Python-Dev] [Python-checkins] r84564 - in python/branches/py3k/Lib: ntpath.py test/test_ntpath.py (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Tue Sep 7 15:12:33 CEST 2010
- Previous message: [Python-Dev] Volunteer help with porting
- Next message: [Python-Dev] [Python-checkins] r84564 - in python/branches/py3k/Lib: ntpath.py test/test_ntpath.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Sep 7, 2010 at 5:46 AM, brian.curtin <python-checkins at python.org> wrote:
Modified: python/branches/py3k/Lib/ntpath.py ============================================================================== --- python/branches/py3k/Lib/ntpath.py (original) +++ python/branches/py3k/Lib/ntpath.py Mon Sep 6 21:46:17 2010 @@ -10,7 +10,6 @@ import stat import genericpath from genericpath import * -from nt import getfileinformation
all = ["normcase","isabs","join","splitdrive","split","splitext", "basename","dirname","commonprefix","getsize","getmtime", @@ -656,4 +655,10 @@ def sameopenfile(f1, f2): """Test whether two file objects reference the same file""" - return getfileinformation(f1) == getfileinformation(f2) + try: + from nt import getfileinformation + return getfileinformation(f1) == getfileinformation(f2) + except ImportError: + # On other operating systems, return True if the file descriptors + # are the same. + return f1 == f2
Given the potential deadlock problems with imports inside functions, I'd prefer to see this written as either:
try: from nt import _getfileinformation def sameopenfile(f1, f2): return _getfileinformation(f1) == _getfileinformation(f2) except ImportError:
On other operating systems, return True if the file descriptors
are the same.
def sameopenfile(f1, f2): return f1 == f2 sameopenfile.doc = "Test whether two file objects reference the same file"
or as:
try: from nt import _getfileinformation except ImportError:
On other operating systems, file comparison is by file descriptor anyway
so a separate file information object is unnecessary
def _getfileinformation(f): return f
def sameopenfile(f1, f2): """Test whether two file objects reference the same file""" return _getfileinformation(f1) == _getfileinformation(f2)
The latter is cleaner code, while the former is likely an unnecessary micro-optimisation.
Cheers, Nick.
-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message: [Python-Dev] Volunteer help with porting
- Next message: [Python-Dev] [Python-checkins] r84564 - in python/branches/py3k/Lib: ntpath.py test/test_ntpath.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]