Mercurial > repos > bcclaywell > argo_navis
comparison venv/lib/python2.7/genericpath.py @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author | bcclaywell |
---|---|
date | Mon, 12 Oct 2015 17:43:33 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:d67268158946 |
---|---|
1 """ | |
2 Path operations common to more than one OS | |
3 Do not use directly. The OS specific modules import the appropriate | |
4 functions from this module themselves. | |
5 """ | |
6 import os | |
7 import stat | |
8 | |
9 __all__ = ['commonprefix', 'exists', 'getatime', 'getctime', 'getmtime', | |
10 'getsize', 'isdir', 'isfile'] | |
11 | |
12 | |
13 try: | |
14 _unicode = unicode | |
15 except NameError: | |
16 # If Python is built without Unicode support, the unicode type | |
17 # will not exist. Fake one. | |
18 class _unicode(object): | |
19 pass | |
20 | |
21 # Does a path exist? | |
22 # This is false for dangling symbolic links on systems that support them. | |
23 def exists(path): | |
24 """Test whether a path exists. Returns False for broken symbolic links""" | |
25 try: | |
26 os.stat(path) | |
27 except os.error: | |
28 return False | |
29 return True | |
30 | |
31 | |
32 # This follows symbolic links, so both islink() and isdir() can be true | |
33 # for the same path on systems that support symlinks | |
34 def isfile(path): | |
35 """Test whether a path is a regular file""" | |
36 try: | |
37 st = os.stat(path) | |
38 except os.error: | |
39 return False | |
40 return stat.S_ISREG(st.st_mode) | |
41 | |
42 | |
43 # Is a path a directory? | |
44 # This follows symbolic links, so both islink() and isdir() | |
45 # can be true for the same path on systems that support symlinks | |
46 def isdir(s): | |
47 """Return true if the pathname refers to an existing directory.""" | |
48 try: | |
49 st = os.stat(s) | |
50 except os.error: | |
51 return False | |
52 return stat.S_ISDIR(st.st_mode) | |
53 | |
54 | |
55 def getsize(filename): | |
56 """Return the size of a file, reported by os.stat().""" | |
57 return os.stat(filename).st_size | |
58 | |
59 | |
60 def getmtime(filename): | |
61 """Return the last modification time of a file, reported by os.stat().""" | |
62 return os.stat(filename).st_mtime | |
63 | |
64 | |
65 def getatime(filename): | |
66 """Return the last access time of a file, reported by os.stat().""" | |
67 return os.stat(filename).st_atime | |
68 | |
69 | |
70 def getctime(filename): | |
71 """Return the metadata change time of a file, reported by os.stat().""" | |
72 return os.stat(filename).st_ctime | |
73 | |
74 | |
75 # Return the longest prefix of all list elements. | |
76 def commonprefix(m): | |
77 "Given a list of pathnames, returns the longest common leading component" | |
78 if not m: return '' | |
79 s1 = min(m) | |
80 s2 = max(m) | |
81 for i, c in enumerate(s1): | |
82 if c != s2[i]: | |
83 return s1[:i] | |
84 return s1 | |
85 | |
86 # Split a path in root and extension. | |
87 # The extension is everything starting at the last dot in the last | |
88 # pathname component; the root is everything before that. | |
89 # It is always true that root + ext == p. | |
90 | |
91 # Generic implementation of splitext, to be parametrized with | |
92 # the separators | |
93 def _splitext(p, sep, altsep, extsep): | |
94 """Split the extension from a pathname. | |
95 | |
96 Extension is everything from the last dot to the end, ignoring | |
97 leading dots. Returns "(root, ext)"; ext may be empty.""" | |
98 | |
99 sepIndex = p.rfind(sep) | |
100 if altsep: | |
101 altsepIndex = p.rfind(altsep) | |
102 sepIndex = max(sepIndex, altsepIndex) | |
103 | |
104 dotIndex = p.rfind(extsep) | |
105 if dotIndex > sepIndex: | |
106 # skip all leading dots | |
107 filenameIndex = sepIndex + 1 | |
108 while filenameIndex < dotIndex: | |
109 if p[filenameIndex] != extsep: | |
110 return p[:dotIndex], p[dotIndex:] | |
111 filenameIndex += 1 | |
112 | |
113 return p, '' |