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.
Files changed (34) hide show
  1. Dshell/DISCORD_COMMANDS/__init__.py +7 -0
  2. Dshell/DISCORD_COMMANDS/dshell_channel.py +612 -0
  3. Dshell/DISCORD_COMMANDS/dshell_interaction.py +89 -0
  4. Dshell/DISCORD_COMMANDS/dshell_member.py +274 -0
  5. Dshell/DISCORD_COMMANDS/dshell_message.py +444 -0
  6. Dshell/DISCORD_COMMANDS/dshell_pastbin.py +28 -0
  7. Dshell/DISCORD_COMMANDS/dshell_role.py +128 -0
  8. Dshell/DISCORD_COMMANDS/utils/__init__.py +8 -0
  9. Dshell/DISCORD_COMMANDS/utils/utils_global.py +155 -0
  10. Dshell/DISCORD_COMMANDS/utils/utils_list.py +109 -0
  11. Dshell/DISCORD_COMMANDS/utils/utils_member.py +30 -0
  12. Dshell/DISCORD_COMMANDS/utils/utils_message.py +78 -0
  13. Dshell/DISCORD_COMMANDS/utils/utils_permissions.py +94 -0
  14. Dshell/DISCORD_COMMANDS/utils/utils_string.py +157 -0
  15. Dshell/DISCORD_COMMANDS/utils/utils_thread.py +35 -0
  16. Dshell/_DshellInterpreteur/__init__.py +4 -0
  17. Dshell/_DshellInterpreteur/cached_messages.py +4 -0
  18. Dshell/_DshellInterpreteur/dshell_arguments.py +74 -0
  19. Dshell/_DshellInterpreteur/dshell_interpreter.py +671 -0
  20. Dshell/_DshellInterpreteur/errors.py +8 -0
  21. Dshell/_DshellParser/__init__.py +2 -0
  22. Dshell/_DshellParser/ast_nodes.py +675 -0
  23. Dshell/_DshellParser/dshell_parser.py +408 -0
  24. Dshell/_DshellTokenizer/__init__.py +4 -0
  25. Dshell/_DshellTokenizer/dshell_keywords.py +193 -0
  26. Dshell/_DshellTokenizer/dshell_token_type.py +58 -0
  27. Dshell/_DshellTokenizer/dshell_tokenizer.py +146 -0
  28. Dshell/__init__.py +3 -0
  29. Dshell/_utils.py +1 -0
  30. dshellinterpreter-0.2.21.7.dist-info/METADATA +37 -0
  31. dshellinterpreter-0.2.21.7.dist-info/RECORD +34 -0
  32. dshellinterpreter-0.2.21.7.dist-info/WHEEL +5 -0
  33. dshellinterpreter-0.2.21.7.dist-info/licenses/LICENSE +21 -0
  34. 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)