Changeset 2905

Show
Ignore:
Timestamp:
12/30/07 14:08:23 (1 year ago)
Author:
vivainio
Message:

ipy_fsops: remove FileObj? (use normal 'path' objs instead), support for cwd (.) path obj

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ipython/trunk/IPython/Extensions/ipy_fsops.py

    r2903 r2905  
    2121import shutil,os,shlex 
    2222from IPython.external import mglob 
    23  
     23from IPython.Extensions.path import path 
    2424from IPython.ipapi import UsageError 
    2525 
     
    185185 
    186186 
    187 class FileObj: 
    188     def __init__(self,p): 
    189         self.path = p 
    190     def __call__(self): 
    191         os.startfile(self.path) 
    192     def __str__(self): 
    193         return self.path 
    194187     
    195188class PathObj: 
    196189    def __init__(self,p): 
    197190        self.path = p 
    198         if os.path.isdir(p): 
     191        if p != '.': 
     192            self.ents = [pathobj_mangle(ent) for ent in os.listdir(p)] 
     193        else: 
    199194            self.ents = None 
    200         self.ents = [pathobj_mangle(ent) for ent in os.listdir(p)] 
    201195    def __complete__(self): 
    202         if self.ents
     196        if self.path != '.'
    203197            return self.ents 
    204         return None 
     198        self.ents = [pathobj_mangle(ent) for ent in os.listdir('.')] 
     199        return self.ents 
    205200    def __getattr__(self,name): 
    206201        if name in self.ents: 
     
    215210                return PathObj(tgt) 
    216211            if os.path.isfile(tgt): 
    217                 return FileObj(tgt) 
     212                return path(tgt) 
    218213 
    219214        raise AttributeError, name  # <<< DON'T FORGET THIS LINE !! 
     
    232227    if hasattr(obj,'__complete__'): 
    233228        return obj.__complete__() 
    234     raise TryNext 
     229    raise IPython.ipapi.TryNext 
    235230 
    236231complete_pathobj = IPython.generics.complete_object.when_type(PathObj)(complete_pathobj) 
     
    242237    croot = PathObj("c:/") 
    243238    startmenu = PathObj("d:/Documents and Settings/All Users/Start Menu/Programs") 
    244     ip.to_user_ns("croot startmenu") 
     239    cwd = PathObj('.') 
     240    ip.to_user_ns("croot startmenu cwd") 
    245241     
    246242#test_pathobj()