basictypes.vfs.basepath
index
p:\properties\basictypes\vfs\basepath.py

Base-class for file-path strings

 
Modules
       
os

 
Classes
       
str(basestring)
BasePath

 
class BasePath(str)
    Representation of a path in a virtual file system
 
Interact with the paths in an object-oriented way
(following are ideas for what to do)
        * Support for standard os and os.path queries
                * listdir
                * isfile/dir/symlink
                * create sub-directory
                * join-with-string to get sub-path
                * absolute-path -> Path object
                        * support .. and . directory resolution (and elimination)
        * Mime-types
        * assoc values
        * comparisons
                * parent, child -> boolean
                * shared path -> fragments
                * shared root -> boolean
        * open( *, ** )
                * for directories, create/open file based on standard file() call
                * for zipfile-embedded paths, use zipfile transparently to create/open sub-file
                * for directories, create the directory (possibly recursively)
                * for files, error normally, possibly useful for things
                  like zipfiles and db-interface files which want to provide
                  directory-like interface
        * file( name ) -> Path
                * create a sub-file path
        * sub( name ) -> Path
                * create a sub-directory path
* Eventually support zipfiles as Directory paths
 
XXX Need to raise appropriate exceptions and look at ways to
reduce overhead beyond the naive implementation of many of the
methods.
 
XXX Need to deal with upcoming switch to unicode values for path
        names on OSes which support them.
 
 
Method resolution order:
BasePath
str
basestring
object

Methods defined here:
__eq__(self, other)
Attempt to determine if we are equal to other__
__repr__(self)
baseOnly(self)
Is this path reachable using only the base file system
canonical(self)
Get a canonical version of this path
 
The new path will be absolute, expanded,
case-normalized, normalized, and converted
to a path of the same type as this one.
 
It will include, where required, a pointer
to the parent-filesystem-path which points
to this path's root.
isAbsolute(self)
Return true if this path is an absolute path (i.e. fully specified from a root)
isAncestor(self, other)
Return true if we are an ancestor of the other path
isChild(self, other)
Return true if we are a child of the other path
isDescendent(self, other)
Return true if we are a descendent of the other path
isFile(self)
Return true if we are a file path
isParent(self, other)
Return true if we are the parent of the other path
 
Other can be a string specifier or a Path object
isRoot(self)
True iff this object is the root of its filesystem
join(self, name)
Create a new Path from this path plus name
shareRoot(self, other)
Return true if we are descended from the same root in the file system
sharedRoot(self, other)
Return the path of the longest shared prefix for ourselves and other
split(self)
Return our parent path (if available) and our name
walk(self, file=None, pre=None, post=None)
Simple walking method
 
For directories:
        pre(path) is called before starting to process each directory
        submember.walk(file,pre,post) is called on each sub-member
        post(path) is called after processing all sub-members of the directory
For files:
        file( path ) is called for each file in each directory

Class methods defined here:
check(cls, value) from type
Is the value an instance of this class?
coerce(cls, value) from type
Coerce value to an instance of this class

Data and other attributes defined here:
__slots__ = ()

Methods inherited from str:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__getnewargs__(...)
__getslice__(...)
x.__getslice__(i, j) <==> x[i:j]
 
Use of negative indices is not supported.
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__mod__(...)
x.__mod__(y) <==> x%y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__rmod__(...)
x.__rmod__(y) <==> y%x
__rmul__(...)
x.__rmul__(n) <==> n*x
__str__(...)
x.__str__() <==> str(x)
capitalize(...)
S.capitalize() -> string
 
Return a copy of the string S with only its first character
capitalized.
center(...)
S.center(width) -> string
 
Return S centered in a string of length width. Padding is done
using spaces.
count(...)
S.count(sub[, start[, end]]) -> int
 
Return the number of occurrences of substring sub in string
S[start:end].  Optional arguments start and end are
interpreted as in slice notation.
decode(...)
S.decode([encoding[,errors]]) -> object
 
Decodes S using the codec registered for encoding. encoding defaults
to the default encoding. errors may be given to set a different error
handling scheme. Default is 'strict' meaning that encoding errors raise
a UnicodeDecodeError. Other possible values are 'ignore' and 'replace'
as well as any other name registerd with codecs.register_error that is
able to handle UnicodeDecodeErrors.
encode(...)
S.encode([encoding[,errors]]) -> object
 
Encodes S using the codec registered for encoding. encoding defaults
to the default encoding. errors may be given to set a different error
handling scheme. Default is 'strict' meaning that encoding errors raise
a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
'xmlcharrefreplace' as well as any other name registered with
codecs.register_error that is able to handle UnicodeEncodeErrors.
endswith(...)
S.endswith(suffix[, start[, end]]) -> bool
 
Return True if S ends with the specified suffix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
expandtabs(...)
S.expandtabs([tabsize]) -> string
 
Return a copy of S where all tab characters are expanded using spaces.
If tabsize is not given, a tab size of 8 characters is assumed.
find(...)
S.find(sub [,start [,end]]) -> int
 
Return the lowest index in S where substring sub is found,
such that sub is contained within s[start,end].  Optional
arguments start and end are interpreted as in slice notation.
 
Return -1 on failure.
index(...)
S.index(sub [,start [,end]]) -> int
 
Like S.find() but raise ValueError when the substring is not found.
isalnum(...)
S.isalnum() -> bool
 
Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
isalpha(...)
S.isalpha() -> bool
 
Return True if all characters in S are alphabetic
and there is at least one character in S, False otherwise.
isdigit(...)
S.isdigit() -> bool
 
Return True if all characters in S are digits
and there is at least one character in S, False otherwise.
islower(...)
S.islower() -> bool
 
Return True if all cased characters in S are lowercase and there is
at least one cased character in S, False otherwise.
isspace(...)
S.isspace() -> bool
 
Return True if all characters in S are whitespace
and there is at least one character in S, False otherwise.
istitle(...)
S.istitle() -> bool
 
Return True if S is a titlecased string and there is at least one
character in S, i.e. uppercase characters may only follow uncased
characters and lowercase characters only cased ones. Return False
otherwise.
isupper(...)
S.isupper() -> bool
 
Return True if all cased characters in S are uppercase and there is
at least one cased character in S, False otherwise.
ljust(...)
S.ljust(width) -> string
 
Return S left justified in a string of length width. Padding is
done using spaces.
lower(...)
S.lower() -> string
 
Return a copy of the string S converted to lowercase.
lstrip(...)
S.lstrip([chars]) -> string or unicode
 
Return a copy of the string S with leading whitespace removed.
If chars is given and not None, remove characters in chars instead.
If chars is unicode, S will be converted to unicode before stripping
replace(...)
S.replace (old, new[, count]) -> string
 
Return a copy of string S with all occurrences of substring
old replaced by new.  If the optional argument count is
given, only the first count occurrences are replaced.
rfind(...)
S.rfind(sub [,start [,end]]) -> int
 
Return the highest index in S where substring sub is found,
such that sub is contained within s[start,end].  Optional
arguments start and end are interpreted as in slice notation.
 
Return -1 on failure.
rindex(...)
S.rindex(sub [,start [,end]]) -> int
 
Like S.rfind() but raise ValueError when the substring is not found.
rjust(...)
S.rjust(width) -> string
 
Return S right justified in a string of length width. Padding is
done using spaces.
rstrip(...)
S.rstrip([chars]) -> string or unicode
 
Return a copy of the string S with trailing whitespace removed.
If chars is given and not None, remove characters in chars instead.
If chars is unicode, S will be converted to unicode before stripping
sjoin = join(...)
S.join(sequence) -> string
 
Return a string which is the concatenation of the strings in the
sequence.  The separator between elements is S.
splitlines(...)
S.splitlines([keepends]) -> list of strings
 
Return a list of the lines in S, breaking at line boundaries.
Line breaks are not included in the resulting list unless keepends
is given and true.
ssplit = split(...)
S.split([sep [,maxsplit]]) -> list of strings
 
Return a list of the words in the string S, using sep as the
delimiter string.  If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator.
startswith(...)
S.startswith(prefix[, start[, end]]) -> bool
 
Return True if S starts with the specified prefix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
strip(...)
S.strip([chars]) -> string or unicode
 
Return a copy of the string S with leading and trailing
whitespace removed.
If chars is given and not None, remove characters in chars instead.
If chars is unicode, S will be converted to unicode before stripping
swapcase(...)
S.swapcase() -> string
 
Return a copy of the string S with uppercase characters
converted to lowercase and vice versa.
title(...)
S.title() -> string
 
Return a titlecased version of S, i.e. words start with uppercase
characters, all remaining cased characters have lowercase.
translate(...)
S.translate(table [,deletechars]) -> string
 
Return a copy of the string S, where all characters occurring
in the optional argument deletechars are removed, and the
remaining characters have been mapped through the given
translation table, which must be a string of length 256.
upper(...)
S.upper() -> string
 
Return a copy of the string S converted to uppercase.
zfill(...)
S.zfill(width) -> string
 
Pad a numeric string S with zeros on the left, to fill a field
of the specified width.  The string S is never truncated.

Data and other attributes inherited from str:
__new__ = <built-in method __new__ of type object at 0x1E0CFB00>
T.__new__(S, ...) -> a new object with type S, a subtype of T