rename policy -> tzpolicy
This commit is contained in:
parent
62dd6712f3
commit
bec52724e4
1 changed files with 7 additions and 4 deletions
|
@ -10,24 +10,27 @@ Depending on the specific data provider and your level of paranoia you might exp
|
|||
- it's safer when either all of your objects are tz aware or all are tz unware, not a mixture
|
||||
- you might trust your original timezone, or it might just be UTC, and you want to use something more reasonable
|
||||
'''
|
||||
Policy = Literal[
|
||||
TzPolicy = Literal[
|
||||
'keep' , # if datetime is tz aware, just preserve it
|
||||
'convert', # if datetime is tz aware, convert to provider's tz
|
||||
'throw' , # if datetime is tz aware, throw exception
|
||||
# todo 'warn'? not sure if very useful
|
||||
]
|
||||
|
||||
def default_policy() -> Policy:
|
||||
# backwards compatibility
|
||||
Policy = TzPolicy
|
||||
|
||||
def default_policy() -> TzPolicy:
|
||||
try:
|
||||
from my.config import time as user_config
|
||||
return cast(Policy, user_config.tz.policy)
|
||||
return cast(TzPolicy, user_config.tz.policy)
|
||||
except Exception as e:
|
||||
# todo meh.. need to think how to do this more carefully
|
||||
# rationale: do not mess with user's data unless they want
|
||||
return 'keep'
|
||||
|
||||
|
||||
def localize_with_policy(lfun: Callable[[datetime], tzdatetime], dt: datetime, policy: Policy=default_policy()) -> tzdatetime:
|
||||
def localize_with_policy(lfun: Callable[[datetime], tzdatetime], dt: datetime, policy: TzPolicy=default_policy()) -> tzdatetime:
|
||||
tz = dt.tzinfo
|
||||
if tz is None:
|
||||
return lfun(dt)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue