-
Notifications
You must be signed in to change notification settings - Fork 263
Expand file tree
/
Copy pathconfig.py
More file actions
134 lines (111 loc) · 5.45 KB
/
config.py
File metadata and controls
134 lines (111 loc) · 5.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Copyright (c) MONAI Consortium
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
from distutils.util import strtobool
from importlib.metadata import distributions
from typing import Any, Dict, List, Optional
from pydantic import AnyHttpUrl
from pydantic_settings import BaseSettings, SettingsConfigDict
def is_package_installed(name):
return name in (x.metadata.get("Name") for x in distributions() if x.metadata is not None)
class Settings(BaseSettings):
MONAI_LABEL_API_STR: str = ""
MONAI_LABEL_PROJECT_NAME: str = "MONAILabel"
MONAI_LABEL_APP_DIR: str = ""
MONAI_LABEL_STUDIES: str = ""
MONAI_LABEL_APP_CONF: Dict[str, Any] = {}
MONAI_LABEL_AUTH_ENABLE: bool = False
MONAI_LABEL_AUTH_REALM_URI: str = "http://localhost:8080/realms/monailabel"
MONAI_LABEL_AUTH_TIMEOUT: int = 10
MONAI_LABEL_AUTH_TOKEN_USERNAME: str = "preferred_username"
MONAI_LABEL_AUTH_TOKEN_EMAIL: str = "email"
MONAI_LABEL_AUTH_TOKEN_NAME: str = "name"
MONAI_LABEL_AUTH_TOKEN_ROLES: str = "realm_access#roles"
MONAI_LABEL_AUTH_CLIENT_ID: str = "monailabel-app"
MONAI_LABEL_AUTH_ROLE_ADMIN: str = "monailabel-admin"
MONAI_LABEL_AUTH_ROLE_REVIEWER: str = "monailabel-reviewer"
MONAI_LABEL_AUTH_ROLE_ANNOTATOR: str = "monailabel-annotator"
MONAI_LABEL_AUTH_ROLE_USER: str = "monailabel-user"
MONAI_LABEL_TASKS_TRAIN: bool = True
MONAI_LABEL_TASKS_STRATEGY: bool = True
MONAI_LABEL_TASKS_SCORING: bool = True
MONAI_LABEL_TASKS_BATCH_INFER: bool = True
MONAI_LABEL_DATASTORE: str = ""
MONAI_LABEL_DATASTORE_URL: str = ""
MONAI_LABEL_DATASTORE_USERNAME: str = ""
MONAI_LABEL_DATASTORE_PASSWORD: str = ""
MONAI_LABEL_DATASTORE_API_KEY: str = ""
MONAI_LABEL_DATASTORE_CACHE_PATH: str = ""
MONAI_LABEL_DATASTORE_PROJECT: str = ""
MONAI_LABEL_DATASTORE_ASSET_PATH: str = ""
MONAI_LABEL_DATASTORE_DSA_ANNOTATION_GROUPS: str = ""
MONAI_LABEL_DICOMWEB_USERNAME: str = "" # will be deprecated; use MONAI_LABEL_DATASTORE_USERNAME
MONAI_LABEL_DICOMWEB_PASSWORD: str = "" # will be deprecated; use MONAI_LABEL_DATASTORE_PASSWORD
MONAI_LABEL_DICOMWEB_CACHE_PATH: str = "" # will be deprecated; use MONAI_LABEL_DATASTORE_CACHE_PATH
MONAI_LABEL_QIDO_PREFIX: Optional[str] = None
MONAI_LABEL_WADO_PREFIX: Optional[str] = None
MONAI_LABEL_STOW_PREFIX: Optional[str] = None
MONAI_LABEL_DICOMWEB_FETCH_BY_FRAME: bool = False
MONAI_LABEL_DICOMWEB_CONVERT_TO_NIFTI: bool = True
MONAI_LABEL_DICOMWEB_SEARCH_FILTER: Dict[str, Any] = {"Modality": "CT"}
MONAI_LABEL_DICOMWEB_CACHE_EXPIRY: int = 7200
MONAI_LABEL_DICOMWEB_PROXY_TIMEOUT: float = 30.0
MONAI_LABEL_DICOMWEB_READ_TIMEOUT: float = 5.0
MONAI_LABEL_DATASTORE_AUTO_RELOAD: bool = True
MONAI_LABEL_DATASTORE_READ_ONLY: bool = False
MONAI_LABEL_DATASTORE_FILE_EXT: List[str] = [
"*.nii.gz",
"*.nii",
"*.nrrd",
"*.jpg",
"*.png",
"*.tif",
"*.svs",
"*.xml",
]
MONAI_LABEL_SERVER_PORT: int = 8000
MONAI_LABEL_CORS_ORIGINS: List[AnyHttpUrl] = []
MONAI_LABEL_AUTO_UPDATE_SCORING: bool = True
MONAI_LABEL_SESSIONS: bool = True
MONAI_LABEL_SESSION_PATH: str = ""
MONAI_LABEL_SESSION_EXPIRY: int = 3600
MONAI_LABEL_INFER_CONCURRENCY: int = -1
MONAI_LABEL_INFER_TIMEOUT: int = 600
MONAI_LABEL_TRACKING_ENABLED: bool = True
MONAI_LABEL_TRACKING_URI: str = ""
MONAI_ZOO_SOURCE: str = os.environ.get("BUNDLE_DOWNLOAD_SRC", "monaihosting")
MONAI_ZOO_REPO: str = "Project-MONAI/model-zoo/hosting_storage_v1"
MONAI_ZOO_AUTH_TOKEN: str = ""
# Refer: https://github.com/facebookresearch/sam2?tab=readme-ov-file#model-description
# Refer: https://huggingface.co/facebook/sam2-hiera-large
MONAI_SAM_MODEL_PT: str = (
"https://huggingface.co/facebook/sam2.1-hiera-large/resolve/main/sam2.1_hiera_large.pt"
if is_package_installed("SAM-2")
else "https://huggingface.co/facebook/sam2-hiera-large/resolve/main/sam2_hiera_large.pt"
)
MONAI_SAM_MODEL_CFG: str = (
"https://huggingface.co/facebook/sam2.1-hiera-large/resolve/main/sam2.1_hiera_l.yaml"
if is_package_installed("SAM-2")
else "https://huggingface.co/facebook/sam2-hiera-large/resolve/main/sam2_hiera_l.yaml"
)
MONAI_LABEL_USE_ITK_FOR_DICOM_SEG: bool = bool(
strtobool(os.environ.get("MONAI_LABEL_USE_ITK_FOR_DICOM_SEG", "True"))
)
model_config = SettingsConfigDict(
env_file=".env",
case_sensitive=True,
extra="ignore",
)
settings = Settings()
RBAC_ADMIN = f"|RBAC: {settings.MONAI_LABEL_AUTH_ROLE_ADMIN}| - " if settings.MONAI_LABEL_AUTH_ENABLE else ""
RBAC_REVIEWER = f"|RBAC: {settings.MONAI_LABEL_AUTH_ROLE_REVIEWER}| - " if settings.MONAI_LABEL_AUTH_ENABLE else ""
RBAC_ANNOTATOR = f"|RBAC: {settings.MONAI_LABEL_AUTH_ROLE_ANNOTATOR}| - " if settings.MONAI_LABEL_AUTH_ENABLE else ""
RBAC_USER = f"|RBAC: {settings.MONAI_LABEL_AUTH_ROLE_USER}| - " if settings.MONAI_LABEL_AUTH_ENABLE else ""