bencher.class_enum ================== .. py:module:: bencher.class_enum Attributes ---------- .. autoapisummary:: bencher.class_enum.T Classes ------- .. autoapisummary:: bencher.class_enum.ClassEnum bencher.class_enum.BaseClass bencher.class_enum.Class1 bencher.class_enum.Class2 bencher.class_enum.ExampleEnum Module Contents --------------- .. py:data:: T .. py:class:: ClassEnum Bases: :py:obj:`strenum.StrEnum` A string-based enum class that maps enum values to corresponding class instances. ClassEnum is a pattern to make it easier to create a factory method that converts from an enum value to a corresponding class instance. Subclasses should implement the to_class() method which takes an enum value and returns an instance of the corresponding class. This pattern is useful for configuration-driven class instantiation, allowing classes to be selected via string configuration values that match enum names. .. py:method:: to_class_generic(module_import: str, class_name: str) -> Any :classmethod: Create an instance of a class from its module path and class name. This utility method dynamically imports a module and instantiates a class from it. :param module_import: The module path to import (e.g., "bencher.class_enum") :type module_import: str :param class_name: The name of the class to instantiate :type class_name: str :returns: A new instance of the specified class :rtype: Any .. py:method:: to_class(enum_val: ClassEnum) -> Any :classmethod: :abstractmethod: Convert an enum value to its corresponding class instance. Subclasses must override this method to implement the mapping from enum values to class instances. :param enum_val: The enum value to convert to a class instance :type enum_val: ClassEnum :returns: An instance of the class corresponding to the enum value :rtype: Any :raises NotImplementedError: If this method is not overridden by a subclass .. py:class:: BaseClass Base class for the ClassEnum example. A simple dataclass that serves as the base class for the ClassEnum example classes. .. attribute:: baseclassname A name for the base class :type: str .. py:attribute:: baseclassname :type: str :value: 'class0' .. py:class:: Class1 Bases: :py:obj:`BaseClass` Example subclass 1 for the ClassEnum demonstration. .. attribute:: classname A name for this class :type: str .. py:attribute:: classname :type: str :value: 'class1' .. py:class:: Class2 Bases: :py:obj:`BaseClass` Example subclass 2 for the ClassEnum demonstration. .. attribute:: classname A name for this class :type: str .. py:attribute:: classname :type: str :value: 'class2' .. py:class:: ExampleEnum Bases: :py:obj:`ClassEnum` An example implementation of ClassEnum. This enum demonstrates how to use ClassEnum to map enum values to class instances. Each enum value corresponds to a class name that can be instantiated. .. py:attribute:: Class1 .. py:attribute:: Class2 .. py:method:: to_class(enum_val: ExampleEnum) -> BaseClass :classmethod: Convert an ExampleEnum value to its corresponding class instance. :param enum_val: The enum value to convert :type enum_val: ExampleEnum :returns: An instance of either Class1 or Class2, depending on the enum value :rtype: BaseClass