@ -15,7 +15,7 @@ def check_env() -> bool:
Returns :
Returns :
bool : Whether or not everything was put in properly
bool : Whether or not everything was put in properly
"""
"""
if not os . path . exists ( " .env.template " ) :
if not os . path . exists ( " .env.template " ) :
console . print ( " [red]Couldn ' t find .env.template. Unable to check variables. " )
console . print ( " [red]Couldn ' t find .env.template. Unable to check variables. " )
return True
return True
@ -35,7 +35,11 @@ def check_env() -> bool:
req_envs = [ ]
req_envs = [ ]
var_optional = False
var_optional = False
for line in template . readlines ( ) :
for line in template . readlines ( ) :
if line . startswith ( " # " ) is not True and " = " in line and var_optional is not True :
if (
line . startswith ( " # " ) is not True
and " = " in line
and var_optional is not True
) :
req_envs . append ( line . split ( " = " ) [ 0 ] )
req_envs . append ( line . split ( " = " ) [ 0 ] )
if " # " in line :
if " # " in line :
examples [ line . split ( " = " ) [ 0 ] ] = " # " . join ( line . split ( " # " ) [ 1 : ] ) . strip ( )
examples [ line . split ( " = " ) [ 0 ] ] = " # " . join ( line . split ( " # " ) [ 1 : ] ) . strip ( )
@ -56,7 +60,9 @@ def check_env() -> bool:
)
)
var_optional = False
var_optional = False
elif line . startswith ( " #MATCH_TYPE " ) :
elif line . startswith ( " #MATCH_TYPE " ) :
types [ req_envs [ - 1 ] ] = eval ( line . removeprefix ( " #MATCH_TYPE " ) [ : - 1 ] . split ( ) [ 0 ] )
types [ req_envs [ - 1 ] ] = eval (
line . removeprefix ( " #MATCH_TYPE " ) [ : - 1 ] . split ( ) [ 0 ]
)
var_optional = False
var_optional = False
elif line . startswith ( " #EXPLANATION " ) :
elif line . startswith ( " #EXPLANATION " ) :
explanations [ req_envs [ - 1 ] ] = line . removeprefix ( " #EXPLANATION " ) [ : - 1 ]
explanations [ req_envs [ - 1 ] ] = line . removeprefix ( " #EXPLANATION " ) [ : - 1 ]
@ -82,9 +88,9 @@ def check_env() -> bool:
try :
try :
temp = types [ env ] ( value )
temp = types [ env ] ( value )
if env in bounds . keys ( ) :
if env in bounds . keys ( ) :
( bounds [ env ] [ 0 ] < = temp or incorrect . add ( env ) ) and len ( bounds [ env ] ) > 1 and (
( bounds [ env ] [ 0 ] < = temp or incorrect . add ( env ) ) and len (
bounds [ env ] [ 1 ] > = temp or incorrect . add ( env )
bounds [ env ]
)
) > 1 and ( bounds [ env ] [ 1 ] > = temp or incorrect . add ( env ) )
except ValueError :
except ValueError :
incorrect . add ( env )
incorrect . add ( env )
@ -107,11 +113,17 @@ def check_env() -> bool:
for env in missing :
for env in missing :
table . add_row (
table . add_row (
env ,
env ,
explanations [ env ] if env in explanations . keys ( ) else " No explanation given " ,
explanations [ env ]
if env in explanations . keys ( )
else " No explanation given " ,
examples [ env ] if env in examples . keys ( ) else " " ,
examples [ env ] if env in examples . keys ( ) else " " ,
str ( bounds [ env ] [ 0 ] ) if env in bounds . keys ( ) and bounds [ env ] [ 1 ] is not None else " " ,
str ( bounds [ env ] [ 0 ] )
if env in bounds . keys ( ) and bounds [ env ] [ 1 ] is not None
else " " ,
str ( bounds [ env ] [ 1 ] )
str ( bounds [ env ] [ 1 ] )
if env in bounds . keys ( ) and len ( bounds [ env ] ) > 1 and bounds [ env ] [ 1 ] is not None
if env in bounds . keys ( )
and len ( bounds [ env ] ) > 1
and bounds [ env ] [ 1 ] is not None
else " " ,
else " " ,
)
)
console . print ( table )
console . print ( table )
@ -128,7 +140,9 @@ def check_env() -> bool:
title_style = " #C0CAF5 bold " ,
title_style = " #C0CAF5 bold " ,
)
)
table . add_column ( " Variable " , justify = " left " , style = " #7AA2F7 bold " , no_wrap = True )
table . add_column ( " Variable " , justify = " left " , style = " #7AA2F7 bold " , no_wrap = True )
table . add_column ( " Current value " , justify = " left " , style = " #F7768E " , no_wrap = False )
table . add_column (
" Current value " , justify = " left " , style = " #F7768E " , no_wrap = False
)
table . add_column ( " Explanation " , justify = " left " , style = " #BB9AF7 " , no_wrap = False )
table . add_column ( " Explanation " , justify = " left " , style = " #BB9AF7 " , no_wrap = False )
table . add_column ( " Example " , justify = " center " , style = " #F7768E " , no_wrap = True )
table . add_column ( " Example " , justify = " center " , style = " #F7768E " , no_wrap = True )
table . add_column ( " Min " , justify = " right " , style = " #F7768E " , no_wrap = True )
table . add_column ( " Min " , justify = " right " , style = " #F7768E " , no_wrap = True )
@ -137,10 +151,14 @@ def check_env() -> bool:
table . add_row (
table . add_row (
env ,
env ,
os . getenv ( env ) ,
os . getenv ( env ) ,
explanations [ env ] if env in explanations . keys ( ) else " No explanation given " ,
explanations [ env ]
if env in explanations . keys ( )
else " No explanation given " ,
str ( types [ env ] . __name__ ) if env in types . keys ( ) else " str " ,
str ( types [ env ] . __name__ ) if env in types . keys ( ) else " str " ,
str ( bounds [ env ] [ 0 ] ) if env in bounds . keys ( ) else " None " ,
str ( bounds [ env ] [ 0 ] ) if env in bounds . keys ( ) else " None " ,
str ( bounds [ env ] [ 1 ] ) if env in bounds . keys ( ) and len ( bounds [ env ] ) > 1 else " None " ,
str ( bounds [ env ] [ 1 ] )
if env in bounds . keys ( ) and len ( bounds [ env ] ) > 1
else " None " ,
)
)
missing . add ( env )
missing . add ( env )
console . print ( table )
console . print ( table )
@ -177,11 +195,17 @@ def check_env() -> bool:
if env in explanations . keys ( )
if env in explanations . keys ( )
else " Incorrect input. Try again. " ,
else " Incorrect input. Try again. " ,
bounds [ env ] [ 0 ] if env in bounds . keys ( ) else None ,
bounds [ env ] [ 0 ] if env in bounds . keys ( ) else None ,
bounds [ env ] [ 1 ] if env in bounds . keys ( ) and len ( bounds [ env ] ) > 1 else None ,
bounds [ env ] [ 1 ]
oob_errors [ env ] if env in oob_errors . keys ( ) else " Input too long/short. " ,
if env in bounds . keys ( ) and len ( bounds [ env ] ) > 1
else None ,
oob_errors [ env ]
if env in oob_errors . keys ( )
else " Input too long/short. " ,
extra_info = " [#C0CAF5 bold]⮶ "
extra_info = " [#C0CAF5 bold]⮶ "
+ (
+ (
explanations [ env ] if env in explanations . keys ( ) else " No info available "
explanations [ env ]
if env in explanations . keys ( )
else " No info available "
) ,
) ,
)
)
)
)