2023-10-12 08:17:30 +02:00
from tiramisu import *
from tiramisu . setting import ALLOWED_LEADER_PROPERTIES
ALLOWED_LEADER_PROPERTIES . add ( " basic " )
ALLOWED_LEADER_PROPERTIES . add ( " normal " )
ALLOWED_LEADER_PROPERTIES . add ( " expert " )
2022-10-01 22:27:22 +02:00
from importlib . machinery import SourceFileLoader as _SourceFileLoader
from importlib . util import spec_from_loader as _spec_from_loader , module_from_spec as _module_from_spec
2023-10-12 08:17:30 +02:00
global func
func = { ' calc_value ' : calc_value }
2022-10-01 22:27:22 +02:00
def _load_functions ( path ) :
global _SourceFileLoader , _spec_from_loader , _module_from_spec , func
loader = _SourceFileLoader ( ' func ' , path )
spec = _spec_from_loader ( loader . name , loader )
func_ = _module_from_spec ( spec )
loader . exec_module ( func_ )
for function in dir ( func_ ) :
if function . startswith ( ' _ ' ) :
continue
2023-10-12 08:17:30 +02:00
func [ function ] = getattr ( func_ , function )
2022-10-01 22:27:22 +02:00
_load_functions ( ' tests/dictionaries/../eosfunc/test.py ' )
2023-10-12 08:17:30 +02:00
from jinja2 import StrictUndefined , DictLoader
from jinja2 . sandbox import SandboxedEnvironment
from rougail . annotator . variable import CONVERT_OPTION
from tiramisu . error import ValueWarning
def jinja_to_function ( __internal_jinja , __internal_type , __internal_multi , * * kwargs ) :
global ENV , CONVERT_OPTION
kw = { }
for key , value in kwargs . items ( ) :
if ' . ' in key :
c_kw = kw
path , var = key . rsplit ( ' . ' , 1 )
for subkey in path . split ( ' . ' ) :
c_kw = c_kw . setdefault ( subkey , { } )
c_kw [ var ] = value
else :
kw [ key ] = value
values = ENV . get_template ( __internal_jinja ) . render ( kw , * * func ) . strip ( )
convert = CONVERT_OPTION [ __internal_type ] . get ( ' func ' , str )
if __internal_multi :
return [ convert ( val ) for val in values . split ( ) ]
values = convert ( values )
return values if values != ' ' and values != ' None ' else None
def variable_to_property ( prop , value ) :
return prop if value else None
def jinja_to_property ( prop , * * kwargs ) :
value = func [ ' jinja_to_function ' ] ( * * kwargs )
return func [ ' variable_to_property ' ] ( prop , value is not None )
def jinja_to_property_help ( prop , * * kwargs ) :
value = func [ ' jinja_to_function ' ] ( * * kwargs )
return ( prop , f ' " { prop } " ( { value } ) ' )
def valid_with_jinja ( warnings_only = False , * * kwargs ) :
global ValueWarning
value = func [ ' jinja_to_function ' ] ( * * kwargs )
if value :
if warnings_only :
raise ValueWarning ( value )
else :
raise ValueError ( value )
func [ ' jinja_to_function ' ] = jinja_to_function
func [ ' jinja_to_property ' ] = jinja_to_property
func [ ' jinja_to_property_help ' ] = jinja_to_property_help
func [ ' variable_to_property ' ] = variable_to_property
func [ ' valid_with_jinja ' ] = valid_with_jinja
dict_env = { }
dict_env [ ' disabled_1.rougail.general2.mode_conteneur_actif3 ' ] = " { % i f rougail.general2.mode_conteneur_actif2 == \" oui \" % } \n mode_conteneur_actif2 is oui \n { % e ndif % } \n "
dict_env [ ' disabled_2.rougail.general2.mode_conteneur_actif3 ' ] = " { % i f rougail.general2.mode_conteneur_actif2 == \" oui \" % } \n mode_conteneur_actif2 is oui \n { % e ndif % } \n "
ENV = SandboxedEnvironment ( loader = DictLoader ( dict_env ) , undefined = StrictUndefined )
ENV . filters = func
ENV . compile_templates ( ' jinja_caches ' , zip = None )
option_4 = StrOption ( name = " mode_conteneur_actif " , doc = " No change " , default = " non " , properties = frozenset ( { " force_default_on_freeze " , " frozen " , " hidden " , " mandatory " , " normal " } ) )
optiondescription_3 = OptionDescription ( name = " general " , doc = " general " , children = [ option_4 ] , properties = frozenset ( { " normal " } ) )
option_6 = StrOption ( name = " mode_conteneur_actif2 " , doc = " No change " , default = " non " , properties = frozenset ( { " force_default_on_freeze " , " frozen " , " hidden " , " mandatory " , " normal " } ) )
option_7 = StrOption ( name = " mode_conteneur_actif3 " , doc = " No change " , default = " non " , properties = frozenset ( { " force_default_on_freeze " , " frozen " , " mandatory " , " normal " , Calculation ( func [ ' jinja_to_property ' ] , Params ( ( ParamValue ( " disabled " ) ) , kwargs = { ' __internal_jinja ' : ParamValue ( " disabled_1.rougail.general2.mode_conteneur_actif3 " ) , ' __internal_type ' : ParamValue ( " string " ) , ' __internal_multi ' : ParamValue ( False ) , ' rougail.general2.mode_conteneur_actif2 ' : ParamOption ( option_6 ) } ) , help_function = func [ ' jinja_to_property_help ' ] ) } ) )
optiondescription_5 = OptionDescription ( name = " general2 " , doc = " general2 " , children = [ option_6 , option_7 ] , properties = frozenset ( { " hidden " , " normal " } ) )
optiondescription_2 = OptionDescription ( name = " rougail " , doc = " rougail " , children = [ optiondescription_3 , optiondescription_5 ] , properties = frozenset ( { " normal " } ) )
optiondescription_1 = OptionDescription ( name = " 1 " , doc = " 1 " , children = [ optiondescription_2 ] , properties = frozenset ( { " normal " } ) )
option_11 = StrOption ( name = " mode_conteneur_actif " , doc = " No change " , default = " non " , properties = frozenset ( { " force_default_on_freeze " , " frozen " , " hidden " , " mandatory " , " normal " } ) )
optiondescription_10 = OptionDescription ( name = " general " , doc = " general " , children = [ option_11 ] , properties = frozenset ( { " normal " } ) )
option_13 = StrOption ( name = " mode_conteneur_actif2 " , doc = " No change " , default = " non " , properties = frozenset ( { " force_default_on_freeze " , " frozen " , " hidden " , " mandatory " , " normal " } ) )
option_14 = StrOption ( name = " mode_conteneur_actif3 " , doc = " No change " , default = " non " , properties = frozenset ( { " force_default_on_freeze " , " frozen " , " mandatory " , " normal " , Calculation ( func [ ' jinja_to_property ' ] , Params ( ( ParamValue ( " disabled " ) ) , kwargs = { ' __internal_jinja ' : ParamValue ( " disabled_2.rougail.general2.mode_conteneur_actif3 " ) , ' __internal_type ' : ParamValue ( " string " ) , ' __internal_multi ' : ParamValue ( False ) , ' rougail.general2.mode_conteneur_actif2 ' : ParamOption ( option_13 ) } ) , help_function = func [ ' jinja_to_property_help ' ] ) } ) )
optiondescription_12 = OptionDescription ( name = " general2 " , doc = " general2 " , children = [ option_13 , option_14 ] , properties = frozenset ( { " hidden " , " normal " } ) )
optiondescription_9 = OptionDescription ( name = " rougail " , doc = " rougail " , children = [ optiondescription_10 , optiondescription_12 ] , properties = frozenset ( { " normal " } ) )
optiondescription_8 = OptionDescription ( name = " 2 " , doc = " 2 " , children = [ optiondescription_9 ] , properties = frozenset ( { " normal " } ) )
option_0 = OptionDescription ( name = " baseoption " , doc = " baseoption " , children = [ optiondescription_1 , optiondescription_8 ] )