Events handler¶
Handler is a constructor for the user input images processing rules. Handler has five processing steps:
Detect faces. User can set a list attributes for estimation and head angle thresholds.
Extract attributes. User can define which attributes should be extracted (basic attributes, face or body descriptors or both).
Match extracted descriptors by lists. User can define luna lists for matching and rules for matching.
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: ~typing.Optional[str] = None, mimetype: ~typing.Optional[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: ~typing.Optional[~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 an 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
