mirror of
https://github.com/bytedream/aion.git
synced 2025-06-27 15:00:32 +02:00
Add files via upload
This commit is contained in:
200
aion-0.1.0_alpha/aion_core/variable.py
Normal file
200
aion-0.1.0_alpha/aion_core/variable.py
Normal file
@ -0,0 +1,200 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
_aion_variable_file = "/tmp/aion39ewefv90erfte25"
|
||||
|
||||
_default_variables = {"IS_AION_RUNNING": False}
|
||||
|
||||
IS_AION_RUNNING = "IS_AION_RUNNING"
|
||||
|
||||
|
||||
class Variable:
|
||||
"""
|
||||
base class for aion variables
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
"""
|
||||
set all class variables
|
||||
|
||||
:return: None
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
from os.path import isfile as _isfile
|
||||
|
||||
self._user_variables = {}
|
||||
|
||||
if _isfile(_aion_variable_file):
|
||||
self._aion_open_variable_file = open(_aion_variable_file, "w+")
|
||||
else:
|
||||
self._aion_open_variable_file = None
|
||||
|
||||
def add_variable(self, variable_name: str, value: str) -> None:
|
||||
"""
|
||||
adds a variable
|
||||
|
||||
:param variable_name: str
|
||||
name of the variable you want to add
|
||||
syntax: <variable name>
|
||||
example: "test_variable"
|
||||
:param value: str
|
||||
value of the variable
|
||||
syntax: <value>
|
||||
example: "test_value"
|
||||
:return: None
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
if self._aion_open_variable_file is not None:
|
||||
file = open(_aion_variable_file, "a")
|
||||
file.write(variable_name + "=" + value)
|
||||
self._aion_open_variable_file = open(_aion_variable_file, "w+")
|
||||
self._user_variables[variable_name] = value
|
||||
|
||||
def close(self) -> None:
|
||||
"""
|
||||
remove the file with the saved variables
|
||||
|
||||
:return: None
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
from os import remove
|
||||
|
||||
if self._aion_open_variable_file is not None:
|
||||
remove(_aion_variable_file)
|
||||
self._aion_open_variable_file = None
|
||||
|
||||
def get_value(self, variable_name: str) -> str:
|
||||
"""
|
||||
get the value of an variable
|
||||
|
||||
:param variable_name: str
|
||||
name of the variable you want to get the value
|
||||
syntax: <variable name>
|
||||
example: "test_variable"
|
||||
:return: str
|
||||
return the value of the variable
|
||||
syntax: <value>
|
||||
example: <text_variable_value>
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
try:
|
||||
from ._error_codes import variable_get_value_variable_file_variable_doesnt_exist, variable_get_value_user_variables_variable_doesnt_exist
|
||||
except ImportError:
|
||||
from _error_codes import variable_get_value_variable_file_variable_doesnt_exist, variable_get_value_user_variables_variable_doesnt_exist
|
||||
|
||||
if self._aion_open_variable_file is not None:
|
||||
for value in self._aion_open_variable_file:
|
||||
if value.strip().startswith("#"):
|
||||
continue
|
||||
elif value.split("=")[0].strip() == variable_name:
|
||||
return value.split("=")[1].strip()
|
||||
raise KeyError("Errno: " + variable_get_value_variable_file_variable_doesnt_exist + " - The variable " + variable_name + " doesn't exists")
|
||||
else:
|
||||
try:
|
||||
return str(_default_variables[variable_name])
|
||||
except KeyError:
|
||||
if variable_name in self._user_variables:
|
||||
return self._user_variables[variable_name]
|
||||
raise KeyError("Errno: " + variable_get_value_user_variables_variable_doesnt_exist + " - The variable " + variable_name + " doesn't exists")
|
||||
|
||||
def inititalize_variables(self, additional_variables: dict = {}) -> None:
|
||||
"""
|
||||
creates a new file for the variables to store
|
||||
|
||||
:param additional_variables: dict, optional
|
||||
variables that should be added ('add_variable' could be used instead)
|
||||
syntax: {"key": "value"}
|
||||
example: {"test": "True"}
|
||||
:return: None
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
self._aion_open_variable_file = open(_aion_variable_file, "w+")
|
||||
write_list = [variable + "=" + str(value) for variable, value in _default_variables.items()]
|
||||
write_list = write_list + [str(additional_variable) + "=" + str(additional_value) for additional_variable, additional_value in additional_variables.items()]
|
||||
write_list = write_list + [str(user_variable) + "=" + str(user_value) for user_variable, user_value in self._user_variables]
|
||||
self._aion_open_variable_file.writelines(write_list)
|
||||
self._aion_open_variable_file = open(_aion_variable_file, "w+")
|
||||
|
||||
def remove_variable(self, variable_name: str) -> None:
|
||||
"""
|
||||
removes a variable
|
||||
|
||||
:param variable_name: str
|
||||
name of the variable
|
||||
syntax: <variable name>
|
||||
example: "test_variable"
|
||||
:return: None
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
try:
|
||||
from ._error_codes import variable_remove_variable_variable_doesnt_exist
|
||||
from .utils import remove_space, replace_line
|
||||
except ImportError:
|
||||
from _error_codes import variable_remove_variable_variable_doesnt_exist
|
||||
from utils import remove_space, replace_line
|
||||
|
||||
found = False
|
||||
|
||||
if variable_name in self._user_variables:
|
||||
del self._user_variables[variable_name]
|
||||
found = True
|
||||
|
||||
if self._aion_open_variable_file is not None:
|
||||
line_number = -1
|
||||
for line in self._aion_open_variable_file:
|
||||
line_number = line_number + 1
|
||||
if remove_space(line, "").split("=")[0] == variable_name:
|
||||
replace_line(_aion_variable_file, line_number, "")
|
||||
self._aion_open_variable_file = open(_aion_variable_file, "w+")
|
||||
return
|
||||
|
||||
if found is False:
|
||||
raise KeyError("Errno: " + variable_remove_variable_variable_doesnt_exist + " - The variable " + variable_name + " doesn't exists")
|
||||
|
||||
def set_value(self, variable_name: str, value: str) -> None:
|
||||
"""
|
||||
set a new value to a variable
|
||||
|
||||
:param variable_name: str
|
||||
name of the variable you want to change the value
|
||||
syntax: "<variable name>"
|
||||
example: "test_variable"
|
||||
:param value: str
|
||||
new value
|
||||
syntax: "<new value>"
|
||||
example: "new_test_value"
|
||||
:return: None
|
||||
|
||||
:since: 0.1.0
|
||||
"""
|
||||
try:
|
||||
from ._error_codes import variable_set_value_variable_doesnt_exist
|
||||
from .utils import remove_space, replace_line
|
||||
except ImportError:
|
||||
from _error_codes import variable_set_value_variable_doesnt_exist
|
||||
from utils import remove_space, replace_line
|
||||
|
||||
found = False
|
||||
|
||||
if variable_name in self._user_variables:
|
||||
self._user_variables[variable_name] = value
|
||||
found = True
|
||||
|
||||
if self._aion_open_variable_file is not None:
|
||||
line_number = -1
|
||||
for line in self._aion_open_variable_file:
|
||||
line_number = line_number + 1
|
||||
if remove_space(line, " ").split("=")[0] == variable_name:
|
||||
replace_line(_aion_variable_file, line_number, variable_name + "=" + value)
|
||||
self._aion_open_variable_file = open(_aion_variable_file, "w+")
|
||||
return
|
||||
|
||||
if found is False:
|
||||
raise KeyError("Errno: " + variable_set_value_variable_doesnt_exist + " - The variable " + variable_name + " doesn't exists")
|
Reference in New Issue
Block a user