build_artifacts/v3/v3.0/v3.0.0/dirs/etc/sagemaker-inference-server/utils/environment.py (41 lines of code) (raw):

from __future__ import absolute_import import json import os from enum import Enum class SageMakerInference(str, Enum): """Simple enum to define the mapping between dictionary key and environement variable.""" BASE_DIRECTORY = "SAGEMAKER_INFERENCE_BASE_DIRECTORY" REQUIREMENTS = "SAGEMAKER_INFERENCE_REQUIREMENTS" CODE_DIRECTORY = "SAGEMAKER_INFERENCE_CODE_DIRECTORY" CODE = "SAGEMAKER_INFERENCE_CODE" LOG_LEVEL = "SAGEMAKER_INFERENCE_LOG_LEVEL" PORT = "SAGEMAKER_INFERENCE_PORT" class Environment: """Retrieves and encapsulates SAGEMAKER_INFERENCE prefixed environment variables.""" def __init__(self): """Initialize the environment variable mapping""" self._environment_variables = { SageMakerInference.BASE_DIRECTORY: "/opt/ml/model", SageMakerInference.REQUIREMENTS: "requirements.txt", SageMakerInference.CODE_DIRECTORY: os.getenv(SageMakerInference.CODE_DIRECTORY, None), SageMakerInference.CODE: os.getenv(SageMakerInference.CODE, "inference.handler"), SageMakerInference.LOG_LEVEL: os.getenv(SageMakerInference.LOG_LEVEL, 10), SageMakerInference.PORT: 8080, } def __str__(self): return json.dumps(self._environment_variables) @property def base_directory(self): return self._environment_variables.get(SageMakerInference.BASE_DIRECTORY) @property def requirements(self): return self._environment_variables.get(SageMakerInference.REQUIREMENTS) @property def code_directory(self): return self._environment_variables.get(SageMakerInference.CODE_DIRECTORY) @property def code(self): return self._environment_variables.get(SageMakerInference.CODE) @property def logging_level(self): return self._environment_variables.get(SageMakerInference.LOG_LEVEL) @property def port(self): return self._environment_variables.get(SageMakerInference.PORT)