22 lines
600 B
Python
22 lines
600 B
Python
|
from datetime import timedelta
|
||
|
from typing import Optional
|
||
|
|
||
|
import humanize
|
||
|
|
||
|
|
||
|
def get_readable_duration(duration: int, locale: Optional[str] = None) -> str:
|
||
|
"""
|
||
|
Return readable and localized duration from duration in seconds
|
||
|
"""
|
||
|
if locale is None:
|
||
|
locale = 'en'
|
||
|
if locale != 'en':
|
||
|
try:
|
||
|
_t = humanize.i18n.activate(locale) # noqa
|
||
|
except FileNotFoundError:
|
||
|
locale = 'en'
|
||
|
readable_duration = humanize.naturaldelta(timedelta(seconds=duration))
|
||
|
if locale != 'en':
|
||
|
humanize.i18n.deactivate()
|
||
|
return readable_duration
|