Best Python code snippet using lisa_python
ethtool.py
Source:ethtool.py  
...117    _feature_settings_pattern = re.compile(118        r"^[\s]*(?P<name>.*):(?P<value>.*?)?$", re.MULTILINE119    )120    def __init__(self, interface: str, device_feature_raw: str) -> None:121        self._parse_feature_info(interface, device_feature_raw)122    def _parse_feature_info(self, interface: str, raw_str: str) -> None:123        matched_features_info = self._feature_info_pattern.search(raw_str)124        if not matched_features_info:125            raise LisaException(f"Cannot get {interface} features settings info")126        self.device_name = interface127        self.enabled_features = []128        for row in matched_features_info.group("value").splitlines():129            feature_info = self._feature_settings_pattern.match(row)130            if not feature_info:131                raise LisaException(132                    f"Could not get feature setting for device {interface}"133                    " in the defined pattern."134                )135            if "on" in feature_info.group("value"):136                self.enabled_features.append(feature_info.group("name"))...parser.py
Source:parser.py  
...97        if result:98            datetime_str = result.group(0).removeprefix(left_pointer).removesuffix(right_pointer).strip()99            return datetime.strptime(datetime_str, self._compilation_settings.time_format)100        raise DatetimeParsingError("Could not parse datetime from '%s'!", line)101    def _parse_feature_info(self, header: str) -> FeatureInfo:  # noqa: C901102        feature_info = FeatureInfo()103        for line in header.split("\n"):104            if line.startswith(self._compilation_settings.id_prefix):105                feature_info.id = self._get_id(line)106                continue107            if line.startswith(self._compilation_settings.tag_prefix):108                tags = self._get_tags(line)109                feature_info.type = self._get_feature_type(tags)110                tags.remove(feature_info.type)111                severity_tag = self._get_severity_tag(tags)112                if severity_tag is not None:113                    tags.remove(severity_tag)114                    feature_info.severity = allure.severity_level(115                        severity_tag.removeprefix(self._compilation_settings.severity_keyword)116                    )117                feature_info.tags = tags118                continue119            for prefix in self._feature_prefixes:120                if not line.startswith(prefix):121                    continue122                feature_info.name = self._get_name(name_line=line, feature_prefix=prefix)123            if self._compilation_settings.created_by_prefix in line:124                feature_info.author = self._get_additional_info(125                    line,126                    left_pointer=self._compilation_settings.created_by_prefix,127                    right_pointer=self._compilation_settings.blocks_delimiter,128                )129            if self._compilation_settings.last_edited_by_prefix in line:130                feature_info.last_edited_by = self._get_additional_info(131                    line,132                    left_pointer=self._compilation_settings.last_edited_by_prefix,133                    right_pointer=self._compilation_settings.time_delimiter,134                )135                feature_info.last_edited_at = self._get_time_info(136                    line,137                    left_pointer=self._compilation_settings.time_delimiter,138                    right_pointer=self._compilation_settings.blocks_delimiter,139                )140            if self._task_prefix is not None and self._task_prefix in line:141                feature_info.tasks = self._get_task_info(line)142                continue143        if feature_info.name is None:144            raise FeatureNameParsingError(f"Could not parse feature name from header:\n{header}")145        return feature_info146    def parse(self, feature_txt: str) -> Union[FeatureInfo, StrictFeatureInfo]:147        blocks_delimiter = "\n\n"148        indent = "  "149        indent_substitute = "__"150        blocks = [151            block.lstrip(" \n") for block in feature_txt.replace(indent, indent_substitute).split(blocks_delimiter)152        ]153        header = blocks.pop(0)154        feature_info = self._parse_feature_info(header)155        feature_info.scenarios = blocks_delimiter.join(blocks).replace(indent_substitute, indent)156        if not self._parser_settings.parser_strict_mode:157            return feature_info158        if feature_info.id is None:159            raise NullableFeatureIdError("Feature has not got specified ID!")160        try:161            return StrictFeatureInfo(**feature_info.dict())162        except ValueError as err:...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!!
