コード例 #1
0
    def open(self, src_file=None):
        """ Open command file
        Opens output files, if specified
        :src_file: Source file default, if no extension ext="csrc"
            If no extension: look for .py, then .csrc
            in source_directories
            else look for file in source_directories
        """
        if src_file is None:
            src_file = self.src_file_name
        if src_file is None:
            raise SelectError("open has No src_file")
        """ Check name as given, then name.py, then name.csrc
        """
        path = SlTrace.getSourcePath(src_file, report=False, req=False)
        if path is None:
            path = SlTrace.getSourcePath(src_file + ".py",
                                         report=False,
                                         req=False)
        if path is None:
            path = SlTrace.getSourcePath(src_file + ".crsrc",
                                         report=False,
                                         req=False)
        if path is None:
            raise SelectError("open can't find %s(.py, .crsrc) in %s" %
                              (src_file, SlTrace.getSourceDirs(string=True)))

        ext = None
        match = re.search(r'\.([^.]+)$', path)
        self.file_type = "py"  # Default type
        if match:
            ext = match.group(1)
            if ext == "py":
                self.file_type = "py"
            elif ext == "csrc":
                self.file_type = "csrc"
            else:
                self.file_type = "py"
        self.src_file_path = path
        self.src_file_name = os.path.basename(path)  # Record
        self.eof = False  # Set True at EOF
        if self.file_type == "csrc":
            try:
                if self.src_lst or SlTrace.trace("csrc"):
                    SlTrace.lg("Open %s" % self.src_file_path)
                self.in_file = open(self.src_file_path, "r")
            except IOError as e:
                errno, strerror = e.args
                SlTrace.lg("Can't open command source file %s: %d %s" %
                           (self.src_file_path, errno, strerror))
                return False
        self.eof = False
        return True
コード例 #2
0
    def get_file_path(self, src_file=None, req=True):
        """ Get absolute file path, if one
        :src_file: name or relative path default: self.src_file_name
        :req: Raise error if not found default: True
        """
        if src_file is None:
            src_file = self.src_file_name
        path = SlTrace.getSourcePath(src_file, report=False, req=False)
        if path is None:
            path = SlTrace.getSourcePath(src_file + ".py", report=False, req=False)
        if path is None:
            path = SlTrace.getSourcePath(src_file + ".csrc", report=False, req=False)
        if path is None:
            if req:
                dir_str = SlTrace.getSourceDirs(string=True)
                SelectReport(None, "File Control",
                              f"open can't find {src_file}(.py, .csrc) in {dir_str}")

        return path    
コード例 #3
0
 def get_file_path(self, src_file=None, req=True):
     """ Get absolute file path, if one
     :src_file: name or relative path default: self.src_file_name
     :req: Raise error if not found default: True
     """
     if src_file is None:
         src_file = self.src_file_name
     path = SlTrace.getSourcePath(src_file, report=False, req=False)
     if path is None:
         path = SlTrace.getSourcePath(src_file + ".py",
                                      report=False,
                                      req=False)
     if path is None:
         path = SlTrace.getSourcePath(src_file + ".csrc",
                                      report=False,
                                      req=False)
     if path is None:
         if req:
             raise SelectError(
                 "open can't find %s(.py, .csrc) in %s" %
                 (src_file, SlTrace.getSourceDirs(string=True)))
     return path