Best Python code snippet using localstack_python
thundra.py
Source:thundra.py  
...270        except Exception as e:271            print("Unable to install Thundra Python agent: %s" % e)272            return False273    return True274def _is_python_lambda_with_support_version(func_details):275    runtime = getattr(func_details, "runtime", func_details)276    return runtime in [277        LAMBDA_RUNTIME_PYTHON36,278        LAMBDA_RUNTIME_PYTHON37,279        LAMBDA_RUNTIME_PYTHON38,280    ]281def _prepare_invocation_for_python_lambda(282    context: InvocationContext,283) -> AdditionalInvocationOptions:284    # Download and initialize Python agent285    _ensure_python_agent_initialized()286    # If agent could not be initialized, skip here287    if not THUNDRA_PYTHON_AGENT_INITIALIZED:288        return None289    result = AdditionalInvocationOptions()290    # Make sure API key is contained in environment291    result.env_updates[THUNDRA_APIKEY_ENV_VAR_NAME] = _get_apikey(context.environment)292    # Switch handler to Thundra and pass original handler to Thundra through environment variable293    result.env_updates[THUNDRA_AGENT_LAMBDA_HANDLER_ENV_VAR_NAME] = context.handler294    result.updated_handler = "thundra.handler.wrapper"295    # If log disable is not configured explicitly, set it to false to enable log capturing by default296    log_disabled = context.environment.get(THUNDRA_AGENT_LOG_DISABLE_ENV_VAR_NAME)297    if not log_disabled:298        result.env_updates[THUNDRA_AGENT_LOG_DISABLE_ENV_VAR_NAME] = "false"299    # Map Thundra agent path into container so it will be accessible by Lambda function Python environment300    agent_path_mapping = "-v %s/:/opt/python/" % THUNDRA_PYTHON_AGENT_LOCAL_PATH_ON_HOST301    if context.docker_flags:302        context.docker_flags = f"{context.docker_flags} {agent_path_mapping}"303    else:304        context.docker_flags = agent_path_mapping305    return result306################307# THUNDRA PLUGIN308################309class LambdaExecutorPluginThundra(LambdaExecutorPlugin):310    def should_apply(self, context: InvocationContext) -> bool:311        # Local executor is not supported yet312        if "local" in config.LAMBDA_EXECUTOR:313            return False314        # Plugin can only applied if LAMBDA_REMOTE_DOCKER=0315        if "docker" in config.LAMBDA_EXECUTOR and config.LAMBDA_REMOTE_DOCKER:316            return False317        # Plugin can only applied if API key is configured318        thundra_apikey = _get_apikey(context.environment)319        if not thundra_apikey:320            return False321        # Plugin can be applied for Java Lambdas with supported versions322        if _is_java_lambda_with_support_version(context.lambda_function.runtime):323            return True324        # Plugin can be applied for Node Lambdas with supported versions325        if _is_node_lambda_with_support_version(context.lambda_function.runtime):326            return True327        # Plugin can be applied for Python Lambdas with supported versions328        if _is_python_lambda_with_support_version(context.lambda_function.runtime):329            return True330        # Not applicable for Thundra plugin331        return False332    def prepare_invocation(333        self, context: InvocationContext334    ) -> Optional[Union[AdditionalInvocationOptions, InvocationResult]]:335        if is_java_lambda(context.lambda_function):336            return _prepare_invocation_for_java_lambda(context)337        elif is_nodejs_runtime(context.lambda_function):338            return _prepare_invocation_for_node_lambda(context)339        elif is_python_runtime(context.lambda_function):340            return _prepare_invocation_for_python_lambda(context)...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
