Skip to content

Markers

uzi.markers

T_Injected = t.TypeVar('T_Injected', covariant=True) module-attribute

The injected type.

T_Default = t.TypeVar('T_Default') module-attribute

Default value type.

T_Injectable = t.TypeVar('T_Injectable', bound='Injectable', covariant=True) module-attribute

An Injectable type.

PUBLIC: AccessModifier = AccessModifier.public module-attribute

public access modifier

PROTECTED: AccessModifier = AccessModifier.protected module-attribute

protected access modifier

GUARDED: AccessModifier = AccessModifier.guarded module-attribute

guarded access modifier

PRIVATE: AccessModifier = AccessModifier.private module-attribute

private access modifier

ONLY_SELF: ScopePredicate = ScopePredicate.only_self module-attribute

Only inject from the current scope without considering parents

SKIP_SELF: ScopePredicate = ScopePredicate.skip_self module-attribute

Skip the current scope and resolve from it's parent instead.

Injectable

Abstract base class for injectable types.

An injectable is an object that can be used to represent a dependency.

Builtin injectable types:- type, TypeVar, FunctionType, MethodType, GenericAlias

NonInjectable

Abstract base class for non-injectable types.

DependencyMarker

Bases: Injectable, t.Generic[T_Injectable]

Abstract base class for dependency markers.

Dependency markers are used reperesent and/or annotate dependencies.

AccessModifier

Bases: ProEnumPredicate, Enum

Access modifier for dependencies

Attributes:

Name Type Description
public AccessModifier

public

protected AccessModifier

protected

guarded AccessModifier

guarded

private AccessModifier

private

ScopePredicate

Bases: ProEnumPredicate, Enum

The context in which to provider resolution.

only_self: 'ScopePredicate' = True class-attribute

Only inject from the current scope without considering parents

skip_self: 'ScopePredicate' = False class-attribute

Skip the current scope and resolve from it's parent instead.

ProSlice

Bases: ProPredicate, t.Generic[_T_Start, _T_Stop, _T_Step]

Represents a slice or the Provider resolution order

PureDep

Bases: DependencyMarker, t.Generic[T_Injectable]

Explicitly marks given injectable as a dependency.

Attributes:

Name Type Description
abstract T_Injectable

the marked dependency.

Parameters:

Name Type Description Default
abstract T_Injectable

the dependency to mark.

required

Dep

Bases: PureDep

Marks an injectable as a dependency to be injected.

Lookup

Bases: DependencyMarker, BaseLookup

Represents a lazy lookup of a given dependency.

Attributes:

Name Type Description
__abstract__ Injectable

the dependency to lookup.

Parameters:

Name Type Description Default
abstract Injectable

the dependency to lookup.

required

is_injectable(obj)

Returns True if the given type annotation is injectable.

Parameters:

Name Type Description Default
typ type

The type annotation to check.

required

Returns:

Type Description
bool

True if typ can be injected or False if otherwise.

is_injectable_annotation(typ)

Returns True if the given type annotation is injectable.

Parameters:

Name Type Description Default
typ type

The type annotation to check.

required

Returns:

Type Description
bool

True if typ can be injected or False if otherwise.

is_dependency_marker(obj: t.Any, ind = 0) -> bool

Check if object is a DependencyMarker

Parameters:

Name Type Description Default
obj Any

the object to check

required

Returns:

Name Type Description
bool bool
Back to top