def domain_file(self): domain_basenames = [ "domain.pddl", self.problem[:4] + "domain.pddl", self.problem[:3] + "-domain.pddl", "domain_" + self.problem ] domain_dir = os.path.join(BENCHMARKS_DIR, self.domain) return tools.find_file(domain_basenames, domain_dir)
def domain_file(self): domain_basenames = ["domain.pddl", self.problem[:4] + "domain.pddl", self.problem[:3] + "-domain.pddl", "domain_" + self.problem] domain_dir = os.path.join(BENCHMARKS_DIR, self.domain) return tools.find_file(domain_basenames, domain_dir)
def __init__(self, USAF, year = 2010): basefile = "NSRDB_StationData_%s0101_%s1231_%s.csv" % (year, year, USAF) filename = tools.find_file(basefile, PATH) self.USAFinfo = geo.stationInfo(USAF) self.tz = int(self.USAFinfo['TZ']) self.place = (float(self.USAFinfo['Latitude']),float(self.USAFinfo['Longitude'])) self.csvfile = None try: self.csvfile = open(filename) except: print "File not found" self.tmy_data = csv.DictReader(self.csvfile)
def apply_patches(self): """ Apply patches to the component's source code. """ cmd = "patch -N -p1 --verbose < {f}" # Search a .patch file and apply it pattern = "{n}*.patch".format(n=self.component_data_dict["package_name"]) patch_filename = tools.find_file(self.component_data_dict["sources_directory"], pattern) if patch_filename is not None: script_filename = os.path.join(self.component_data_dict["extracted_directory"], "patch.sh") # Generate 'patch.sh' script self.copy_script_header(script_filename) cmd = cmd.format(f=patch_filename) tools.add_text_to_file(script_filename, cmd) self.run_script(script_filename, run_directory=self.component_data_dict["extracted_directory"])
def extract_source_code(self): """ Find and extract source tarball for the component. """ # We look for a tar file pattern = "{n}*.tar.*".format(n=self.component_data_dict["package_name"]) # Use 'package_version' in pattern if it is not None if self.component_data_dict["version"] is not None: pattern = "{n}*{v}*.tar.*".format(n=self.component_data_dict["package_name"], v=self.component_data_dict["version"]) source_code_filename = tools.find_file(self.component_data_dict["sources_directory"], pattern) # Try a second run if 'source_code_filename' is None using only name as pattern. if source_code_filename is None: pattern = "{n}*.tar.*".format(n=self.component_data_dict["package_name"]) source_code_filename = tools.find_file(self.component_data_dict["sources_directory"], pattern) # Try to find a zip file in case the tar file was not found if source_code_filename is None: pattern = "{n}*.zip*".format(n=self.component_data_dict["package_name"]) # Use 'package_version' in pattern if it is not None if self.component_data_dict["version"] is not None: pattern = "{n}*{v}*.zip*".format(n=self.component_data_dict["package_name"], v=self.component_data_dict["version"]) source_code_filename = tools.find_file(self.component_data_dict["sources_directory"], pattern) # Try a second run if 'source_code_filename' is None using only name as pattern. if source_code_filename is None: pattern = "{n}*.zip*".format(n=self.component_data_dict["package_name"]) source_code_filename = tools.find_file( self.component_data_dict["sources_directory"], pattern ) # Give error if None if source_code_filename is None: msg = "Can't find source code file for '{n}' with pattern: '{p}'" msg = msg.format(n=self.component_data_dict["name"], p=pattern) printer.error(msg) # Extract tools.extract(source_code_filename) # We get the name of the extracted directory pattern = "{n}*".format(n=self.component_data_dict["package_name"]) # Use 'package_version' in pattern if it is not None if self.component_data_dict["version"] is not None: pattern = "{n}*{v}*".format(n=self.component_data_dict["package_name"], v=self.component_data_dict["version"]) # Find directory using pattern self.component_data_dict["extracted_directory"] = tools.find_directory( self.component_data_dict["sources_directory"], pattern) # Try a second run if 'extracted_directory' is None using only name as pattern. # If found, get the realpath if self.component_data_dict["extracted_directory"] is None: pattern = "{n}*".format(n=self.component_data_dict["package_name"]) self.component_data_dict["extracted_directory"] = tools.find_directory( self.component_data_dict["sources_directory"], pattern ) else: self.component_data_dict["extracted_directory"] = os.path.realpath( self.component_data_dict["extracted_directory"] ) # Fail if not found 'extracted_directroy' if self.component_data_dict["extracted_directory"] is None: msg = "Can't find extracted directory for '{n}' with pattern: '{p}'" msg = msg.format(n=self.component_data_dict["name"], p=pattern) printer.error(msg) # Generate build_dir if necessary. if self.component_data_dict["require_build_dir"] is True: # Generate and save 'build_directory' path value = os.path.realpath( os.path.join( self.component_data_dict["extracted_directory"], self.build_directory_name ) ) tools.add_to_dictionary(self.component_data_dict, "build_directory_path", value, concat=False) # Create directory tools.create_directory(self.component_data_dict["build_directory_path"]) else: # If not, build component into the extracted directory tools.add_to_dictionary(self.component_data_dict, "build_directory_path", self.component_data_dict["extracted_directory"], concat=False) # Set directory owner if we are building the 'toolchain' if self.component_data_dict["builder_name"] == "toolchain": tools.set_recursive_owner_and_group(self.component_data_dict["extracted_directory"], self.component_data_dict["run_as_username"])
def test_find_file(self): """ .- check we can find files """ self.assertIsNotNone(tools.find_file(os.getcwd(), self.dummy_file))