.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
searx.settings_defaults.SettingsValue Class Reference
Inheritance diagram for searx.settings_defaults.SettingsValue:

Public Member Functions

 __init__ (self, TypeDefinitionArg type_definition_arg, t.Any default=None, str|None environ_name=None)
 type_definition_repr (self)
None check_type_definition (self, t.Any value)
t.Any __call__ (self, t.Any value)

Public Attributes

tuple type_definition
t.Any default = default
str|None environ_name = environ_name
 type_definition_repr

Detailed Description

Check and update a setting value

Definition at line 62 of file settings_defaults.py.

Constructor & Destructor Documentation

◆ __init__()

searx.settings_defaults.SettingsValue.__init__ ( self,
TypeDefinitionArg type_definition_arg,
t.Any default = None,
str | None environ_name = None )

Definition at line 65 of file settings_defaults.py.

70 ):
71 self.type_definition: TypeDefinition = (
72 type_definition_arg if isinstance(type_definition_arg, tuple) else (type_definition_arg,)
73 )
74 self.default: t.Any = default
75 self.environ_name: str | None = environ_name
76

Member Function Documentation

◆ __call__()

t.Any searx.settings_defaults.SettingsValue.__call__ ( self,
t.Any value )

Definition at line 89 of file settings_defaults.py.

89 def __call__(self, value: t.Any) -> t.Any:
90 if value == _UNDEFINED:
91 value = self.default
92 # override existing value with environ
93 if self.environ_name and self.environ_name in os.environ:
94 value = os.environ[self.environ_name]
95 if self.type_definition == (bool,):
96 value = STR_TO_BOOL[value.lower()]
97
98 self.check_type_definition(value)
99 return value
100
101

References check_type_definition(), default, environ_name, and type_definition.

Here is the call graph for this function:

◆ check_type_definition()

None searx.settings_defaults.SettingsValue.check_type_definition ( self,
t.Any value )

Reimplemented in searx.settings_defaults.SettingsDirectoryValue, and searx.settings_defaults.SettingSublistValue.

Definition at line 82 of file settings_defaults.py.

82 def check_type_definition(self, value: t.Any) -> None:
83 if value in self.type_definition:
84 return
85 type_list = tuple(t for t in self.type_definition if isinstance(t, type))
86 if not isinstance(value, type_list):
87 raise ValueError('The value has to be one of these types/values: {}'.format(self.type_definition_repr))
88

References type_definition.

Referenced by __call__().

Here is the caller graph for this function:

◆ type_definition_repr()

searx.settings_defaults.SettingsValue.type_definition_repr ( self)

Definition at line 78 of file settings_defaults.py.

78 def type_definition_repr(self):
79 types_str = [td.__name__ if isinstance(td, type) else repr(td) for td in self.type_definition]
80 return ', '.join(types_str)
81

References type_definition.

Member Data Documentation

◆ default

t.Any searx.settings_defaults.SettingsValue.default = default

◆ environ_name

str | None searx.settings_defaults.SettingsValue.environ_name = environ_name

Definition at line 75 of file settings_defaults.py.

Referenced by __call__().

◆ type_definition

tuple searx.settings_defaults.SettingsValue.type_definition
Initial value:
= (
type_definition_arg if isinstance(type_definition_arg, tuple) else (type_definition_arg,)
)

Definition at line 71 of file settings_defaults.py.

Referenced by __call__(), searx.settings_defaults.SettingSublistValue.check_type_definition(), check_type_definition(), and type_definition_repr().

◆ type_definition_repr

searx.settings_defaults.SettingsValue.type_definition_repr

Definition at line 87 of file settings_defaults.py.


The documentation for this class was generated from the following file: