meringue.core.utils ¤
format_date_from_to ¤
Method to display date period.
Possible output formats depending on the input data:
DD.MM.YYYY - DD.MM.YYYY
DD.MM - DD.MM.YYYY
DD - DD.MM.YYYY
DD.MM.YYYY
Examples:
Attributes:
-
date_start
–Period start date.
-
date_end
–Period end date.
-
delimiter
–Dates delimiter.
Returns:
-
str
–Date period string.
Source code in meringue/core/utils/datetime.py
def format_date_from_to(
date_start: dt.date,
date_end: dt.date,
delimiter: str = "-",
) -> str:
"""
Method to display date period.
Possible output formats depending on the input data:
* `DD.MM.YYYY - DD.MM.YYYY`
* `DD.MM - DD.MM.YYYY`
* `DD - DD.MM.YYYY`
* `DD.MM.YYYY`
Examples:
```pycon
>>> print(format_date_from_to(dt.date(2020, 1, 1), dt.date(2020, 2, 1)))
01.01 - 01.02.2020
```
Attributes:
date_start: Period start date.
date_end: Period end date.
delimiter: Dates delimiter.
Returns:
Date period string.
"""
if date_start.year != date_end.year:
return f"{date_start:%d.%m.%Y} {delimiter} {date_end:%d.%m.%Y}"
if date_start.month != date_end.month:
return f"{date_start:%d.%m} {delimiter} {date_end:%d.%m.%Y}"
if date_start.day != date_end.day:
return f"{date_start:%d} {delimiter} {date_end:%d.%m.%Y}"
return f"{date_end:%d.%m.%Y}"
get_link ¤
Method for getting a link.
Attributes:
-
url_name
–The url name
-
absolute
–Flag to make URL absolute or relative
-
kwargs
–Url parameters
Raises:
-
Exception
–FRONTEND_URLS parameter is empty
-
Exception
–The passed link is not specified in the FRONTEND_URLS parameter
-
Exception
–FRONTEND_DOMAIN parameter not specified
Returns:
-
str
–link to the front.
Source code in meringue/core/utils/frontend.py
def get_link(
url_name: str,
absolute: bool | None = True,
**kwargs,
) -> str:
"""
Method for getting a link.
Attributes:
url_name: The url name
absolute: Flag to make URL absolute or relative
kwargs: Url parameters
Raises:
Exception: FRONTEND_URLS parameter is empty
Exception: The passed link is not specified in the FRONTEND_URLS parameter
Exception: FRONTEND_DOMAIN parameter not specified
Returns:
link to the front.
"""
if m_settings.FRONTEND_URLS is None:
msg = "FRONTEND_URLS parameter is empty"
raise Exception(msg)
if url_name not in m_settings.FRONTEND_URLS:
msg = f"The passed link `{url_name}` is not specified in the FRONTEND_URLS parameter"
raise Exception(msg)
url = m_settings.FRONTEND_URLS[url_name]
url = url(**kwargs) if callable(url) else url.format(**kwargs)
if absolute:
if m_settings.FRONTEND_DOMAIN is None:
msg = "FRONTEND_DOMAIN option not set"
raise Exception(msg)
url = urljoin(m_settings.FRONTEND_DOMAIN, url)
return url