Events handler

Handler is a constructor for the user input images processing rules. Handler has five processing steps:

  1. Detect faces. User can set a list attributes for estimation and head angle thresholds.

  2. Extract attributes. User can define which attributes should be extracted (basic attributes, face or body descriptors or both).

  3. Match extracted descriptors by lists. User can define luna lists for matching and rules for matching.

  4. Create objects using the extracted data and store them. User can define rules for creating samples, attributes, faces or even events. Also, see link policy inside the face storage policy - linking created faces to lists.

For detail see spec_create_new_handler.

Module contains schemas for handler

class luna_handlers.classes.schemas.handler.CachedHandlerModel(**data)[source]

Cached handler model | contains minimal required fields

classmethod postInit(values)[source]

Post init

static postInitMatchPolicy(matchPolicies, accountId)[source]

Post init matching policy - apply handler account id for matching candidates :param matchPolicies: matching policies :param accountId: handler account id

Return type

None

class luna_handlers.classes.schemas.handler.CreateHandlerModel(**data)[source]

Handler model for handler creation

classmethod validateNPostInit(values)[source]

Validate handler, post init

class luna_handlers.classes.schemas.handler.FaceInputEstimationsModel(**data)[source]

Model for incoming face estimations: urls, image or samples

classmethod validateHandler(values)[source]

Validate handler model

Return type

dict

class luna_handlers.classes.schemas.handler.HandlerInputEstimationsModel(*, image: str = None, mimetype: str = None, face_bounding_boxes: types.ConstrainedListValue[classes.schemas.simple_schemas.BoundingBoxSchema] = None, body_bounding_boxes: types.ConstrainedListValue[classes.schemas.simple_schemas.BoundingBoxSchema] = None, urls: classes.schemas.types.userConstrainedList.<locals>.UserConstrainedList[luna_handlers.classes.schemas.handler.UrlForInputEvent] = None, samples: typing.Union[classes.schemas.types.userConstrainedList.<locals>.UserConstrainedList[luna_handlers.classes.schemas.handler.SampleForInputEvent], classes.schemas.types.userConstrainedList.<locals>.UserConstrainedList[uuid.UUID]] = None, detect_time: classes.schemas.types.CustomDatetime = None, detect_ts: classes.schemas.types.DetectTs = None, image_origin: classes.schemas.types.Str256 = None)[source]

Handler model for incoming estimations: urls, image(with face and/or body bounding boxes) or samples

classmethod validateHandler(values)[source]

Validate handler model

Return type

dict

class luna_handlers.classes.schemas.handler.SampleForInputEvent(**data)[source]

Sample schema

class luna_handlers.classes.schemas.handler.UrlForInputEvent(**data)[source]

Url schema with detection time and image origin

class luna_handlers.classes.schemas.handler.ValidatorHandlerModel(**data)[source]

Handler validator model

Module contains event structure.

class luna_handlers.classes.event.BodyExtractedAttribute(descriptor=None, sampleIds=None)[source]

Body extracted attribute.

asDict()[source]

Body attributes in api format.

class luna_handlers.classes.event.Event(sdkEstimations=None, aggregatedEstimations=None, faceAttributes=None, bodyAttributes=None, sampleIds=None, meta=None)[source]

Structure for storage a event

eventId

event id

Type

str

eventUrl

(Optional[str]) event url

sdkEstimations

face & body estimations

Type

list[ImageDetection]

aggregateEstimations

event aggregate estimations

Type

AggregateEstimations

faceAttributes

face extracted attribute

Type

FaceExtractedAttribute

bodyAttributes

body extracted attribute

Type

BodyExtractedAttribute

sampleIds

event attribute sample ids

Type

list[str]

meta

user defined metadata

Type

EventMetadata

tags

event tags (user defined & conditional ones)

Type

list[str]

avatar

event avatar

faceId

face id associated with the event

Type

Optional[str]

faceUrl

face url

Type

Optional[str]

linkedLists

list that contains the face

Type

Optional[List[str]]

matches

list of match results

Type

List[EventMatchResult]

asDict()[source]

Prepares dict representation

Return type

dict

class luna_handlers.classes.event.EventMetadata(accountId, handlerId, createEventTime, endEventTime, source=None, tags=None, userData=None, externalId=None, location=None, trackId=None)[source]

User defined event metadata.

class luna_handlers.classes.event.ExtractedAttribute(descriptor=None, sampleIds=None)[source]

Attribute.

attributeId

attribute id

Type

Optional[str]

descriptor

descriptor

Type

RawDescriptorData

sampleIds

sample ids

Type

list(str)

class luna_handlers.classes.event.FaceExtractedAttribute(descriptor=None, basicAttributes=None, sampleIds=None)[source]

Face extracted attribute.

asDict()[source]

Face attributes in api format.

class luna_handlers.classes.event.GeoPosition(latitude=None, longitude=None)[source]

Event coordinates

latitude

longitude coordinate

Type

Optional[float]

longitude

longitude coordinate

Type

Optional[float]

asDict()[source]

Convert coordinates to dict.

Returns

dict. Keys with non None value.

Return type

Dict[str, Optional[float]]

copy()[source]

Deep copy coordinates.

Returns

event coordinates

Return type

GeoPosition

isNotEmpty()[source]

Check geo position is not empty :returns: true if not empty else false

Return type

bool

isValid()[source]

Check that both of coordinates are specified :returns: true if both of coordinates are set or no one otherwise false

Return type

bool

class luna_handlers.classes.event.Location(street, houseNumber, district, area, city, geoPosition)[source]

Event location

street

street

Type

Optional[str]

houseNumber

house number

Type

Optional[str]

district

district

Type

Optional[str]

area

area

Type

Optional[str]

city

city

Type

Optional[str]

geoPosition

geo coordinates

Type

luna_handlers.classes.event.GeoPosition

asDict()[source]

Convert location to dict.

Returns

dict. Keys with non None value.

Return type

Dict[str, str]

copy()[source]

Deep copy location.

Returns

event location

Return type

Location