Why is the shutil module called shutil?
rantingrick
rantingrick at gmail.com
Sun Sep 25 18:50:17 EDT 2011
Here is a *very* rough outline of my ideas. There are probably a few
mistakes in there. I've decided on three main main objects. A File
object, a Path object, and a Dir object.
## START ENLIGHTENMENT ##
class Path:
def __init__(self, path):
#
# Properties about the path:
drive => str
directory => str
filename => str
extension => str
uncshare[1]=> ???
#
# Mutations.
def coerce(self) => File or Dir
def normalize(self): => ip or Path? #normcase/normpath
def expand_user(self): => ip or Path?
def expand_vars(self): => ip or Path?
def absolute(self) => ip or Path? #realpath/abspath
def strip(self) => ip => remove one extension.
def chmod(self, mode) => None
def chown(self, uid, gid) => None [1]
def rename(self, newname) => None
def access(self, mode): => None #access
def chroot(self) => None
#
# Introspection.
def is_valid(self): # exists
def is_absolute(self): #isabs
def is_directory(self): #isdir
def is_file(self): #isfile
def is_link(self): #islnk
def is_mount(self): #ismount
def is_identical(self, other): #issamefile
def time_accessed(self): #atime
def time_modified(self): #mtime
def time_changed(self): #ctime
## def utime(self, times) => None
#
# Inspection.
def info_stat(self): #stat
def info_lstat(self): #lstat
def info_statvfs(self): #statvfs
#
# Extraction.
def basename(self): => str
#Do we need basename when properties exist?
def partition(self) => (drive, path, filename, extension)
#Do we need partition when properties exist?
def splitunc(self): ???
def splitall(self): ???
def relpathto(self, dest): => ???
def pathconf(self, name): #pathconfig
#
# Modifying operations on links
def link(self, newpath): ...
def symlink(self, newlink): ...
def readlink(self): ...
def readlinkabs(self): ...
class File:
def new(path)
(...All existing file methods here...)
#
# Mutate, Clone, Destroy.
def rename(self, newname) => ip or File?
def delete(self, overwrites=3) => None
def copy(self, dst) => File
def unlink(self) => None #
#
# Attribute mutation.
def update(self) => None #touch
def copy_mode(src) => None #copymode
def copy_stat(src) => None #copystat
def update_mode(dst) => None
def update_stat(dst) => None
#
# Other
def bytes(self): => int => 1292894
def size(self, fmtstr="{0:0.2f}") => str => "1.23 MB"
def backup(self) => filename.bak{count}
class Dir:
def new(path)
def open(path)
#
# Mutate, Clone, Destroy.
def delete(self, onerror=None): => None
def copy(self, dst, symlinks=True): => Dir
#
# Introspection.
def get_paths(self, pattern=None): [Path, Path, ...]
def get_dirs(self, pattern=None): => [Dir, Dir, ...]
def get_files(self, pattern=None): => [File, File, ...]
#
def walk_paths(self, pattern=None): itereach->PathObj
def walk_dirs(self, pattern=None): itereach->DirObj
def walk_files(self, pattern=None): itereach->FileObj
#
def match(self, pattern) => bool
def glob(self, pattern): => [Path, Path, ...]
#######################################
# Not sure what to do with these yet.
#######################################
def startfile(self)
# startfile should part of os anyway.
## END ENLIGHTENMENT ##
More information about the Python-list
mailing list