def register( self, fn: callbacks.ResourceChangingFn, *, resource: references.Selector, id: Optional[str] = None, reason: Optional[handlers.Reason] = None, event: Optional[str] = None, # deprecated, use `reason` field: Optional[dicts.FieldSpec] = None, errors: Optional[handlers.ErrorsMode] = None, timeout: Optional[float] = None, retries: Optional[int] = None, backoff: Optional[float] = None, cooldown: Optional[float] = None, # deprecated, use `backoff` initial: Optional[bool] = None, deleted: Optional[bool] = None, requires_finalizer: bool = False, labels: Optional[filters.MetaFilter] = None, annotations: Optional[filters.MetaFilter] = None, when: Optional[callbacks.WhenFilterFn] = None, ) -> callbacks.ResourceChangingFn: warnings.warn( "registry.register() is deprecated; " "use @kopf.on... decorators with registry= kwarg.", DeprecationWarning) if reason is None and event is not None: reason = handlers.Reason(event) real_field = dicts.parse_field( field) or None # to not store tuple() as a no-field case. real_id = generate_id(fn=fn, id=id, suffix=".".join(real_field or [])) handler = handlers.ResourceChangingHandler( id=real_id, fn=fn, reason=reason, errors=errors, timeout=timeout, retries=retries, backoff=backoff, cooldown=cooldown, initial=initial, deleted=deleted, requires_finalizer=requires_finalizer, selector=resource, labels=labels, annotations=annotations, when=when, field=real_field, value=None, old=None, new=None, field_needs_change=None, ) self.append(handler) return fn
def from_storage(cls, __d: progress.ProgressRecord) -> "HandlerState": return cls( active=False, started=_datetime_fromisoformat(__d.get('started')) or datetime.datetime.utcnow(), stopped=_datetime_fromisoformat(__d.get('stopped')), delayed=_datetime_fromisoformat(__d.get('delayed')), purpose=handlers_.Reason(__d.get('purpose')) if __d.get('purpose') else None, retries=__d.get('retries') or 0, success=__d.get('success') or False, failure=__d.get('failure') or False, message=__d.get('message'), subrefs=__d.get('subrefs') or (), _origin=__d, )