def get_beacon_class(cls) -> PointT: return get_type_argument_class(cls, PointT)
def get_instruction_class(cls) -> Type[InstructionT]: return get_type_argument_class(cls, InstructionT)
def get_region_class(cls) -> Type[RegionT]: return get_type_argument_class(cls, RegionT)
def get_present_class(cls) -> Type[PresentT]: return get_type_argument_class(cls, PresentT)
def get_matrix_class(cls) -> Type[MatrixT]: return get_type_argument_class(cls, MatrixT)
def get_state_class(cls) -> Type[CavernMeasurerStateT]: return get_type_argument_class(cls, CavernMeasurerStateT)
def get_drawer_class(cls) -> Type[NumberDrawerT]: return get_type_argument_class(cls, NumberDrawerT)
def get_literal_class(cls) -> Type[LiteralT]: return cast(Type[LiteralT], get_type_argument_class(cls, LiteralT))
def get_operator_class(cls) -> Type[OperatorT]: return cast(Type[OperatorT], get_type_argument_class(cls, OperatorT))
def get_object_class(cls) -> Type[ObjectT]: return get_type_argument_class(cls, ObjectT)
def get_building_class(cls) -> Type[BuildingT]: return get_type_argument_class(cls, BuildingT)
def get_finder_class(cls) -> Type[CaveFinderT]: return get_type_argument_class(cls, CaveFinderT)
def get_orientation_class(cls) -> Type[OrientationT]: return get_type_argument_class(cls, OrientationT)
def get_axis_class(cls) -> Type[AxisT]: return get_type_argument_class(cls, AxisT)
def get_disc_class(cls) -> Type[DiscT]: return get_type_argument_class(cls, DiscT)
def get_packet_class(cls) -> Type[PacketT]: return cast(Type[PacketT], get_type_argument_class(cls, PacketT))
def get_ingredient_class(cls) -> Type[IngredientT]: return get_type_argument_class(cls, IngredientT)
def get_steps_class(cls) -> Type[RebootStepSetT]: return get_type_argument_class(cls, RebootStepSetT)
def get_measurer_class(cls) -> Type[CavernMeasurerT]: return get_type_argument_class(cls, CavernMeasurerT)
def get_axis_class(cls) -> Type[FoldAxisEnumT]: return get_type_argument_class(cls, FoldAxisEnumT)
def get_card_class(cls) -> Type[BingoCardT]: return get_type_argument_class(cls, BingoCardT)
def get_sheet_class(cls) -> Type[SheetT]: return get_type_argument_class(cls, SheetT)
def get_entry_class(cls) -> Type[EntryT]: return get_type_argument_class(cls, EntryT)
def get_display_class(cls) -> Type[DisplayT]: return get_type_argument_class(cls, DisplayT)
def get_triangle_class(cls) -> Type[TriangleT]: # noinspection PyTypeChecker return get_type_argument_class(cls, TriangleT)
def get_operation_class(cls) -> Type[OperationT]: # noinspection PyTypeChecker return get_type_argument_class(cls, OperationT)
def get_point_class(cls) -> Type[PointT]: point_class = get_type_argument_class(cls, PointT) if point_class is BasePoint: raise Exception( f"Generic Region has not been subclassed: {cls.__name__}") return point_class
def get_ip_7_class(cls) -> Type[Ip7T]: # noinspection PyTypeChecker return get_type_argument_class(cls, Ip7T)
def get_number_class(cls) -> Type[SnailfishNumberT]: return cast( Type[SnailfishNumberT], get_type_argument_class(cls, SnailfishNumberT), )
def get_scanner_class(cls) -> Type[ScannerT]: return get_type_argument_class(cls, ScannerT)