Best Python code snippet using slash
Schedule.py
Source:Schedule.py  
1# coding=utf-82# Copyright 2019 StrTrek Team Authors.3#4# Licensed under the Apache License, Version 2.0 (the "License");5# you may not use this file except in compliance with the License.6# You may obtain a copy of the License at7#8#     http://www.apache.org/licenses/LICENSE-2.09#10# Unless required by applicable law or agreed to in writing, software11# distributed under the License is distributed on an "AS IS" BASIS,12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13# See the License for the specific language governing permissions and14# limitations under the License.15# System Required16from datetime import datetime, timedelta17import time18# Outer Required19# import msgpack20# Inner Required21# Global Parameters22from Babelor.Config import CONFIG23class TASKS:24    def __init__(self, interval: int = CONFIG.TASK_BLOCK_TIME):25        self.tasks = []26        self.interval = interval27        self.active = True28    def run_tasks(self):29        runnable_tasks = [task for task in self.tasks if task.should_run()]30        for task in sorted(runnable_tasks):31            task.run()32        # --------------------33        next_run_tasks_cnt = 034        for task in self.tasks:35            if task.next_should_run():36                next_run_tasks_cnt += 137        if next_run_tasks_cnt == 0:38            self.active = False39    def add(self, start: datetime, delta: timedelta, func: callable,40            expired: int = CONFIG.TASK_MAX_RUN_TIMES, **kwargs):41        task = TASK(start, delta, expired, func, **kwargs)42        self.tasks.append(task)43    def start(self):44        while self.active:45            self.run_tasks()46            time.sleep(self.interval)47        else:48            self.active = True49class TASK:50    def __init__(self, start: datetime, delta: timedelta, expired: int, func: callable, **kwargs):51        self.task_func = func52        self.last_run_datetime = datetime.now()        # datetime of the last run53        self.next_run_datetime = start + delta                  # datetime of the next run54        self.timedelta = delta                                  # timedelta between runs55        self.start_datetime = start                             # specific datetime to start on56        self.expire_datetime = start + (delta * (expired + 1))  # specific datetime to expired57        self.run_times = 0                                      # run times58        self.kwargs = kwargs59    def run(self):60        if self.task_func is not None:61            self.task_func(**self.kwargs)62        self.last_run_datetime = datetime.now()63        self.schedule_next_run()64    def next_should_run(self):65        return self.next_run_datetime < self.expire_datetime66    def should_run(self):67        current_datetime = datetime.now()68        is_not_expired = current_datetime < self.expire_datetime69        is_not_run = current_datetime >= self.next_run_datetime70        return is_not_expired and is_not_run71    def schedule_next_run(self):72        self.run_times += 173        self.next_run_datetime = self.start_datetime + (self.timedelta * self.run_times)74        if self.next_run_datetime < datetime.now():...analysisresult.py
Source:analysisresult.py  
...7    VERIFIED = "verified"8    def __init__(self, xml_tag, status):9        self.status = status10        super().__init__(xml_tag)11    def is_not_run(self):12        if self.status == Analysis_Result.NOT_RUN:13            return True14        else:15            return False16    def is_not_available(self):17        if self.status == Analysis_Result.NOT_AVAILABLE:18            return True19        else:20            return False21    @classmethod22    def from_xml_node(cls, xml_node):23        """24        Initialize the object from a XML node.25        :param xml_node: The XML node from which all necessary parameters will be parsed....Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
