def __init__()

in pipeline/ocr/sfn_semaphore/fn-acquire-lock/main.py [0:0]


    def __init__(self, raw_event: dict):
        # Required event attrs first:
        try:
            self.execution_id = raw_event["ExecutionId"]
            self.state_entered_time = raw_event["StateEnteredTime"]
        except KeyError as kerr:
            raise MalformedRequest(f"Input event missing required key '{kerr}'") from kerr

        # Params with environment variable defaults:
        self.ddb_table_name = raw_event.get("TableName", DEFAULT_DDB_TABLE_NAME)
        if not self.ddb_table_name:
            raise MalformedRequest(
                "Must provide either input key 'TableName' or env var DEFAULT_DDB_TABLE_NAME"
            )
        self.lock_id_attr = raw_event.get("LockIdAttribute", DEFAULT_LOCK_ID_ATTRIBUTE)
        if not self.lock_id_attr:
            raise MalformedRequest(
                "Must provide either input key 'LockIdAttribute' or env var "
                "DEFAULT_LOCK_ID_ATTRIBUTE"
            )
        self.lock_name = raw_event.get("LockName", DEFAULT_LOCK_NAME)
        if not self.lock_name:
            raise MalformedRequest(
                "Must provide either input key 'LockName' or env var DEFAULT_LOCK_NAME"
            )
        self.per_item_concurrency = raw_event.get(
            "PerItemConcurrency",
            DEFAULT_PER_ITEM_CONCURRENCY,
        )
        if not (self.per_item_concurrency and self.per_item_concurrency > 0):
            raise MalformedRequest(
                "Input key 'PerItemConcurrency' (or env var DEFAULT_PER_ITEM_CONCURRENCY) must be "
                f"an integer greater than 0. Got '{self.per_item_concurrency}"
            )
        self.concurrency_limit = raw_event.get("ConcurrencyLimit", DEFAULT_CONCURRENCY_LIMIT)
        self.warmup_tps_limit = raw_event.get("WarmupTpsLimit", DEFAULT_WARMUP_TPS_LIMIT)