Beispiel #1
0
    def OpenFile(self, FileName, style = 0, lineNum = 0, hndl=None, readOnly=False, fo=None):
    #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        """ Opens the file 'FileName' (path + file)
        """
        if hndl is None: hndl = FileName
        hndl = oss.canonicalPath(hndl)
        FileName = oss.canonicalPath(FileName)

        if self.fileDb.isin(hndl, FileName):
            ## BUG -- technically this shouldn't be allowed, lets see if it happens
            assert ptrace(3, "Open: FileName is already in database")
            pass

        c = self.CreateChild(FileName, style)
        fdb = self.fileDb.add(c, hndl, FileName)
        self.syncFdb(FileName, fdb)

        try:
            c.Open(FileName, fdb, fo=fo)
            c.GotoLine(lineNum)
            self.sb.SetStatusText("Loaded: " + FileName)
        except IOError:
            ErrMsg(self, "Can't Open: " + FileName)
            c.Destroy()
            self.fileDb.rm(c)
            return False

        self.setChildTitle(c, FileName)
        return True
Beispiel #2
0
    def OpenFile(self,
                 FileName,
                 style=0,
                 lineNum=0,
                 hndl=None,
                 readOnly=False,
                 fo=None):
        #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        """ Opens the file 'FileName' (path + file)
        """
        if hndl is None: hndl = FileName
        hndl = oss.canonicalPath(hndl)
        FileName = oss.canonicalPath(FileName)

        if self.fileDb.isin(hndl, FileName):
            ## BUG -- technically this shouldn't be allowed, lets see if it happens
            assert ptrace(3, "Open: FileName is already in database")
            pass

        c = self.CreateChild(FileName, style)
        fdb = self.fileDb.add(c, hndl, FileName)
        self.syncFdb(FileName, fdb)

        try:
            c.Open(FileName, fdb, fo=fo)
            c.GotoLine(lineNum)
            self.sb.SetStatusText("Loaded: " + FileName)
        except IOError:
            ErrMsg(self, "Can't Open: " + FileName)
            c.Destroy()
            self.fileDb.rm(c)
            return False

        self.setChildTitle(c, FileName)
        return True
Beispiel #3
0
        def __init__(self, hndl=None, win=None, fpath=None, primary=True):
            #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            object.__init__(self)
            self.hndl = hndl
            self.fpath = hndl if fpath is None else fpath

            self.win = win
            self.cxt = None
            self.order = -1
            self.update()
            self.props = set()
            self.primary = primary

            self.fpath = oss.canonicalPath(self.fpath)
            self.hndl = oss.canonicalPath(self.hndl)
Beispiel #4
0
        def __init__(self, hndl=None, win=None, fpath=None, primary=True):
        #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            object.__init__(self)
            self.hndl = hndl
            self.fpath = hndl if fpath is None else fpath

            self.win = win
            self.cxt = None
            self.order = -1
            self.update()
            self.props = set()
            self.primary = primary

            self.fpath = oss.canonicalPath(self.fpath)
            self.hndl = oss.canonicalPath(self.hndl)
Beispiel #5
0
def sizeDir(pth, dirOnly, progress=False):
#-------------------------------------------------------------------------------
    res = []
    tsize = 0

    if pth == '/' or pth == r'\\':
        pth += '*'

    for df in oss.ls(pth):
        df = oss.canonicalPath(df)
        if df in gExcludes:
            print('excluding:', df, file=oss.stderr)
            continue

        if progress:
            print('...', df.encode('utf8', 'ignore'))

        gVisited.add(df)

        if os.path.isdir(df):
            size = calcSize(df, progress)
            res.append(util.sstruct(size=size, pth=df+'\\'))
        else:
            try:
                size = os.stat(df).st_size
            except WindowsError as ex:
                print('Error: "%s"' % str(ex), file=oss.stderr)

            if not dirOnly:
                res.append(util.sstruct(size=size, pth=df))
        tsize += size

    res.append(util.sstruct(size=tsize, pth=pth))
    res.sort(key=lambda ss: int(ss.size), reverse=True)
    return res
Beispiel #6
0
def calcSize(pth, progress=False, lvl=2):
#-------------------------------------------------------------------------------
    size = 0
    for p, d, f in os.walk(pth):
        for dd in d:
            dd = oss.canonicalPath(dd)
            if dd in gExcludes:
                print('excluding:', dd, file=oss.stderr)
                continue

            if dd in gVisited:
                continue

            gVisited.add(dd)

            if progress:
                print('...'*lvl, dd.encode('utf8', 'ignore'))

            size += calcSize(pth + '/' + dd, progress, lvl+1)

        for ff in f:
            try:
                s = os.stat(p + '/' + ff)[6]
                size += s
            except WindowsError as ex:
                print('Error: "%s"' % str(ex), file=oss.stderr)

    return size
Beispiel #7
0
def main(argv):
#-------------------------------------------------------------------------------
    """ usage: diskusage [options] [path]

    calculates the bytes used by the sub directories of the specified path. defaults
    to the current directory

    options:
        -d | --dir_only    : show directories only
        -p | --progress    : show progress
        -x | --exclude     : specifiy path to be excluded (can be issued multiple times)

    """
    args, opts = oss.gopt(argv[1:], [('p', 'progress'), ('d', 'dir_only')], [], [], [('x', 'exclude')], main.__doc__)

    if not args:
        args = ['.']

    if opts.exclude:
        global gExcludes
        gExcludes = [oss.canonicalPath('./' + x) for x in opts.exclude]
        print('Excludes:', gExcludes)

    for pth in oss.paths(args):
        for ss in sizeDir(pth, opts.dir_only, opts.progress):
            print("%8s" % util.CvtGigMegKBytes(ss.size, "1.1"), ss.pth)

    oss.exit(0)
Beispiel #8
0
def sizeDir(pth, dirOnly, progress=False):
    #-------------------------------------------------------------------------------
    res = []
    tsize = 0

    if pth == '/' or pth == r'\\':
        pth += '*'

    for df in oss.ls(pth):
        df = oss.canonicalPath(df)
        if df in gExcludes:
            print('excluding:', df, file=oss.stderr)
            continue

        if progress:
            print('...', df.encode('utf8', 'ignore'))

        gVisited.add(df)

        if os.path.isdir(df):
            size = calcSize(df, progress)
            res.append(util.sstruct(size=size, pth=df + '\\'))
        else:
            try:
                size = os.stat(df).st_size
            except WindowsError as ex:
                print('Error: "%s"' % str(ex), file=oss.stderr)

            if not dirOnly:
                res.append(util.sstruct(size=size, pth=df))
        tsize += size

    res.append(util.sstruct(size=tsize, pth=pth))
    res.sort(key=lambda ss: int(ss.size), reverse=True)
    return res
Beispiel #9
0
def calcSize(pth, progress=False, lvl=2):
    #-------------------------------------------------------------------------------
    size = 0
    for p, d, f in os.walk(pth):
        for dd in d:
            dd = oss.canonicalPath(dd)
            if dd in gExcludes:
                print('excluding:', dd, file=oss.stderr)
                continue

            if dd in gVisited:
                continue

            gVisited.add(dd)

            if progress:
                print('...' * lvl, dd.encode('utf8', 'ignore'))

            size += calcSize(pth + '/' + dd, progress, lvl + 1)

        for ff in f:
            try:
                s = os.stat(p + '/' + ff)[6]
                size += s
            except WindowsError as ex:
                print('Error: "%s"' % str(ex), file=oss.stderr)

    return size
Beispiel #10
0
def main(argv):
    #-------------------------------------------------------------------------------
    """ usage: diskusage [options] [path]

    calculates the bytes used by the sub directories of the specified path. defaults
    to the current directory

    options:
        -d | --dir_only    : show directories only
        -p | --progress    : show progress
        -x | --exclude     : specifiy path to be excluded (can be issued multiple times)

    """
    args, opts = oss.gopt(argv[1:], [('p', 'progress'), ('d', 'dir_only')], [],
                          [], [('x', 'exclude')], main.__doc__)

    if not args:
        args = ['.']

    if opts.exclude:
        global gExcludes
        gExcludes = [oss.canonicalPath('./' + x) for x in opts.exclude]
        print('Excludes:', gExcludes)

    for pth in oss.paths(args):
        for ss in sizeDir(pth, opts.dir_only, opts.progress):
            print("%8s" % util.CvtGigMegKBytes(ss.size, "1.1"), ss.pth)

    oss.exit(0)
Beispiel #11
0
 def getChild(self, hndl, fpath=None):
     #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     """ gets the child window associated with hndl
     """
     with self.dblock:
         hndl = oss.canonicalPath(hndl)
         fo = self.getFO(hndl=hndl)
         if fo is not None:
             return fo.win
Beispiel #12
0
    def getFO(self, cwin=None, hndl=None, fpath=None):
        #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        with self.dblock:
            if hndl is not None:
                hndl = oss.canonicalPath(hndl)
                if hndl in self.fileObjHndls:
                    return self.fileObjHndls[hndl]

            if fpath is not None:
                fpath = oss.canonicalPath(fpath)
                for fo in self.fileObjHndls.values():
                    if fo.primary and fpath == fo.fpath:
                        return fo

            if cwin is not None:
                for fo in self.fileObjHndls.values():
                    if cwin == fo.win:
                        return fo
Beispiel #13
0
 def getChild(self, hndl, fpath=None):
 #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     """ gets the child window associated with hndl
     """
     with self.dblock:
         hndl = oss.canonicalPath(hndl)
         fo = self.getFO(hndl = hndl)
         if fo is not None:
             return fo.win
Beispiel #14
0
    def getFO(self, cwin=None, hndl=None, fpath=None):
    #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        with self.dblock:
            if hndl is not None:
                hndl = oss.canonicalPath(hndl)
                if hndl in self.fileObjHndls:
                    return self.fileObjHndls[hndl]

            if fpath is not None:
                fpath = oss.canonicalPath(fpath)
                for fo in self.fileObjHndls.values():
                    if fo.primary and fpath == fo.fpath:
                        return fo

            if cwin is not None:
                for fo in self.fileObjHndls.values():
                    if cwin == fo.win:
                        return fo
Beispiel #15
0
def main(argv):
#-------------------------------------------------------------------------------
    """ usage: myedit.py <files> [<files> ...]

        frontend to myedit
    """
    args, opts = oss.gopt(argv[1:], [], [], main.__doc__ + __doc__)
    ff = [oss.canonicalPath(arg) for arg in args]

    for f in ff:
        if not oss.exists(f):
            oss.touch(f)

    oss.r('C:/python26/python.exe C:/home/chrish/work/myedit/myedit.py -X -s ' + ' '.join(ff))
    oss.exit(0)