dshellInterpreter 0.2.21.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- Dshell/DISCORD_COMMANDS/__init__.py +7 -0
- Dshell/DISCORD_COMMANDS/dshell_channel.py +612 -0
- Dshell/DISCORD_COMMANDS/dshell_interaction.py +89 -0
- Dshell/DISCORD_COMMANDS/dshell_member.py +274 -0
- Dshell/DISCORD_COMMANDS/dshell_message.py +444 -0
- Dshell/DISCORD_COMMANDS/dshell_pastbin.py +28 -0
- Dshell/DISCORD_COMMANDS/dshell_role.py +128 -0
- Dshell/DISCORD_COMMANDS/utils/__init__.py +8 -0
- Dshell/DISCORD_COMMANDS/utils/utils_global.py +155 -0
- Dshell/DISCORD_COMMANDS/utils/utils_list.py +109 -0
- Dshell/DISCORD_COMMANDS/utils/utils_member.py +30 -0
- Dshell/DISCORD_COMMANDS/utils/utils_message.py +78 -0
- Dshell/DISCORD_COMMANDS/utils/utils_permissions.py +94 -0
- Dshell/DISCORD_COMMANDS/utils/utils_string.py +157 -0
- Dshell/DISCORD_COMMANDS/utils/utils_thread.py +35 -0
- Dshell/_DshellInterpreteur/__init__.py +4 -0
- Dshell/_DshellInterpreteur/cached_messages.py +4 -0
- Dshell/_DshellInterpreteur/dshell_arguments.py +74 -0
- Dshell/_DshellInterpreteur/dshell_interpreter.py +671 -0
- Dshell/_DshellInterpreteur/errors.py +8 -0
- Dshell/_DshellParser/__init__.py +2 -0
- Dshell/_DshellParser/ast_nodes.py +675 -0
- Dshell/_DshellParser/dshell_parser.py +408 -0
- Dshell/_DshellTokenizer/__init__.py +4 -0
- Dshell/_DshellTokenizer/dshell_keywords.py +193 -0
- Dshell/_DshellTokenizer/dshell_token_type.py +58 -0
- Dshell/_DshellTokenizer/dshell_tokenizer.py +146 -0
- Dshell/__init__.py +3 -0
- Dshell/_utils.py +1 -0
- dshellinterpreter-0.2.21.7.dist-info/METADATA +37 -0
- dshellinterpreter-0.2.21.7.dist-info/RECORD +34 -0
- dshellinterpreter-0.2.21.7.dist-info/WHEEL +5 -0
- dshellinterpreter-0.2.21.7.dist-info/licenses/LICENSE +21 -0
- dshellinterpreter-0.2.21.7.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
from typing import Any, Union
|
|
2
|
+
from .._DshellTokenizer.dshell_token_type import DshellTokenType as DTT
|
|
3
|
+
|
|
4
|
+
class DshellArgumentsData:
|
|
5
|
+
"""
|
|
6
|
+
Data structure for Dshell argument.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
def __init__(self,value: Any, obligatory: bool, type_: DTT):
|
|
10
|
+
self.value = value
|
|
11
|
+
self.type = type_
|
|
12
|
+
self.obligatory = obligatory
|
|
13
|
+
|
|
14
|
+
def __repr__(self):
|
|
15
|
+
return f"DshellArgumentsData(value={self.value}, obligatory={self.obligatory})"
|
|
16
|
+
|
|
17
|
+
class DshellArguments:
|
|
18
|
+
"""
|
|
19
|
+
Manage Dhsell parameters and arguments passed to a command call.
|
|
20
|
+
Example : !ban @user reason for ban
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
def __init__(self):
|
|
24
|
+
self.parameters: dict[str, DshellArgumentsData] = {'*': DshellArgumentsData([], False, DTT.LIST)} # Non-specified parameters
|
|
25
|
+
|
|
26
|
+
def set_parameter(self, name: str, value: Any, type_: DTT, obligatory: bool = False):
|
|
27
|
+
"""
|
|
28
|
+
Set data parameter with its type and value.
|
|
29
|
+
:param name: Name of the parameter
|
|
30
|
+
:param value: Value of the parameter
|
|
31
|
+
"""
|
|
32
|
+
self.parameters[name] = DshellArgumentsData(value, obligatory, type_)
|
|
33
|
+
|
|
34
|
+
def get_parameter(self, name: str) -> DshellArgumentsData:
|
|
35
|
+
"""
|
|
36
|
+
Get data parameter by its name.
|
|
37
|
+
:param name:
|
|
38
|
+
:return:
|
|
39
|
+
"""
|
|
40
|
+
return self.parameters.get(name, DshellArgumentsData(None, False, DTT.NONE))
|
|
41
|
+
|
|
42
|
+
def update_parameter(self, name: str, value: DshellArgumentsData):
|
|
43
|
+
"""
|
|
44
|
+
Update parameter value.
|
|
45
|
+
:param name: Name of the parameter
|
|
46
|
+
:param value: New value of the parameter
|
|
47
|
+
"""
|
|
48
|
+
if name in self.parameters and self.get_parameter(name).type == value.type:
|
|
49
|
+
self.parameters[name] = value
|
|
50
|
+
|
|
51
|
+
def get_dict_parameters(self) -> dict[str, Union[Any, None]]:
|
|
52
|
+
"""
|
|
53
|
+
Get all parameters as a dictionary.
|
|
54
|
+
:return: Dictionary of parameters with their values.
|
|
55
|
+
"""
|
|
56
|
+
return {name: data.value for name, data in self.parameters.items()}
|
|
57
|
+
|
|
58
|
+
def get_non_specified_parameters(self) -> list[Any]:
|
|
59
|
+
"""
|
|
60
|
+
Get all non-specified parameters (i.e., those stored under the '*' key).
|
|
61
|
+
:return: List of non-specified parameter values.
|
|
62
|
+
"""
|
|
63
|
+
return self.parameters['*'].value
|
|
64
|
+
|
|
65
|
+
def add_non_specified_parameters(self, values: list[Any]):
|
|
66
|
+
"""
|
|
67
|
+
add non-specified parameters.
|
|
68
|
+
:param values: New list of non-specified parameter values.
|
|
69
|
+
"""
|
|
70
|
+
self.parameters['*'].value.append(values)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def __repr__(self):
|
|
74
|
+
return str(self.parameters)
|