Best Python code snippet using localstack_python
thundra.py
Source:thundra.py
...222 return result223################224# PYTHON AGENT225################226def _ensure_python_agent_initialized():227 global THUNDRA_PYTHON_AGENT_INITIALIZED228 if not THUNDRA_PYTHON_AGENT_INITIALIZED:229 if _init_python_agent_configs() and _install_python_agent():230 THUNDRA_PYTHON_AGENT_INITIALIZED = True231def _get_latest_python_agent_version():232 try:233 from distutils.version import StrictVersion234 import requests235 response = requests.get("https://pypi.org/pypi/thundra/json")236 data = json.loads(response.content.decode())237 versions = sorted(list(data["releases"].keys()), key=StrictVersion, reverse=True)238 return versions[0]239 except Exception as e:240 print("Unable to get latest version of Thundra Python agent: %s" % e)241 return None242def _init_python_agent_configs() -> bool:243 global THUNDRA_PYTHON_AGENT_VERSION244 global THUNDRA_PYTHON_AGENT_LOCAL_PATH245 global THUNDRA_PYTHON_AGENT_LOCAL_PATH_ON_HOST246 latest_version = _get_latest_python_agent_version()247 version = os.getenv("THUNDRA_AGENT_PYTHON_VERSION", latest_version)248 if not version:249 return False250 THUNDRA_PYTHON_AGENT_VERSION = version.strip()251 THUNDRA_PYTHON_AGENT_LOCAL_PATH = "%s/thundra/python/%s/" % (252 config.TMP_FOLDER,253 THUNDRA_PYTHON_AGENT_VERSION,254 )255 THUNDRA_PYTHON_AGENT_LOCAL_PATH_ON_HOST = "%s/thundra/python/%s/" % (256 config.HOST_TMP_FOLDER,257 THUNDRA_PYTHON_AGENT_VERSION,258 )259 return True260def _install_python_agent() -> bool:261 # Install Thundra Python agent PIP package262 if not os.path.exists(THUNDRA_PYTHON_AGENT_LOCAL_PATH):263 install.log_install_msg("Thundra Python agent", verbatim=True)264 try:265 install_thundra_cmd = "pip install --target=%s thundra==%s --no-warn-conflicts" % (266 THUNDRA_PYTHON_AGENT_LOCAL_PATH,267 THUNDRA_PYTHON_AGENT_VERSION,268 )269 common.run(install_thundra_cmd.split())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 environment...
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!!