FitRequest Variables (FitVar)#
fitrequest simplifies managing configuration values by using the FitVar type for some variables.
These variables can have their values sourced from one or more of the following, with priority as outlined below:
Provided Initialization Value: Explicitly set when creating the variable.
System Environment Variables: Pulled from the system’s environment.
AWS: Retrieved from AWS Secrets Manager or Parameter Store.
Key Features:
fitrequest provides built-in support for
base_urland mostAuthattributes asFitVarvariables.The
ValidFitVartype acts as an alias forFitVar | str | None, adding validation to allow seamless transformation of string declarations intoFitVarobjects.
Here are some examples demonstrating different ways to define base_url using FitVar:
Note
In the examples below, we use the Pydantic syntax for typing clarity. However, you can use any of the other available formats.
Simple Initialization#
from fitrequest.fit_config import FitConfig
from fitrequest.fit_var import ValidFitVar
class RestApiClient(FitConfig):
client_name: str = 'rest_api'
base_url: ValidFitVar = 'https://test.skillcorner.fr'
This is equivalent to:
from fitrequest.fit_config import FitConfig
from fitrequest.fit_var import FitVar
class RestApiClient(FitConfig):
client_name: str = 'rest_api'
base_url: ValidFitVar = FitVar(init_value='https://test.skillcorner.fr')
Value from AWS#
from fitrequest.fit_config import FitConfig
from fitrequest.fit_var import FitVar
class RestApiClient(FitConfig):
client_name: str = 'rest_api'
base_url: ValidFitVar = FitVar(aws_path="awesome/path/to/variable")
Value from System Environment Variables#
from fitrequest.fit_config import FitConfig
from fitrequest.fit_var import FitVar
class RestApiClient(FitConfig):
client_name: str = 'rest_api'
base_url: ValidFitVar = FitVar(env_name="REST_API_AWESOME_CLIENT_BASE_URL")
Multiple Sources with Fallback Priority#
from fitrequest.fit_config import FitConfig
from fitrequest.fit_var import FitVar
class RestApiClient(FitConfig):
client_name: str = 'rest_api'
base_url: ValidFitVar = FitVar(
aws_path="awesome/path/to/variable",
init_value=some_variable_that_can_be_none,
env_name="REST_API_AWESOME_CLIENT_BASE_URL"
)
As stated above, the init value will be used first.
If it’s None, the provided environment variable will be used. Otherwise, the AWS value will be retrieved.