classification
Title: io.path.ismount gives "local variable 'p' referenced before assignment" error on Windows versions (ntpath.py)
Type: compile error Stage:
Components: Windows Versions: Python 3.0
process
Status: closed Resolution: duplicate
Dependencies: 5595 Superseder:
Assigned To: Nosy List: g.moralis, jcsalterego
Priority: normal Keywords:

Created on 2009-06-25 12:56 by g.moralis, last changed 2009-06-25 13:33 by amaury.forgeotdarc. This issue is now closed.

Messages (2)
msg89705 - (view) Author: Georgios Moralis (g.moralis) Date: 2009-06-25 12:56
It returns with the following error:
UnboundLocalError: local variable 'p' referenced before assignment

Example causing this:


--- CODE FOLLOWS ---

import os

def show_cwd_list():
    alpha = os.listdir(os.getcwd())
    for dirnm in alpha[:]:
        if os.path.isdir(os.getcwd() + os.sep + dirnm):
            print("d ", dirnm)
        elif os.path.ismount(os.getcwd() + os.sep + dirnm):
            print("m ", dirnm)
        elif os.path.isfile(os.getcwd() + os.sep + dirnm):
            print("f ", dirnm)
        elif os.path.islink(os.getcwd() + os.sep + dirnm):
            print("l ", dirnm)
        elif os.path.isabs(os.getcwd() + os.sep + dirnm):
            print("a ", dirnm)
    return alpha

get_dirs()

--- END OF CODE ---

The definition of ismount from the ntpath.py:


--- CODE FOLLOWS (NTPATH.PY) ---
def ismount(path):
    """Test whether a path is a mount point (defined as root of drive)"""
    unc, rest = splitunc(path)
    seps = _get_bothseps(p)
    if unc:
        return rest in p[:0] + seps
    p = splitdrive(path)[1]
    return len(p) == 1 and p[0] in seps

--- END OF CODE ---

As it seems, variable 'p' is used before it is initialized (_get_bothseps)
msg89706 - (view) Author: Jerry Chen (jcsalterego) Date: 2009-06-25 13:26
Duplicate of http://bugs.python.org/issue5595

Fixed in r70676
History
Date User Action Args
2009-06-25 13:33:22amaury.forgeotdarcsetdependencies: + os.path.ismount (ntpath) gives UnboundLocalError for any input, - Wrong dump of floats
2009-06-25 13:30:09r.david.murraysetstatus: open -> closed
dependencies: + Wrong dump of floats
resolution: duplicate
2009-06-25 13:26:39jcsalteregosetnosy: + jcsalterego
messages: + msg89706
2009-06-25 12:56:45g.moraliscreate