Exemplo n.º 1
0
    def parseFileAttrs(self, attributes):
        '''list(str) -> File
        Retrieves data from the attribute lines and creates File DO.
        @raise ValueError: If retrieved line count differs from required attribute count
        '''

        name = self._getFileAttr(attributes, FileAttrs.NAME)
        path = self._getFileAttr(attributes, FileAttrs.PATH)
        isDirectory = self._getFileAttr(attributes, FileAttrs.IS_DIRECTORY)
        isDirectory = isDirectory and isDirectory.isdigit() and int(isDirectory)

        perms = self._getFileAttr(attributes, FileAttrs.PERMS)
        isDirectory = perms and perms[0] == 'd' or isDirectory

        #Cutting parent directory path
        parentPath = path and name and path.endswith(name) and path[:len(path) - (len(name) + 1)]

        file_ = File(name, isDirectory)
        file_.setPermissionsInText(perms)
        file_.path = path
        file_.parent = parentPath
        size = self._getFileAttr(attributes, FileAttrs.SIZE)

        owner = self._getFileAttr(attributes, FileAttrs.OWNER)
        if owner:
            owner = name and owner[:len(owner) - len(name)].strip() or owner
            owner = size and owner[owner.find(size) + len(size):].strip() or owner

        lastModificationTime = self._getFileAttr(attributes, FileAttrs.LAST_MODIFICATION_TIME)
        lastModificationTime = lastModificationTime and self._parseUTCTime(lastModificationTime)

        creationTime = self._getFileAttr(attributes, FileAttrs.CREATION_TIME)
        creationTime = creationTime and self._parseUTCTime(creationTime)

        version = self._getFileAttr(attributes, FileAttrs.VERSION)
        version = version and self._parseVersion(version)

        content = self._getFileAttr(attributes, FileAttrs.CONTENT)

        file_.owner = owner
        size and file_.setSizeInBytes(size)
        file_.version = version
        file_.content = content
        lastModificationTime and file_.setLastModificationTimeInUTC(lastModificationTime)
        creationTime and file_.setCreateTimeInUTC(creationTime)
        return file_
Exemplo n.º 2
0
    def parseFileAttrs(self, attributes):
        '''list(str) -> File
        Retrieves data from the attribute lines and creates File DO.
        @raise ValueError: retrieved line count differs from required attribute count or attribute value is invalid
        '''

        name = self._getFileAttr(attributes, FileAttrs.NAME)
        path = self._getFileAttr(attributes, FileAttrs.PATH)
        isDirectory = self._getFileAttr(attributes, FileAttrs.IS_DIRECTORY)
        isDirectory = isDirectory and isDirectory.isdigit() and int(isDirectory)

        perms = self._getFileAttr(attributes, FileAttrs.PERMS)
        #Cutting parent directory path
        parentPath = path and name and path.endswith(name) and path[:len(path) - (len(name) + 1)]
        size = self._getFileAttr(attributes, FileAttrs.SIZE)
        owner = self._getFileAttr(attributes, FileAttrs.OWNER)

        lastModificationTime = self._getFileAttr(attributes, FileAttrs.LAST_MODIFICATION_TIME)
        lastModificationTime = lastModificationTime and self._parseTimeInMls(lastModificationTime)

        creationTime = self._getFileAttr(attributes, FileAttrs.CREATION_TIME)
        creationTime = creationTime and self._parseTimeInMls(creationTime)

        version = self._getFileAttr(attributes, FileAttrs.VERSION)
        version = version and self._parseVersion(version)
        content = self._getFileAttr(attributes, FileAttrs.CONTENT)

        file_ = File(name, isDirectory)
        file_.path = path
        file_.parent = parentPath
        file_.owner = owner
        file_.content = content
        if version:
            file_.version = version
        size and file_.setSizeInBytes(size)
        perms and file_.setPermissionsInOctal(perms)
        lastModificationTime and file_.setLastModificationTimeInMls(lastModificationTime)
        creationTime and file_.setCreateTimeInMls(creationTime)
        return file_