flip.constants.flip_constants ============================= .. py:module:: flip.constants.flip_constants .. autoapi-nested-parse:: FLIP Constants and Configuration. This module provides: - Environment-aware settings (DevSettings, ProdSettings) - Enumerations for resource types, model statuses, tasks, and events Attributes ---------- .. autoapisummary:: flip.constants.flip_constants._flip_constants_instance flip.constants.flip_constants.FlipConstants Classes ------- .. autoapisummary:: flip.constants.flip_constants._Common flip.constants.flip_constants.DevSettings flip.constants.flip_constants.ProdSettings flip.constants.flip_constants._FlipConstantsProxy flip.constants.flip_constants.ResourceType flip.constants.flip_constants.FlipTasks flip.constants.flip_constants.FlipEvents flip.constants.flip_constants.FlipProps flip.constants.flip_constants.ModelStatus flip.constants.flip_constants.FlipMetricsLabel flip.constants.flip_constants.FlipMetaKey Functions --------- .. autoapisummary:: flip.constants.flip_constants.get_flip_constants Module Contents --------------- .. py:class:: _Common Bases: :py:obj:`pydantic_settings.BaseSettings` Base settings shared by both development and production environments. .. py:attribute:: LOCAL_DEV :type: bool :value: True .. py:attribute:: MIN_CLIENTS :type: pydantic.PositiveInt :value: 1 .. py:class:: DevSettings Bases: :py:obj:`_Common` Development environment configuration. Used when LOCAL_DEV=true. Requires local paths for test data. .. py:attribute:: LOCAL_DEV :type: bool :value: True .. py:attribute:: DEV_DATAFRAME :type: str :value: '' .. py:attribute:: DEV_IMAGES_DIR :type: str :value: '' .. py:class:: ProdSettings Bases: :py:obj:`_Common` Production environment configuration. Used when LOCAL_DEV=false. Settings are grouped by which FL role uses them: - **Server-only** (fl-server on Central Hub): FLIP_API_INTERNAL_URL, INTERNAL_SERVICE_KEY* - **Client-only** (fl-client on trust side): DATA_ACCESS_API_URL, IMAGING_API_URL, TRUST_INTERNAL_SERVICE_KEY* - **Shared**: IMAGES_DIR, NET_ID, UPLOADED_FEDERATED_DATA_BUCKET .. py:attribute:: LOCAL_DEV :type: bool :value: False .. py:attribute:: FLIP_API_INTERNAL_URL :type: pydantic.HttpUrl :value: 'http://localhost:8000' .. py:attribute:: INTERNAL_SERVICE_KEY_HEADER :type: str :value: 'X-Internal-Service-Key' .. py:attribute:: INTERNAL_SERVICE_KEY :type: str :value: '' .. py:attribute:: SERVER_CHECKPOINT_ROOT :type: str :value: '/app/server-checkpoints' .. py:attribute:: DATA_ACCESS_API_URL :type: pydantic.HttpUrl :value: 'http://localhost:8001' .. py:attribute:: IMAGING_API_URL :type: pydantic.HttpUrl :value: 'http://localhost:8002' .. py:attribute:: TRUST_INTERNAL_SERVICE_KEY_HEADER :type: str :value: 'X-Trust-Internal-Service-Key' .. py:attribute:: TRUST_INTERNAL_SERVICE_KEY :type: str :value: '' .. py:attribute:: IMAGES_DIR :type: str :value: '' .. py:attribute:: NET_ID :type: str :value: 'default' .. py:attribute:: UPLOADED_FEDERATED_DATA_BUCKET :type: str :value: 's3://default-bucket' .. py:method:: _validate_s3_url(v: str) -> str :classmethod: .. py:data:: _flip_constants_instance :type: DevSettings | ProdSettings | None :value: None .. py:function:: get_flip_constants() -> DevSettings | ProdSettings Get FlipConstants singleton instance. Lazy initialization ensures environment variables are only required when the instance is actually used, not at import time. .. py:class:: _FlipConstantsProxy Proxy to provide lazy loading via attribute access. .. py:method:: __getattribute__(name: str) -> object .. py:data:: FlipConstants .. py:class:: ResourceType Bases: :py:obj:`enum.StrEnum` Types of imaging resources available in XNAT. .. py:attribute:: DICOM :value: 'DICOM' .. py:attribute:: NIFTI :value: 'NIFTI' .. py:attribute:: SEGMENTATION :value: 'SEG' .. py:attribute:: ALL :value: 'ALL' .. py:class:: FlipTasks Bases: :py:obj:`enum.StrEnum` Task names used in FLIP workflows. .. py:attribute:: INIT_TRAINING :value: 'init_training' .. py:attribute:: POST_VALIDATION :value: 'post_validation' .. py:attribute:: CLEANUP :value: 'cleanup' .. py:attribute:: INIT_TASK :value: 'init_task' .. py:attribute:: POST_TASK :value: 'post_task' .. py:class:: FlipEvents Event names used in FLIP workflows. Note: This is a class with class attributes rather than an Enum because NVFLARE events are string constants. .. py:attribute:: TRAINING_INITIATED :value: '_training_initiated' .. py:attribute:: RESULTS_UPLOAD_STARTED :value: '_results_upload_started' .. py:attribute:: RESULTS_UPLOAD_COMPLETED :value: '_results_upload_completed' .. py:attribute:: SEND_RESULT :value: '_send_result' .. py:attribute:: LOG_EXCEPTION :value: '_log_exception' .. py:attribute:: ABORTED :value: '_aborted' .. py:attribute:: TASK_INITIATED :value: '_task_initiated' .. py:class:: FlipProps fl_ctx property names FLIP components use to share round telemetry. Set (sticky, so they survive across NVFLARE contexts) by the FLIP ScatterAndGather controller as client results are accepted; read by ServerEventHandler when relaying ROUND_DONE to the hub as a ROUND_AGGREGATED event. .. py:attribute:: ROUND_RETURNED :value: '_flip_round_returned' .. py:attribute:: ROUND_EXPECTED :value: '_flip_round_expected' .. py:class:: ModelStatus Bases: :py:obj:`enum.StrEnum` Model job status values. .. py:attribute:: PENDING :value: 'PENDING' .. py:attribute:: INITIATED :value: 'INITIATED' .. py:attribute:: PREPARED :value: 'PREPARED' .. py:attribute:: RUNNING :value: 'RUNNING' .. py:attribute:: RESULTS_UPLOADED :value: 'RESULTS_UPLOADED' .. py:attribute:: ERROR :value: 'ERROR' .. py:attribute:: STOPPED :value: 'STOPPED' .. py:attribute:: RESULTS_UPLOAD_FAILED :value: 'RESULTS_UPLOAD_FAILED' .. py:class:: FlipMetricsLabel Bases: :py:obj:`enum.StrEnum` Standard metric labels for FLIP metrics reporting. .. py:attribute:: LOSS_FUNCTION :value: 'LOSS_FUNCTION' .. py:attribute:: DL_RESULT :value: 'DL_RESULT' .. py:attribute:: AVERAGE_SCORE :value: 'AVERAGE_SCORE' .. py:class:: FlipMetaKey Bases: :py:obj:`enum.StrEnum` Metadata keys FLIP components attach to DXO meta. .. py:attribute:: STAGE :value: 'stage' .. py:attribute:: EVAL_MODEL_NAME :value: 'flip_eval_model_name'