Best Python code snippet using localstack_python
utils.py
Source:utils.py  
1from abc import ABC, abstractmethod2from typing import TypeVar, Set3T = TypeVar("T")4def get_all_subclasses(cls: T) -> Set[T]:5    all_subclasses = set()6    for subclass in cls.__subclasses__():7        all_subclasses.add(subclass)8        all_subclasses.update(get_all_subclasses(subclass))9    return all_subclasses10class classproperty:11    def __init__(self, method=None):12        self.fget = method13    def __get__(self, instance, cls=None):14        return self.fget(cls)15    def getter(self, method):16        self.fget = method17        return self18class Categorizable(ABC):19    @classproperty20    @abstractmethod21    def category(cls) -> str:22        pass23    @classmethod24    def for_category(cls: T, category: str) -> T:25        for subclass in get_all_subclasses(cls):26            if subclass.category == category:27                return subclass28        raise ValueError(f'Subclass for category "{category}" not found.')29    @classproperty30    def all_categories(cls) -> Set[str]:31        return {clss.category for clss in get_all_subclasses(cls)}32    def __eq__(self, other):33        return (34            isinstance(other, Categorizable)35            and self.category == other.category36        )37    def __hash__(self) -> int:...get_all_subclasses.py
Source:get_all_subclasses.py  
1#!/usr/bin/env python32# -*- coding: utf-8 -*-3__author__ = 'ipetrash'4# SOURCE: https://stackoverflow.com/a/17246726/59097925def get_all_subclasses(cls):6    all_subclasses = []7    for subclass in cls.__subclasses__():8        all_subclasses.append(subclass)9        all_subclasses.extend(get_all_subclasses(subclass))10    return all_subclasses11if __name__ == '__main__':12    class A:13        name = 'A'14    class B(A):15        name = 'AB'16    class C(A):17        name = 'AC'18    class D(C):19        name = 'ACD'20    class E(C):21        name = 'ACE'22    class F(D):23        name = 'ACDF'24    print(get_all_subclasses(A))  # [<class '__main__.B'>, <class '__main__.C'>, <class '__main__.D'>,...25    print(get_all_subclasses(B))  # []...test_subclasses.py
Source:test_subclasses.py  
...3    class A0:4        pass5    class B0:6        pass7    assert get_all_subclasses(A0) == set()8    class A1(A0):9        pass10    class B1(B0):11        pass12    class A2(A1):13        pass14    class M1(A0, B1):15        pass16    class M2(A2, B0):17        pass18    assert get_all_subclasses(A0) == {A1, A2, M1, M2}19    assert get_all_subclasses(B0) == {B1, M1, M2}...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!!
