home *** CD-ROM | disk | FTP | other *** search
/ Freelog 116 / FreelogNo116-JuilletSeptembre2013.iso / GestionFichiers / metamorphose / metamorphose2_0.8.2_setup.exe / metamorphose2.exe / ntpath.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2011-01-12  |  9KB  |  363 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import os
  5. import sys
  6. import stat
  7. import genericpath
  8. import warnings
  9. from genericpath import *
  10. __all__ = [
  11.     'normcase',
  12.     'isabs',
  13.     'join',
  14.     'splitdrive',
  15.     'split',
  16.     'splitext',
  17.     'basename',
  18.     'dirname',
  19.     'commonprefix',
  20.     'getsize',
  21.     'getmtime',
  22.     'getatime',
  23.     'getctime',
  24.     'islink',
  25.     'exists',
  26.     'lexists',
  27.     'isdir',
  28.     'isfile',
  29.     'ismount',
  30.     'walk',
  31.     'expanduser',
  32.     'expandvars',
  33.     'normpath',
  34.     'abspath',
  35.     'splitunc',
  36.     'curdir',
  37.     'pardir',
  38.     'sep',
  39.     'pathsep',
  40.     'defpath',
  41.     'altsep',
  42.     'extsep',
  43.     'devnull',
  44.     'realpath',
  45.     'supports_unicode_filenames',
  46.     'relpath']
  47. curdir = '.'
  48. pardir = '..'
  49. extsep = '.'
  50. sep = '\\'
  51. pathsep = ';'
  52. altsep = '/'
  53. defpath = '.;C:\\bin'
  54. if 'ce' in sys.builtin_module_names:
  55.     defpath = '\\Windows'
  56. elif 'os2' in sys.builtin_module_names:
  57.     altsep = '/'
  58.  
  59. devnull = 'nul'
  60.  
  61. def normcase(s):
  62.     return s.replace('/', '\\').lower()
  63.  
  64.  
  65. def isabs(s):
  66.     s = splitdrive(s)[1]
  67.     if s != '':
  68.         pass
  69.     return s[:1] in '/\\'
  70.  
  71.  
  72. def join(a, *p):
  73.     path = a
  74.     for b in p:
  75.         b_wins = 0
  76.         if path == '':
  77.             b_wins = 1
  78.         elif isabs(b):
  79.             if path[1:2] != ':' or b[1:2] == ':':
  80.                 b_wins = 1
  81.             elif (len(path) > 3 or len(path) == 3) and path[-1] not in '/\\':
  82.                 b_wins = 1
  83.             
  84.         
  85.         None if b_wins else b[0] in '/\\'
  86.         None if path[-1] == ':' else b[0] in '/\\'
  87.         path += '\\'
  88.     
  89.     return path
  90.  
  91.  
  92. def splitdrive(p):
  93.     if p[1:2] == ':':
  94.         return (p[0:2], p[2:])
  95.     return ('', p)
  96.  
  97.  
  98. def splitunc(p):
  99.     if p[1:2] == ':':
  100.         return ('', p)
  101.     firstTwo = p[0:2]
  102.     if firstTwo == '//' or firstTwo == '\\\\':
  103.         normp = normcase(p)
  104.         index = normp.find('\\', 2)
  105.         if index == -1:
  106.             return ('', p)
  107.         index = normp.find('\\', index + 1)
  108.         return (p[:index], p[index:])
  109.     return ('', p)
  110.  
  111.  
  112. def split(p):
  113.     (d, p) = splitdrive(p)
  114.     i = len(p)
  115.     while i and p[i - 1] not in '/\\':
  116.         i = i - 1
  117.     head = p[:i]
  118.     tail = p[i:]
  119.     head2 = head
  120.     while head2 and head2[-1] in '/\\':
  121.         head2 = head2[:-1]
  122.     if not head2:
  123.         pass
  124.     head = head
  125.     return (d + head, tail)
  126.  
  127.  
  128. def splitext(p):
  129.     return genericpath._splitext(p, sep, altsep, extsep)
  130.  
  131. splitext.__doc__ = genericpath._splitext.__doc__
  132.  
  133. def basename(p):
  134.     return split(p)[1]
  135.  
  136.  
  137. def dirname(p):
  138.     return split(p)[0]
  139.  
  140.  
  141. def islink(path):
  142.     return False
  143.  
  144. lexists = exists
  145.  
  146. def ismount(path):
  147.     (unc, rest) = splitunc(path)
  148.     if unc:
  149.         return rest in ('', '/', '\\')
  150.     p = splitdrive(path)[1]
  151.     if len(p) == 1:
  152.         pass
  153.     return p[0] in '/\\'
  154.  
  155.  
  156. def walk(top, func, arg):
  157.     warnings.warnpy3k('In 3.x, os.path.walk is removed in favor of os.walk.', stacklevel = 2)
  158.     
  159.     try:
  160.         names = os.listdir(top)
  161.     except os.error:
  162.         return None
  163.  
  164.     func(arg, top, names)
  165.     for name in names:
  166.         name = join(top, name)
  167.         if isdir(name):
  168.             walk(name, func, arg)
  169.             continue
  170.     
  171.  
  172.  
  173. def expanduser(path):
  174.     if path[:1] != '~':
  175.         return path
  176.     i = 1
  177.     n = len(path)
  178.     while i < n and path[i] not in '/\\':
  179.         i = i + 1
  180.         continue
  181.         path[:1] != '~'
  182.     if 'HOME' in os.environ:
  183.         userhome = os.environ['HOME']
  184.     elif 'USERPROFILE' in os.environ:
  185.         userhome = os.environ['USERPROFILE']
  186.     elif 'HOMEPATH' not in os.environ:
  187.         return path
  188.     
  189.     try:
  190.         drive = os.environ['HOMEDRIVE']
  191.     except KeyError:
  192.         drive = ''
  193.  
  194.     userhome = join(drive, os.environ['HOMEPATH'])
  195.     if i != 1:
  196.         userhome = join(dirname(userhome), path[1:i])
  197.     
  198.     return userhome + path[i:]
  199.  
  200.  
  201. def expandvars(path):
  202.     if '$' not in path and '%' not in path:
  203.         return path
  204.     import string as string
  205.     varchars = string.ascii_letters + string.digits + '_-'
  206.     res = ''
  207.     index = 0
  208.     pathlen = len(path)
  209.     while index < pathlen:
  210.         c = path[index]
  211.         if c == "'":
  212.             path = path[index + 1:]
  213.             pathlen = len(path)
  214.             
  215.             try:
  216.                 index = path.index("'")
  217.                 res = res + "'" + path[:index + 1]
  218.             except ValueError:
  219.                 '%' not in path
  220.                 '%' not in path
  221.                 res = res + path
  222.                 index = pathlen - 1
  223.             except:
  224.                 '%' not in path<EXCEPTION MATCH>ValueError
  225.             
  226.  
  227.         '%' not in path
  228.         if c == '%':
  229.             if path[index + 1:index + 2] == '%':
  230.                 res = res + c
  231.                 index = index + 1
  232.             else:
  233.                 path = path[index + 1:]
  234.                 pathlen = len(path)
  235.                 
  236.                 try:
  237.                     index = path.index('%')
  238.                 except ValueError:
  239.                     '%' not in path
  240.                     '%' not in path
  241.                     res = res + '%' + path
  242.                     index = pathlen - 1
  243.                 except:
  244.                     '%' not in path
  245.  
  246.                 var = path[:index]
  247.                 if var in os.environ:
  248.                     res = res + os.environ[var]
  249.                 else:
  250.                     res = res + '%' + var + '%'
  251.         elif c == '$':
  252.             '%' not in path if path[index + 1:index + 2] == '$' else '%' not in path<EXCEPTION MATCH>ValueError
  253.             var = ''
  254.             index = index + 1
  255.             c = path[index:index + 1]
  256.             while c != '' and c in varchars:
  257.                 var = var + c
  258.                 index = index + 1
  259.                 c = path[index:index + 1]
  260.                 continue
  261.                 '%' not in path
  262.             if var in os.environ:
  263.                 res = res + os.environ[var]
  264.             else:
  265.                 res = res + '$' + var
  266.             if c != '':
  267.                 index = index - 1
  268.             
  269.         else:
  270.             res = res + c
  271.         index = index + 1
  272.     return res
  273.  
  274.  
  275. def normpath(path):
  276.     (backslash, dot) = None if isinstance(path, unicode) else ('\\', '.')
  277.     path = path.replace('/', '\\')
  278.     (prefix, path) = splitdrive(path)
  279.     if prefix == '':
  280.         while path[:1] == '\\':
  281.             prefix = prefix + backslash
  282.             path = path[1:]
  283.     elif path.startswith('\\'):
  284.         prefix = prefix + backslash
  285.         path = path.lstrip('\\')
  286.     
  287.     comps = path.split('\\')
  288.     i = 0
  289.     while i < len(comps):
  290.         None if comps[i] in ('.', '') else prefix.endswith('\\')
  291.         i += 1
  292.     if not prefix and not comps:
  293.         comps.append(dot)
  294.     
  295.     return prefix + backslash.join(comps)
  296.  
  297.  
  298. try:
  299.     from nt import _getfullpathname
  300. except ImportError:
  301.     
  302.     def abspath(path):
  303.         if not isabs(path):
  304.             if isinstance(path, unicode):
  305.                 cwd = os.getcwdu()
  306.             else:
  307.                 cwd = os.getcwd()
  308.             path = join(cwd, path)
  309.         
  310.         return normpath(path)
  311.  
  312.  
  313.  
  314. def abspath(path):
  315.     if path:
  316.         
  317.         try:
  318.             path = _getfullpathname(path)
  319.         except WindowsError:
  320.             pass
  321.         except:
  322.             None<EXCEPTION MATCH>WindowsError
  323.         
  324.  
  325.     None<EXCEPTION MATCH>WindowsError
  326.     if isinstance(path, unicode):
  327.         path = os.getcwdu()
  328.     else:
  329.         path = os.getcwd()
  330.     return normpath(path)
  331.  
  332. realpath = abspath
  333. if hasattr(sys, 'getwindowsversion'):
  334.     pass
  335. supports_unicode_filenames = sys.getwindowsversion()[3] >= 2
  336.  
  337. def relpath(path, start = curdir):
  338.     if not path:
  339.         raise ValueError('no path specified')
  340.     path
  341.     start_list = abspath(start).split(sep)
  342.     path_list = abspath(path).split(sep)
  343.     if start_list[0].lower() != path_list[0].lower():
  344.         (unc_path, rest) = splitunc(path)
  345.         (unc_start, rest) = splitunc(start)
  346.         if bool(unc_path) ^ bool(unc_start):
  347.             raise ValueError('Cannot mix UNC and non-UNC paths (%s and %s)' % (path, start))
  348.         bool(unc_path) ^ bool(unc_start)
  349.         raise ValueError('path is on drive %s, start on drive %s' % (path_list[0], start_list[0]))
  350.     start_list[0].lower() != path_list[0].lower()
  351.     for i in range(min(len(start_list), len(path_list))):
  352.         if start_list[i].lower() != path_list[i].lower():
  353.             break
  354.             continue
  355.     else:
  356.         i += 1
  357.     rel_list = [
  358.         pardir] * (len(start_list) - i) + path_list[i:]
  359.     if not rel_list:
  360.         return curdir
  361.     return join(*rel_list)
  362.  
  363.