def from_directory(directory): dcs = [] tenants = [] filenames = os.listdir(directory) dcs_filenames = [x for x in filenames if x != "tenants.xml"] dcs_filenames = sorted(dcs_filenames, key=lambda x: int(x.split(".")[0])) dcs_paths = [os.path.join(directory, x) for x in dcs_filenames] for path in dcs_paths: content = None with open(path, "r") as f: content = f.read() bs = BeautifulSoup(content, 'xml') dc = DC(bs) dcs.append(dc) tenants.extend(dc.tenants_placed) path = os.path.join(directory, "tenants.xml") tenants += read_tenants_from_file(path) # return dcs, tenants, tenants_placed e = Evaluator_base() for tenant in tenants: tenant.evaluation = e.get_tenant_evaluation(tenant) return dcs, tenants
class Robot: dcmotor = DC() relay = Relay() sensor = UltrasonicSensor() status = 0 robotIsRight = True def get_distance(self): self.relay.switchRelay(1) self.dcmotor.forward() self.status = 1 while self.robotIsRight: time.sleep(0.5) dist = self.sensor.distance() print(str(dist)) if dist < 10: self.motorStop() self.status = 0 else: self.relay.switchRelay(1) self.dcmotor.forward() def startProgram(self): x = threading.Thread(target=self.get_distance).start() def motorStop(self): self.dcmotor.stop() self.relay.switchRelay(0)
def dcsolver(initial="dog", goal="cat", cost='steps'): """ solve a dog-cat problem, print the solution, it's cost the the time taken """ problem = DC(initial, goal, cost) start = time.time() solution = astar_search(problem) elapsed = time.time() - start if solution: path = ' '.join([node.state for node in solution.path()]) path_cost = int(round(solution.path_cost)) else: path = "NO SOLUTION" path_cost = -1 print(f"{problem} cost:{path_cost}; time:{elapsed: .3f}; solution:{path}")
def dcs_gen1(): paths = ["../data/generated_dcs/{}.xml".format(x) for x in range(1, 21)] dcs = [] for path in paths: with open(path, "r") as f: content = f.read() bs = BeautifulSoup(content, 'xml') bs.find("tenants").extract() bs.find("dcxml").append(bs.new_tag('tenants')) dcs.append(DC(bs)) return (dcs)
def dcsolver(initial, goal, cost='steps'): if initial not in dictionary: print "%s is not in my dictionary" % initial return if goal not in dictionary: print "%s is not in my dictionary" % goal return start = time.time() solution = astar_search(DC(initial, goal, cost)) elapsed = time.time() - start if solution: path = ' '.join([node.state for node in solution.path()]) path_cost = int(round(solution.path_cost)) else: path = 'NO SOLUTION %s %s' % (initial, goal) path_cost = -1 print "%s %s:\t%s (%.4f)" % (cost, path_cost, path, elapsed)
def folder_loader(template_folder_xml, dcs_count): dcs = [] # tenants_placed = [] for i in range(1, dcs_count + 1): path = template_folder_xml.format(i) content = None with open(path, "r") as f: content = f.read() bs = BeautifulSoup(content, 'xml') dcs.append(DC(bs)) # for tenant_bs in bs.find_all("tenant"): # tenants_placed.append(Tenant(tenant_bs)) path = template_folder_xml.format("remained_tenants") tenants = read_tenants_from_file(path) # return dcs, tenants, tenants_placed return dcs, tenants
def domestic(): filenames = os.listdir("../data/domestic_dcs/") paths = ["../data/domestic_dcs/{}".format(x) for x in filenames] paths = ["../data/domestic_dcs/{}.xml".format(x) for x in range(1, 4)] dcs = [] for path in paths: with open(path, "r") as f: content = f.read() bs = BeautifulSoup(content, 'xml') bs.find("tenants").extract() bs.find("dcxml").append(bs.new_tag('tenants')) dcs.append(DC(bs)) tenants = [] content = None with open("../data/domestic_tenants.xml", "r") as f: content = f.read() bs = BeautifulSoup(content, 'xml') for tenant_bs in bs.find_all("tenant"): tenants.append(Tenant(tenant_bs)) return dcs, tenants
def with_return(): paths = ["../data/domestic_return/{}.xml".format(x) for x in range(1, 3)] dcs = [] for path in paths: with open(path, "r") as f: content = f.read() bs = BeautifulSoup(content, 'xml') bs.find("tenants").extract() bs.find("dcxml").append(bs.new_tag('tenants')) dcs.append(DC(bs)) tenants = [] content = None with open("../data/domestic_return/tenants.xml", "r") as f: content = f.read() bs = BeautifulSoup(content, 'xml') for tenant_bs in bs.find_all("tenant"): tenants.append(Tenant(tenant_bs)) dcs[0].tenants_placed.append(tenants[0]) tenants[0].mark = "fst" return dcs, tenants
def __init__(self, engine="CHROME"): self.browser = self.get_browser(engine) self.nyc = NYC(self.browser) self.dc = DC(self.browser)