def do_leave(self, args): """ Function: leave This function helps vehicle to exit the building. Usage: leave <parking_slot_number> Examples: leave 4 Notes: 1. parking_slot_number must be non-negative integer. Args: int: Parking slot number, where vehicle was parked. """ user_note = "Invalid input, provide valid slot number" assert validate_input(args.split(), ARRAY, array_length=1), user_note slot = args.split()[0] assert validate_input( slot, INTEGER, required_range=(1, self.__parking_object.capacity)), \ user_note slot = int(slot) self.__parking_object.leave(slot)
def do_registration_numbers_for_cars_with_colour(self, args): """ Function: registration_numbers_for_cars_with_colour This function gets you the registration numbers of all cars having the specified color. Usage: registration_numbers_for_cars_with_colour <color> Examples: registration_numbers_for_cars_with_colour Black Notes: 1. Color should be entered in case sensitive. Args: str: Color of the car. """ user_note = "Provide proper value of color for search" assert validate_input(args.split(), ARRAY, array_length=1), user_note color = args.split()[0] assert color.isalpha(), user_note slots = self.__parking_object.query(color=color) if not slots: print("No Vehicle Found for the query") return data = [(slot, vehicle.number, vehicle.color) for slot, vehicle in slots.items()] print tabulate(data, headers=["Slot No", "Registration No", "Color"], tablefmt='grid')
def do_park(self, args): """ Function: park This function provides free slot to park the vehicle. Usage: park <vehicle_registration_number> <color> Examples: park KA-01-HH-1234 White Notes: 1. Registration number and Color should be entered in case sensitive. Args: str: Color of the car. """ args = args.split() user_note = "Required inut <register_no> and <color>, type *help park* " \ "for more details" assert validate_input(args, ARRAY, array_length=2), user_note number = args[0] user_note = "ALERT, Duplicate numbered Vehicle Found" assert not self.__parking_object.query(number=number), user_note color = args[1] user_note = "Value for color must be only alphaphets" assert color.isalpha(), user_note vehicle = Vehicle(*args) self.__parking_object.park(vehicle)
def main(args): config = configuration.get_config(args) url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) if config.get("repo"): retrieve_jobs(config.get("repo")) load_jobs() start_time = time.time() bundle_stream = None if config.get("stream"): bundle_stream = config.get("stream") submit_jobs(connection, config.get("server"), bundle_stream=bundle_stream) if config.get("poll"): jobs = poll_jobs(connection, config.get("timeout")) end_time = time.time() if config.get("bisect"): for job_id in jobs: if 'result' in jobs[job_id]: if jobs[job_id]['result'] == 'FAIL': exit(1) jobs['duration'] = end_time - start_time jobs['username'] = config.get("username") jobs['token'] = config.get("token") jobs['server'] = config.get("server") results_directory = os.getcwd() + '/results' utils.mkdir(results_directory) utils.write_json(config.get("poll"), results_directory, jobs) exit(0)
def main(args): config = configuration.get_config(args) url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) if config.get("repo"): retrieve_jobs(config.get("repo")) load_jobs() start_time = time.time() bundle_stream = None if config.get("stream"): bundle_stream = config.get("stream") submit_jobs(connection, config.get("server"), bundle_stream=bundle_stream) if config.get("poll"): jobs = poll_jobs(connection, config.get("timeout")) end_time = time.time() jobs['duration'] = end_time - start_time jobs['username'] = config.get("username") jobs['token'] = config.get("token") jobs['server'] = config.get("server") results_directory = os.getcwd() + '/results' utils.mkdir(results_directory) utils.write_yaml(config.get("poll"), results_directory, jobs) exit(0)
def post(self): user = users.get_current_user() if not user: self.redirect('/') else: board_id = self.request.get('board') title = self.request.get('title') link = self.request.get('link') description = self.request.get('description') actions = [x for x in constants.ACTIONS if self.request.get(x)] if actions: board_id, link, errors = utils.validate_input(board_id, link) if errors: self.render('public.html', id=board_id, link=link, errors=errors, actions=constants.ACTIONS, signout=constants.SIGNOUT) else: feed_url = utils.create_feed( user,board_id, title,link, description, actions, public_board=True, get_all=False, token=None ) self.render('congrats.html',feed_url=feed_url,signout=constants.SIGNOUT) else: # They didn't mark any of the checkboxes self.render('public.html',check_error=True,actions=constants.ACTIONS,signout=constants.SIGNOUT)
def do_slot_number_for_registration_number(self, args): """ Function: slot_number_for_registration_number This function gets you the location of the car with given registration number, if parked in the building's parkings slot. Usage: slot_number_for_registration_number <registration_number> Examples: slot_number_for_registration_number KA-01-HH-3141 Notes: 1. Registration Number should be entered in case sensitive. Args: str: Registration Number of the car. """ user_note = "Provide valid registration number to search" assert validate_input(args.split(), ARRAY, array_length=1), user_note number = args.split()[0] slots = self.__parking_object.query(number=number) if not slots: print("No Vehicle Found for the query") return print("Vehicle Found in slots: %s" % slots.keys())
def do_slot_numbers_for_cars_with_colour(self, args): """Function: slot_numbers_for_cars_with_colour This function provides list of cars in the given color along with the parked location, if present in the parking slot of the building. Usage: slot_numbers_for_cars_with_colour <color> Examples: slot_numbers_for_cars_with_colour White Notes: 1. Color should be entered in case sensitive. Args: str: Color of the car. """ user_note = "Provide valid value for <color> to search, check help <cmd> " \ "for more information" assert validate_input(args.split(), ARRAY, array_length=1), user_note color = args.split()[0] assert color.isalpha(), "Invalid Color input" slots = self.__parking_object.query(color=color) if not slots: print("No Vehicle Found for the query") return print("Vehicle Found in slots: %s" % slots.keys())
def parse_json(json): jobs = utils.load_json(json) url = utils.validate_input(jobs['username'], jobs['token'], jobs['server']) connection = utils.connect(url) duration = jobs['duration'] # Remove unused data jobs.pop('duration') jobs.pop('username') jobs.pop('token') jobs.pop('server') return connection, jobs, duration
def main(args): config = configuration.get_config(args) url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) load_jobs() start_time = time.time() bundle_stream = None if config.get("stream"): bundle_stream = config.get("stream") create_jobs(connection, config.get("server"), bundle_stream=bundle_stream) exit(0)
def main(args): config = configuration.get_config(args) if config.get("repo"): retrieve_jobs(config.get("repo")) if config.get("jobs"): load_jobs(config.get("jobs")) print "Loading jobs from top folder " + str(config.get("jobs")) else: load_jobs(os.getcwd()) if job_map: url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) submit_jobs(connection) exit(0)
def main(args): config = configuration.get_config(args) if config.get("repo"): retrieve_jobs(config.get("repo")) jobs = config.get("jobs") print("Loading jobs from {}".format(jobs)) load_jobs(jobs) if JOBS: start_time = time.time() url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) submit_jobs(connection) exit(0)
def main(args): config = configuration.get_config(args) url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) if config.get("repo"): retrieve_jobs(config.get("repo")) if config.get("jobs"): load_jobs(config.get("jobs")) print "Loading jobs from top folder " + str(config.get("jobs")) else: load_jobs(os.getcwd()) submit_jobs(connection) exit(0)
def main(args): config = configuration.get_config(args) jobs_submitted = config.get('submitted') lab = config.get('lab') if jobs_submitted: if not lab: raise Exception("Lab name required when saving submitted jobs") if os.path.exists(jobs_submitted): os.unlink(jobs_submitted) if config.get("repo"): retrieve_jobs(config.get("repo")) jobs = config.get("jobs") print("Loading jobs from {}".format(jobs)) load_jobs(jobs) if not JOBS: print("No jobs to submit") result = False else: start_time = time.time() labs_config = configparser.ConfigParser() labs_config.read('labs.ini') lava_api = labs_config[config.get("lab")]['api'] print("LAVA API: {}".format(lava_api)) url = utils.validate_input(config.get("username"), config.get("token"), lava_api) connection = utils.connect(url) result = submit_jobs(connection) if jobs_submitted and SUBMITTED: print("Saving submitted jobs data in {}".format(jobs_submitted)) data = { 'start_time': start_time, 'lab': config.get('lab'), 'jobs': {k: v for k, v in SUBMITTED.iteritems() if v}, } with open(jobs_submitted, 'w') as json_file: json.dump(data, json_file) exit(0 if result is True else 1)
def main(args): config = configuration.get_config(args) url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) if config.get("repo"): retrieve_jobs(config.get("repo")) if config.get("jobs"): load_jobs(config.get("jobs")) print "Loading jobs from top folder " + str(config.get("jobs")) else: load_jobs(os.getcwd()) start_time = time.time() bundle_stream = None if config.get("stream"): bundle_stream = config.get("stream") submit_jobs(connection, config.get("server"), bundle_stream=bundle_stream) if config.get("poll"): jobs = poll_jobs(connection, config.get("timeout")) end_time = time.time() if config.get("bisect"): for job_id in jobs: if 'result' in jobs[job_id]: if jobs[job_id]['result'] == 'FAIL': exit(1) jobs['duration'] = end_time - start_time jobs['username'] = config.get("username") jobs['token'] = config.get("token") jobs['server'] = config.get("server") results_directory = os.getcwd() + '/results' utils.mkdir(results_directory) utils.write_json(config.get("poll"), results_directory, jobs) exit(0)
def main(args): config = configuration.get_config(args) url = utils.validate_input(config.get("username"), config.get("token"), config.get("server")) connection = utils.connect(url) if config.get("repo"): retrieve_jobs(config.get("repo")) if config.get("jobs"): load_jobs(config.get("jobs")) print "Loading jobs from top folder " + str(config.get("jobs")) else: load_jobs(os.getcwd()) start_time = time.time() bundle_stream = None if config.get("stream"): bundle_stream = config.get("stream") submit_jobs(connection, config.get("server"), bundle_stream=bundle_stream) if config.get("poll"): jobs = poll_jobs(connection, config.get("timeout")) end_time = time.time() if config.get("bisect"): for job_id in jobs: if "result" in jobs[job_id]: if jobs[job_id]["result"] == "FAIL": exit(1) jobs["duration"] = end_time - start_time jobs["username"] = config.get("username") jobs["token"] = config.get("token") jobs["server"] = config.get("server") results_directory = os.getcwd() + "/results" utils.mkdir(results_directory) utils.write_json(config.get("poll"), results_directory, jobs) exit(0)
def do_create_parking_lot(self, capacity): """ Function: create_parking_lot This must be the first command to execute, and can be called only once. This initiates the system with Capacity of the buliding to facilitate multiple car to park. Usage: create_parking_lot <capacity> Examples: create_parking_lot 6 Notes: 1. capacity must be non-negative integer. Args: int: capacity to park multiple vehicle in the building. """ assert validate_input(capacity, INTEGER, required_positive=True) self.__parking_object = ParkingSystem(capacity=int(capacity)) print("Created a parking lot with {capacity} slots".format( capacity=capacity))