Source code for porter.constants

"""Global constants defining endpoint naming conventions, etc."""

import datetime
import os

# this must be an absolute path
ASSETS_DIR = os.path.join(os.path.dirname(__file__), 'assets')


_MODEL_CONTEXT = 'model_context'
_PREDICTIONS = 'predictions'


LIVENESS_ENDPOINT = '/-/alive'
READINESS_ENDPOINT = '/-/ready'
ENDPOINT_TEMPLATE = '{namespace}/{service_name}/{api_version}/{action}'


[docs] class BASE_KEYS: REQUEST_ID = 'request_id'
[docs] class HEALTH_CHECK_KEYS(BASE_KEYS): PORTER_VERSION = 'porter_version' DEPLOYED_ON = 'deployed_on' APP_META = 'app_meta' SERVICES = 'services'
[docs] class HEALTH_CHECK_VALUES: IS_READY = 'READY' DEPLOYED_ON = datetime.datetime.now().isoformat()
[docs] class HEALTH_CHECK_SERVICES_KEYS: ENDPOINT = 'endpoint' STATUS = 'status' MODEL_CONTEXT = _MODEL_CONTEXT
[docs] class GENERIC_ERROR_KEYS(BASE_KEYS): ERROR = 'error'
[docs] class MODEL_CONTEXT_ERROR_KEYS: MODEL_CONTEXT = 'model_context'
[docs] class ERROR_BODY_KEYS: NAME = 'name' MESSAGES = 'messages' TRACEBACK = 'traceback' USER_DATA = 'user_data'
[docs] class MODEL_CONTEXT_KEYS: MODEL_NAME = 'model_name' API_VERSION = 'api_version' MODEL_META = 'model_meta'
[docs] class PREDICTION_KEYS(BASE_KEYS): MODEL_CONTEXT = _MODEL_CONTEXT PREDICTIONS = _PREDICTIONS
[docs] class PREDICTION_PREDICTIONS_KEYS: ID = 'id' PREDICTION = 'prediction'