Best Python code snippet using lisa_python
schema.py
Source:schema.py  
...89        runbook_type: type of runbook90        field_name: the field name which stores the data, if it's "", get it from type91        """92        if not hasattr(self, "_extended_runbook"):93            type_name = self.__resolve_type_name(94                runbook_type=runbook_type, type_name=type_name95            )96            if self.extended_schemas and type_name in self.extended_schemas:97                self._extended_runbook: T = load_by_type(98                    runbook_type, self.extended_schemas[type_name]99                )100            else:101                # value may be filled outside, so hold and return an object.102                self._extended_runbook = runbook_type()103            # if there is any extra key, raise exception to help user find it earlier.104            if self.extended_schemas and len(self.extended_schemas) > 0:105                expected_extra_count = 0106                if type_name in self.extended_schemas:107                    expected_extra_count = 1108                if len(self.extended_schemas) > expected_extra_count:109                    extra_names = [110                        name for name in self.extended_schemas if name != type_name111                    ]112                    raise LisaException(113                        f"unknown keys in extendable schema [{runbook_type.__name__}]: "114                        f"{extra_names}"115                    )116        return self._extended_runbook117    def set_extended_runbook(self, runbook: Any, type_name: str = "") -> None:118        self._extended_runbook = runbook119        if self.extended_schemas and type_name in self.extended_schemas:120            # save extended runbook back to raw dict121            self.extended_schemas[type_name] = runbook.to_dict()122    def __resolve_type_name(self, runbook_type: Type[Any], type_name: str) -> str:123        assert issubclass(124            runbook_type, DataClassJsonMixin125        ), "runbook_type must annotate from DataClassJsonMixin"126        if not type_name:127            assert hasattr(self, constants.TYPE), (128                f"cannot find type attr on '{runbook_type.__name__}'."129                f"either set field_name or make sure type attr exists."130            )131            type_name = getattr(self, constants.TYPE)132        return type_name133    def __repr__(self) -> str:134        result = ""135        if hasattr(self, "_extended_runbook"):136            result = f"ext:{self._extended_runbook}"...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!!
