Skip to content

Commit

Permalink
fixed bug with .env file and settings requirements
Browse files Browse the repository at this point in the history
  • Loading branch information
uberfastman committed Sep 29, 2024
1 parent 629f287 commit b942bb8
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
**.pytest_cache

# environment
.env*
*.env*
env*
.venv
venv
Expand Down
2 changes: 1 addition & 1 deletion compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
services:

app:
image: ghcr.io/uberfastman/fantasy-football-metrics-weekly-report:18.1.0
image: ghcr.io/uberfastman/fantasy-football-metrics-weekly-report:18.1.1
platform: linux/amd64
ports:
- "5001:5000"
Expand Down
37 changes: 20 additions & 17 deletions utilities/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,23 @@ class CustomSettingsSource(EnvSettingsSource):
@classmethod
def convert_env_field_value_to_settings(cls, field_key: str, field_value: Any) -> Any:

if field_key.endswith("_int"):
settings_field_value = int(field_value)
elif field_key.endswith("_bool"):
settings_field_value = str(field_value).lower() == "true"
elif field_key.endswith("_list"):
settings_field_value = field_value.split(",") if field_value else []
elif field_key.endswith("_json"):
settings_field_value = json.loads(field_value) if field_value else {}
elif field_key.endswith("_path"):
settings_field_value = Path(field_value) if field_value else None
elif isinstance(field_value, str):
settings_field_value = field_value or None
if isinstance(field_value, str): # check if incoming field value is coming from a .env file or not
if field_key.endswith("_int"):
settings_field_value = int(field_value)
elif field_key.endswith("_bool"):
settings_field_value = str(field_value).lower() == "true"
elif field_key.endswith("_list"):
settings_field_value = field_value.split(",") if field_value else []
elif field_key.endswith("_json"):
settings_field_value = json.loads(field_value) if field_value else {}
elif field_key.endswith("_path"):
settings_field_value = Path(field_value) if field_value else None
elif isinstance(field_value, str):
settings_field_value = field_value or None
else:
settings_field_value = json.loads(field_value)
else:
settings_field_value = json.loads(field_value)
settings_field_value = field_value

return settings_field_value

Expand Down Expand Up @@ -175,10 +178,10 @@ def replace_field_values_with_default(self):

class PlatformSettings(CustomSettings):
# yahoo
yahoo_consumer_key: str = Field(None, title=__qualname__)
yahoo_consumer_secret: str = Field(None, title=__qualname__)
yahoo_consumer_key: Optional[str] = Field(None, title=__qualname__)
yahoo_consumer_secret: Optional[str] = Field(None, title=__qualname__)
yahoo_access_token_json: Optional[Dict[str, Any]] = Field(None, title=__qualname__)
yahoo_game_id: Union[str, int] = Field(
yahoo_game_id: Optional[Union[str, int]] = Field(
"nfl",
title=__qualname__,
description=(
Expand All @@ -187,7 +190,7 @@ class PlatformSettings(CustomSettings):
"(2018 NFL season), or 390 (2019 nfl season)"
)
)
yahoo_initial_faab_budget: int = Field(
yahoo_initial_faab_budget: Optional[int] = Field(
100,
title=__qualname__,
description="YAHOO LEAGUES ONLY: default FAAB since the initial/starting FAAB is not exposed in the API"
Expand Down

0 comments on commit b942bb8

Please sign in to comment.