blackfennec.type_system package

Subpackages

Submodules

blackfennec.type_system.boolean_type module

class blackfennec.type_system.boolean_type.BooleanType(subject: Optional[Map] = None)[source]

Bases: Type

Base Class for Type of a Boolean.

property default
property expected: Optional[bool]
visit_boolean(subject: Boolean) Coverage[source]

blackfennec.type_system.list_type module

class blackfennec.type_system.list_type.ListType(subject: Optional[Map] = None)[source]

Bases: Type[List]

Base Class for Type of a List.

add_element(type, is_required=True) None[source]
property default
property elements: list[blackfennec.type_system.type.Type]
is_child_optional(child: Type) bool[source]
property required_elements: list[blackfennec.structure.number.Number]
set_is_child_optional(child: Type, is_optional: bool) None[source]
set_required(index: int, value: bool) None[source]
visit_list(subject: List)[source]

Coverage calculation for List Class

Subject may contain a type multiple times, which will be then matched by a single child of the List type multiple times.

Parameters

subject (List) – List for which coverage is calculated

Returns

of subject by self(Type)

Return type

Coverage

blackfennec.type_system.map_type module

class blackfennec.type_system.map_type.MapType(subject: Optional[Map] = None)[source]

Bases: Type[Map]

Base Class for Type of a Map.

add_property(name, type: Type, is_required=True) None[source]
property default
is_child_optional(child: Type) bool[source]
property properties: Dict[str, Type]
property required_properties: list[blackfennec.structure.string.String]
set_is_child_optional(child: Type, is_optional: bool) None[source]
set_required(name: str, value) None[source]
visit_map(subject: Map) Coverage[source]

Coverage calculation for Map Class

Parameters

subject (Map) – Map for which coverage is calculated

Returns

of subject by self(Type)

Return type

Coverage

blackfennec.type_system.null_type module

class blackfennec.type_system.null_type.NullType(subject: Optional[Map] = None)[source]

Bases: Type

Base Class for Type of a Null.

property default
visit_null(subject: Null) Coverage[source]

blackfennec.type_system.number_type module

class blackfennec.type_system.number_type.NumberType(subject: Optional[Map] = None)[source]

Bases: Type[Number]

Base Class for Type of a Number.

property default: Number
property maximum
property minimum
visit_number(subject: Number) Coverage[source]

blackfennec.type_system.reference_type module

class blackfennec.type_system.reference_type.ReferenceType(subject: Optional[Map] = None)[source]

Bases: Type

Base Class for Type of a Boolean.

property default
visit_reference(subject: Reference) Coverage[source]

blackfennec.type_system.string_type module

class blackfennec.type_system.string_type.StringType(subject: Optional[Map] = None)[source]

Bases: Type[String]

Base Class for Type of a String.

property default
property pattern: Pattern
validate(subject)[source]
visit_string(subject: String) Coverage[source]

Check value of String for regexp

Checks whether the value contained in the type

if any can be matched with the strings value.

Parameters

subject (List) – String whose value has to match type

Returns

Coverage.COVERED if the match was successful

or no regex was contained in the type value; Coverage.NOT_COVERED if the match failed.

Return type

Coverage

blackfennec.type_system.type module

class blackfennec.type_system.type.Type(subject)[source]

Bases: TypeCoverageMixin, Generic[T]

create_instance()[source]
abstract property default: T
property is_optional
property name
property parent
property subject
property super

blackfennec.type_system.type_coverage_mixin module

class blackfennec.type_system.type_coverage_mixin.TypeCoverageMixin[source]

Bases: Visitor[Coverage]

Base Class for Type of a any Structure.

Contains decorating additional property optional,

that can be set on a Type to indicate optionality

calculate_coverage(subject)[source]

calculate the coverage of subject by this type

Parameters

subject (Info) – The subject which should be covered

Returns

The coverage report.

Return type

Coverage

visit_boolean(subject: Boolean) Coverage[source]
visit_list(unused_arg: List) Coverage[source]
visit_map(unused_arg: Map) Coverage[source]
visit_null(unused_arg: Null) Coverage[source]
visit_number(subject: Number) Coverage[source]
visit_reference(subject: Reference) Coverage[source]
visit_string(unused_arg: String) Coverage[source]

blackfennec.type_system.type_factory module

class blackfennec.type_system.type_factory.TypeFactory[source]

Bases: object

classmethod create_boolean(expected=None, default=False)[source]
classmethod create_list()[source]
classmethod create_map(properties=None, type='Map', super: Optional[Type] = None)[source]
classmethod create_null()[source]
classmethod create_number(min=None, max=None, default=0)[source]
classmethod create_string(pattern='.*', default='')[source]

blackfennec.type_system.type_loader module

class blackfennec.type_system.type_loader.TypeLoader(document_factory, type_registry)[source]

Bases: object

load(absolute_path: str)[source]

blackfennec.type_system.type_parser module

class blackfennec.type_system.type_parser.TypeParser[source]

Bases: object

FACTORIES = {'Boolean': <class 'blackfennec.type_system.boolean_type.BooleanType'>, 'List': <class 'blackfennec.type_system.list_type.ListType'>, 'Map': <class 'blackfennec.type_system.map_type.MapType'>, 'Null': <class 'blackfennec.type_system.null_type.NullType'>, 'Number': <class 'blackfennec.type_system.number_type.NumberType'>, 'Reference': <class 'blackfennec.type_system.reference_type.ReferenceType'>, 'String': <class 'blackfennec.type_system.string_type.StringType'>}
classmethod parse(structure: Map)[source]

blackfennec.type_system.type_registry module

class blackfennec.type_system.type_registry.TypeRegistry[source]

Bases: object

Type Registry Class

Is a register of all known or registered types.

_types

stores internal types

deregister_type(type: Type)[source]
Function to deregister a type from the dictionary if its class

matches the passed type

Parameters

type (Type) – element in the type list

register_type(type: Type)[source]

Function to register a new type

Parameters

type_bidder (StructureBidder) – future element of the type list

property types

types getter

Returns

of type_bidder

Return type

list

Module contents