Files
gw-svelte/mail-api/mail_api/__pycache__/config.cpython-314.pyc
T

102 lines
16 KiB
Plaintext
Raw Normal View History

2026-05-19 23:36:58 +12:00
+
2026-06-17 21:51:29 +12:00
ñ¡1jð3ãóð Rt^RIHt^RIt^RIt^RIt^RIt^RIt^RIH t ^RI
H t ^RI t RRlt
]
2026-05-19 23:36:58 +12:00
!4t]PP!RR4P#4P%4RG9tR R
R R /tR
Rlt] !RR7!RR44tRRlt]!4t]P2] n]PP!RR4t]!^<]!]PP!RR444t]!R]!]PP!R]!RH4444t ^t!^t"]!^]!]PP!RR444t#]!^<]!]PP!RR444t$]!^<]!]PP!RR444t%]!R]!]PP!R ]!RI4444t&]!^]!]PP!R!R"444t'R#R$lt(](!R%R&4t)](!R'R(4t*]!RJ]!]PP!R)4;'g ]!RK4P#4;'g ]!RK444t+] !]PP!R*R+44t,],R,, t-],R-, t.],R., t/],R/, t0] !]PP!R0R144t1R2t2]PP!R34;'gRP#4t3]PP!R44;'gRP#4t4]PP!R54;'gRP#4t5]PP!R64;'gRP#4PmR74t7]PP!R84;'gR9P#4t8]PP!R:R4t9]PP!R;4;'gR<P#4t:]!^]!]PP!R=R>444t;]<!]3;'d]4;'d
]5;'d]74t=]P|t?]@!]P4tB]P†tD]tF]tH]PtJ]PtL]tN]tP]tR]tT]tV]tX]tZ]t\]D'd]DP%4R?8wd]DMRt]]PP!R@4;'gRP#4t^]P¿RA]]PP!RBRC4]H]J]?]`!]B4]D]F]L]N]P]R]T]V]X]Z]\4]P¿RD]='d RE4R#RF4R#)LaRuntime configuration for the mail API.
Loads environment variables once at import time, validates required values,
and exposes a frozen :class:`Settings` dataclass plus module-level constants
for compatibility with code that still imports the legacy names.
)Ú annotationsN)Ú dataclass)ÚPathcóV^8„dQhRR/#)éÚreturnzlogging.Logger©)Úformatsmail_api/config.pyÚ __annotate__r s÷ñócód\\PPRR44pVP RRR7VR, p\
P !RRR7p\
P!4pVP\
P4\VP4FpVPV4K \
P!\P4pVP\
2026-06-17 21:51:29 +12:00
P 4VP#V4VP%V4\
2026-05-19 23:36:58 +12:00
PP'VR^R R
2026-06-17 21:51:29 +12:00
7pVP\
2026-05-19 23:36:58 +12:00
P4VP#V4VP%V4\
P!R 4pVP)R V4V#)
ÚLOG_DIRÚlogsT)ÚparentsÚexist_okz mail-api.logz1%(asctime)s %(levelname)-8s %(name)s: %(message)sz%d/%m/%Y %H:%M:%S %Z)Údatefmti€„zutf-8)ÚmaxBytesÚ backupCountÚencodingzmail-apiz>Logging initialised -> console=INFO, file=%s (DEBUG, rotating))rÚosÚenvironÚgetÚmkdirÚloggingÚ FormatterÚ getLoggerÚsetLevelÚDEBUGÚlistÚhandlersÚ
removeHandlerÚ
StreamHandlerÚsysÚstdoutÚINFOÚ setFormatterÚ
addHandlerÚRotatingFileHandlerÚinfo)Úlog_dirÚlog_fileÚfmtÚrootÚhandlerÚconsoleÚrotatingÚlogs r
Ú
2026-06-17 21:51:29 +12:00
setup_loggingr2sDÜ”2—::—>> )¨VÓ5€GØ ‡MM˜€MÔ˜Õ'€Hä
2026-05-19 23:36:58 +12:00
×
Ò
Ø €Cô
× Ò Ó €D؇MM”'—-‘-Ô Ü˜Ÿ
ÖØ ×ј×#¤C§J¡JÓ/€GØ ×Ñ”W—\‘\Ô ×Ñ˜ÔØ‡OOä×Ñט9°!¸gð€Hð
×Ñ”g—m‘mÔ ×ј#ÔØ‡OOä
×
Ò
˜
'€C؇H
MÈxÔ €Jr ÚDEV_MODEÚÚRESEND_API_KEYz(API key from https://resend.com/api-keysÚ OWNER_EMAILz2Email address that receives new lead notificationscó V^8„dQhRRRR/#)rÚvaluesz
str | Nonerz list[str]r)r s"r
r r Ds÷ ñ  :ð °)ñ r có@.p\4pVFpV'gK
\P!RVP44FUpVP4P 4pV'gK+WR9gK3VP V4VP
V4KW K V#)z[;,\s]+)ÚsetÚreÚsplitÚstripÚlowerÚaddÚappend)r8ÚemailsÚseenÚrawÚpartÚ
normalizeds* r
Ú_parse_email_env_listrFDsvØ€FÜ“U€DÛˆßÙ Ü—H’H˜Z¨¯©«Ö5ˆDØŸ×-ˆJ߉z˜jÖ˜Ô
˜jÖð €Mr T)Úfrozencó¸]tRt^Rt$R]R&R]R&R]R&R]R&R]R&R]R&R]R &R
]R &R ]R
&R ]R&R ]R&R ]R&R ]R&R ]R&R ]R&R ]R&RtR#)ÚSettingsÚstrÚresend_api_keyÚ owner_emailútuple[str, ...]Úcp_admin_emailsÚ
from_emailÚreply_toÚ owner_bccÚ
client_bccÚboolÚenable_general_enquiriesÚintÚ max_attemptsÚform_min_secondsÚform_max_secondsÚrate_limit_window_secondsÚrate_limit_max_per_ipÚrate_limit_max_per_emailÚrate_limit_min_interval_secondsÚemail_send_timeout_secondsrN)Ú__name__Ú
__module__Ú __qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__rr r
rIrIRs^àÓØÓØƒO؃M؃N؃OØÓØÓØÓØÓØ!Ø%(Ó(Ø #×#r rIcóV^8„dQhRR/#)rrrIr)r s"r
r r fs÷GñG˜ñGr có
\'Ed\PPRR4P 4P 4p\
R9/R\PPRR4bRVbR\\V\PPR4\PPR444bR \PPR
R 4bR \PPR
R4bRRbRRbRRbR^bR^bRRbRRbR^2bR^2bR^bR^b#\P4UUu.uF/wr\PPV4'dK,W3NK1 pppV'.R:OpVFwrVPRV RV R 24K V.R;O,
pVFwrVPR!V R"24K VPR4R#PV4p\PR$VUUu.uFwruVNK upp4\V\ P"R%7\ P$!^4\PR,P 4P 4p\
R9/R\PR,bRVbR\\V\PPR4\PPR444bR \PPR
R 4bR \PPR
R4bR\PPR&R'4P 4bR\PPR(R4P 4bR\PPR)R*4P 4P 4R<9bR\'^\)\PPR+R,444bR\'^\)\PPR-R.444bR\'^<\)\PPR/R0444bR\'^<\)\PPR1R2444bR\'^\)\PPR3R4444bR\'^\)\PPR5R,444bR\'^\)\PPR6R7444bR\'^\)\PPR8R7444b#uuppiuuppi)=r6z
dev@localhostrKr5ÚdevrLrNÚSECONDARY_CP_EMAILÚSECONDARY_CP_EMAILSrOÚ
FROM_EMAILzGoodWalk <info@goodwalk.co.nz>rPÚREPLY_TOzinfo@goodwalk.co.nzrQr4rRrTFrVrWrXi rYi„rZr[r\r]u • z)z $env:z = "..."Ú
z%Startup aborted: missing env vars: %s)ÚfileÚ OWNER_BCCúexample@example.comÚ
CLIENT_BCCÚENABLE_GENERAL_ENQUIRIESÚfalseÚMAIL_MAX_ATTEMPTSÚFORM_MIN_SECONDSÚFORM_MAX_SECONDSÚ7200ÚRATE_LIMIT_WINDOW_SECONDSÚ900ÚRATE_LIMIT_MAX_PER_IPÚRATE_LIMIT_MAX_PER_EMAILÚRATE_LIMIT_MIN_INTERVAL_SECONDSÚ20ÚEMAIL_SEND_TIMEOUT_SECONDSr)r4uEMail API cannot start — required environment variables are not set:r4)r4zASet them in your shell and try again. For example, in PowerShell:r4>ÚonÚyesÚtrueÚenabled)r3rrrr=r>rIÚtuplerFÚ REQUIRED_ENVÚitemsr@ÚjoinÚloggerÚcriticalÚprintr#ÚstderrÚexitÚmaxrU)rLÚnameÚhintÚmissingÚlinesÚmessageÚns r
Ú_load_settingsr—fß„xÜ—j‘j—n‘n ]°OÓ Üò
ÜŸ:™:Ÿ>™>Ð*:¸
á
ô"Ô"7ØÜ
Ð
Ð#ôð
ô—zz—~~ lÐ4TÔ
2026-06-17 21:51:29 +12:00
ô—ZZ—^^ JÐ0EÔ
ñð
2026-05-19 23:36:58 +12:00
ñð
2026-06-17 21:51:29 +12:00
ñ&+ð
ñð
ñð
2026-05-19 23:36:58 +12:00
ñ
ñ '*ð!
ñ"#%ð#
ñ$&(ð%
2026-06-17 21:51:29 +12:00
ñ&-.ð'
ñ((*ð)
ð
2026-05-19 23:36:58 +12:00
ô./;×.@Ñ.@Ô.BÔ_Ñ.B¡
 Ì"Ï*É*Ï.É.ÐY]×J^Œ||Ñ.B€GÑò
ˆó
"‰Jˆ L‰L˜6 $  s¨4¨&°Ð 
ò
2026-06-17 21:51:29 +12:00
õ
ˆó
‰Gˆ L‰L˜7 4 Ð à
Ø—)‘)˜EÓ"ˆÜÐ?ÑPWÔAXÑPWÉÈÃ!ÑPWÒAXÔ
ˆgœCŸJ™JÕ ŠŒ ä—*‘*˜]Õ;€KÜ ò Ü—zzÐ"2Ö áð ôÔ Ü J‰JN‰NÐ J‰JN‰NÐ 
2026-05-19 23:36:58 +12:00
ô ð ô—::—>> ,Ð0PÔ ô 
2026-06-17 21:51:29 +12:00
Ð,AÔ ô—*‘*—.‘. Ð.CÓ ô—::—>> Ó3× ô"$§¡§¡Ð0JÈGÓ!T×!ZÑ!ZÓ!\×!bÑ!bÓ!dØ"5ð ô˜œC¤§
¡