dshellInterpreter 1.2.0.13__tar.gz → 1.2.0.15__tar.gz
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.
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_channel.py +3 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_file.py +1 -2
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_message.py +4 -4
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_global.py +43 -2
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellParser/ast_nodes.py +54 -45
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellTokenizer/dshell_keywords.py +3 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/full_import.py +1 -0
- {dshellinterpreter-1.2.0.13/dshellInterpreter.egg-info → dshellinterpreter-1.2.0.15}/PKG-INFO +1 -1
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15/dshellInterpreter.egg-info}/PKG-INFO +1 -1
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/setup.py +1 -1
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/__init__.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_embed.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_interaction.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_member.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_pastbin.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_role.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_ui.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/__init__.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_embed.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_file.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_list.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_member.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_message.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_numbers.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_permissions.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_string.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_thread.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/utils_type_validation.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/__init__.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/cached_messages.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/dshell_arguments.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/dshell_global_variables.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/dshell_interpreter.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/dshell_scope.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/errors.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/utils_interpreter.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellParser/__init__.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellParser/dshell_parser.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellParser/errors.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellPreProcess/__init__.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellPreProcess/dshell_preprocess.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellTokenizer/__init__.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellTokenizer/dshell_token_type.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellTokenizer/dshell_tokenizer.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/__init__.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/regex_test.py +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/LICENSE +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/README.md +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/dshellInterpreter.egg-info/SOURCES.txt +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/dshellInterpreter.egg-info/dependency_links.txt +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/dshellInterpreter.egg-info/requires.txt +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/dshellInterpreter.egg-info/top_level.txt +0 -0
- {dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/setup.cfg +0 -0
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_channel.py
RENAMED
|
@@ -117,6 +117,9 @@ async def dshell_get_channels_in_category(ctx: Message,
|
|
|
117
117
|
elif regex is not None and search(regex, channel.name):
|
|
118
118
|
channels.add(IntNode(channel.id))
|
|
119
119
|
|
|
120
|
+
else:
|
|
121
|
+
channels.add(IntNode(channel.id))
|
|
122
|
+
|
|
120
123
|
return channels
|
|
121
124
|
|
|
122
125
|
async def dshell_create_text_channel(ctx: Message,
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_file.py
RENAMED
|
@@ -50,7 +50,7 @@ async def dshell_read_file(ctx: Message, file: FileNode) -> StrNode:
|
|
|
50
50
|
_CMD = "rf"
|
|
51
51
|
_validate_required_file_node(file, 'file', _CMD)
|
|
52
52
|
|
|
53
|
-
return
|
|
53
|
+
return file.read()
|
|
54
54
|
|
|
55
55
|
async def dshell_stream_file(ctx: Message, file: FileNode, separator: Optional[StrNode] = None) -> FileStreamNode:
|
|
56
56
|
"""
|
|
@@ -70,7 +70,6 @@ async def dshell_stream_file(ctx: Message, file: FileNode, separator: Optional[S
|
|
|
70
70
|
|
|
71
71
|
return file.stream(separator)
|
|
72
72
|
|
|
73
|
-
|
|
74
73
|
async def dshell_write_file(ctx: Message,
|
|
75
74
|
message: StrNode,
|
|
76
75
|
append: BoolNode = BoolNode(False),
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_message.py
RENAMED
|
@@ -52,16 +52,16 @@ __all__ = [
|
|
|
52
52
|
|
|
53
53
|
async def dshell_send_message(ctx: Message,
|
|
54
54
|
message: Optional[StrNode]=None,
|
|
55
|
-
delete=None,
|
|
56
|
-
channel=None,
|
|
55
|
+
delete: Optional[IntNode]=None,
|
|
56
|
+
channel: Optional[IntNode]=None,
|
|
57
57
|
global_mentions: Optional[BoolNode] = None,
|
|
58
58
|
everyone_mention: BoolNode = BoolNode(1),
|
|
59
59
|
roles_mentions: BoolNode = BoolNode(1),
|
|
60
60
|
users_mentions: BoolNode = BoolNode(1),
|
|
61
61
|
reply_mention: BoolNode = BoolNode(0),
|
|
62
|
-
embeds=None,
|
|
62
|
+
embeds: Optional[ListNode]=None,
|
|
63
63
|
files: Optional[ListNode] = None,
|
|
64
|
-
view=None) -> IntNode:
|
|
64
|
+
view: Optional[EasyModifiedViews]=None) -> IntNode:
|
|
65
65
|
"""
|
|
66
66
|
Sends a message on Discord
|
|
67
67
|
"""
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
__all__ = [
|
|
2
|
+
"utils_help",
|
|
3
|
+
"utils_get_size",
|
|
2
4
|
"utils_make_mention",
|
|
3
5
|
"utils_len",
|
|
4
6
|
"utils_random",
|
|
@@ -25,7 +27,8 @@ from Dshell.full_import import (Message,
|
|
|
25
27
|
ForumChannel,
|
|
26
28
|
Thread,
|
|
27
29
|
Colour,
|
|
28
|
-
get
|
|
30
|
+
get,
|
|
31
|
+
getsizeof)
|
|
29
32
|
|
|
30
33
|
from Dshell.full_import import (random,
|
|
31
34
|
choice)
|
|
@@ -36,7 +39,6 @@ from .utils_type_validation import (_validate_optional_list_node,
|
|
|
36
39
|
_validate_required_int,
|
|
37
40
|
_validate_required_string)
|
|
38
41
|
|
|
39
|
-
|
|
40
42
|
class DiscordType(StrEnum):
|
|
41
43
|
MEMBER = "member"
|
|
42
44
|
ROLE = "role"
|
|
@@ -47,6 +49,45 @@ class DiscordType(StrEnum):
|
|
|
47
49
|
THREAD = "thread"
|
|
48
50
|
UNKNOWN = "unknown"
|
|
49
51
|
|
|
52
|
+
async def utils_help(ctx: Message, command: StrNode) -> StrNode:
|
|
53
|
+
"""
|
|
54
|
+
Renvoie l'aide associé à une commande
|
|
55
|
+
:param ctx:
|
|
56
|
+
:param command:
|
|
57
|
+
:return:
|
|
58
|
+
"""
|
|
59
|
+
_CMD = "help"
|
|
60
|
+
|
|
61
|
+
_validate_required_string(command, "command", _CMD)
|
|
62
|
+
|
|
63
|
+
from inspect import signature, Parameter
|
|
64
|
+
from ...DshellTokenizer.dshell_keywords import dshell_commands
|
|
65
|
+
|
|
66
|
+
if command not in dshell_commands:
|
|
67
|
+
raise ValueError(f"[HELP] command not found : '{command}'")
|
|
68
|
+
|
|
69
|
+
sig = signature(dshell_commands[command])
|
|
70
|
+
result = StrNode("## HELP `{command}`")
|
|
71
|
+
|
|
72
|
+
for nom, param in sig.parameters.items():
|
|
73
|
+
if nom == "ctx":
|
|
74
|
+
continue
|
|
75
|
+
|
|
76
|
+
result += StrNode(f"""
|
|
77
|
+
--{nom} [{param.default if param.default != Parameter.empty else "REQUIRED"}] -> {param.annotation}
|
|
78
|
+
""")
|
|
79
|
+
return result
|
|
80
|
+
|
|
81
|
+
async def utils_get_size(ctx: Message, target: Any):
|
|
82
|
+
"""
|
|
83
|
+
Récupère la taille de l'objet
|
|
84
|
+
:param ctx:
|
|
85
|
+
:param target:
|
|
86
|
+
:return:
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
return IntNode(getsizeof(target))
|
|
90
|
+
|
|
50
91
|
def utils_what_discord_type_is(ctx: Union[Message, Guild], value: IntNode) -> tuple[StrNode, Union[Member, Role, TextChannel, VoiceChannel, CategoryChannel, ForumChannel, Thread, None]]:
|
|
51
92
|
"""
|
|
52
93
|
Identifie le type Discord d'un ID et retourne l'objet correspondant.
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
from Dshell.full_import import (Any, randint, Optional, Union, Embed, Member, Role, PermissionOverwrite)
|
|
1
|
+
from Dshell.full_import import (Any, randint, Optional, Union, Embed, Member, Role, PermissionOverwrite, getsizeof)
|
|
2
2
|
from ..DshellTokenizer.dshell_token_type import Token
|
|
3
3
|
from ..DshellInterpreteur.dshell_global_variables import MAX_STR_SIZE, MAX_LIST_SIZE, MAX_FILE_SIZE
|
|
4
4
|
from .errors import *
|
|
5
5
|
|
|
6
|
-
from sys import getsizeof
|
|
7
|
-
|
|
8
6
|
__all__ = [
|
|
9
7
|
'ASTNode',
|
|
10
8
|
'StrNode',
|
|
@@ -72,7 +70,7 @@ class StrNode(str, ASTNode):
|
|
|
72
70
|
return IntNode(super().__len__())
|
|
73
71
|
|
|
74
72
|
def __sizeof__(self):
|
|
75
|
-
return len(self.encode("utf-8", errors="ignore"))
|
|
73
|
+
return len(self.encode("utf-8", errors="ignore"))
|
|
76
74
|
|
|
77
75
|
def __add__(self, other: "StrNode"):
|
|
78
76
|
if not isinstance(other, StrNode):
|
|
@@ -114,7 +112,7 @@ class StrNode(str, ASTNode):
|
|
|
114
112
|
return StrNode(super().replace(old, new))
|
|
115
113
|
|
|
116
114
|
def __repr__(self):
|
|
117
|
-
return f"{super().__repr__()}"
|
|
115
|
+
return StrNode(f"{super().__repr__()}")
|
|
118
116
|
|
|
119
117
|
class IntNode(int, ASTNode):
|
|
120
118
|
def __new__(cls, value: Union[str, StrNode, int, "IntNode", float, "FloatNode"], base: int = 10):
|
|
@@ -123,30 +121,30 @@ class IntNode(int, ASTNode):
|
|
|
123
121
|
return super().__new__(cls, value, base)
|
|
124
122
|
|
|
125
123
|
def __repr__(self):
|
|
126
|
-
return f"{super().__repr__()}"
|
|
124
|
+
return StrNode(f"{super().__repr__()}")
|
|
127
125
|
|
|
128
126
|
def __sizeof__(self):
|
|
129
|
-
return getsizeof(
|
|
127
|
+
return getsizeof(IntNode)
|
|
130
128
|
|
|
131
129
|
class FloatNode(float, ASTNode):
|
|
132
130
|
def __new__(cls, value: Union[str, StrNode, float, "FloatNode", int, IntNode]):
|
|
133
131
|
return super().__new__(cls, value)
|
|
134
132
|
|
|
135
133
|
def __repr__(self):
|
|
136
|
-
return f"{super().__repr__()}"
|
|
134
|
+
return StrNode(f"{super().__repr__()}")
|
|
137
135
|
|
|
138
136
|
def __sizeof__(self):
|
|
139
|
-
return getsizeof(
|
|
137
|
+
return getsizeof(FloatNode)
|
|
140
138
|
|
|
141
139
|
class BoolNode(int, ASTNode):
|
|
142
140
|
def __new__(cls, value: Union[str, StrNode, int, IntNode, bool, "BoolNode"]):
|
|
143
141
|
return super().__new__(cls, int(bool(value)))
|
|
144
142
|
|
|
145
143
|
def __repr__(self):
|
|
146
|
-
return f"{super().__repr__()}"
|
|
144
|
+
return StrNode(f"{super().__repr__()}")
|
|
147
145
|
|
|
148
146
|
def __sizeof__(self):
|
|
149
|
-
return getsizeof(
|
|
147
|
+
return getsizeof(BoolNode)
|
|
150
148
|
|
|
151
149
|
class StartNode(ASTNode):
|
|
152
150
|
"""
|
|
@@ -158,7 +156,7 @@ class StartNode(ASTNode):
|
|
|
158
156
|
self.body = body
|
|
159
157
|
|
|
160
158
|
def __repr__(self):
|
|
161
|
-
return f"<
|
|
159
|
+
return StrNode(f"<START> - {self.body}")
|
|
162
160
|
|
|
163
161
|
def to_dict(self):
|
|
164
162
|
"""
|
|
@@ -183,7 +181,7 @@ class ElseNode(ASTNode):
|
|
|
183
181
|
self.body = body
|
|
184
182
|
|
|
185
183
|
def __repr__(self):
|
|
186
|
-
return f"<
|
|
184
|
+
return StrNode(f"<ELSE> - {self.body}")
|
|
187
185
|
|
|
188
186
|
def to_dict(self):
|
|
189
187
|
"""
|
|
@@ -213,7 +211,7 @@ class ElifNode(ASTNode):
|
|
|
213
211
|
self.parent = parent
|
|
214
212
|
|
|
215
213
|
def __repr__(self):
|
|
216
|
-
return f"<
|
|
214
|
+
return StrNode(f"<ELIF> - {self.condition} - {self.body}")
|
|
217
215
|
|
|
218
216
|
def to_dict(self):
|
|
219
217
|
"""
|
|
@@ -249,7 +247,7 @@ class IfNode(ASTNode):
|
|
|
249
247
|
self.id = randint(0, 1000000) # Unique identifier for the IfNode instance
|
|
250
248
|
|
|
251
249
|
def __repr__(self):
|
|
252
|
-
return f"<
|
|
250
|
+
return StrNode(f"<IF> - {self.condition} - {self.body} *- {self.elif_nodes} **- {self.else_body}")
|
|
253
251
|
|
|
254
252
|
def to_dict(self):
|
|
255
253
|
"""
|
|
@@ -281,7 +279,7 @@ class LoopNode(ASTNode):
|
|
|
281
279
|
self.body = body
|
|
282
280
|
|
|
283
281
|
def __repr__(self):
|
|
284
|
-
return f"<
|
|
282
|
+
return StrNode(f"<LOOP> - {self.variable.name} -> {self.variable.body} *- {self.body}")
|
|
285
283
|
|
|
286
284
|
def to_dict(self):
|
|
287
285
|
"""
|
|
@@ -303,7 +301,7 @@ class BreakNode(ASTNode):
|
|
|
303
301
|
super().__init__(line)
|
|
304
302
|
|
|
305
303
|
def __repr__(self):
|
|
306
|
-
return "<
|
|
304
|
+
return StrNode("<BREAK>")
|
|
307
305
|
|
|
308
306
|
def to_dict(self):
|
|
309
307
|
"""
|
|
@@ -327,7 +325,7 @@ class ArgsCommandNode(ASTNode):
|
|
|
327
325
|
self.body: list[Token] = body
|
|
328
326
|
|
|
329
327
|
def __repr__(self):
|
|
330
|
-
return f"<
|
|
328
|
+
return StrNode(f"<ARGS_COMMAND> - {self.body}")
|
|
331
329
|
|
|
332
330
|
def to_dict(self):
|
|
333
331
|
"""
|
|
@@ -348,7 +346,7 @@ class ScanNode(ASTNode):
|
|
|
348
346
|
self.body = body
|
|
349
347
|
|
|
350
348
|
def __repr__(self):
|
|
351
|
-
return f"<SCAN> - {self.body}"
|
|
349
|
+
return StrNode(f"<SCAN> - {self.body}")
|
|
352
350
|
|
|
353
351
|
def to_dict(self):
|
|
354
352
|
"""
|
|
@@ -375,7 +373,7 @@ class CommandNode(ASTNode):
|
|
|
375
373
|
self.body = body
|
|
376
374
|
|
|
377
375
|
def __repr__(self):
|
|
378
|
-
return f"<{self.name}> - {self.body}"
|
|
376
|
+
return StrNode(f"<{self.name}> - {self.body}")
|
|
379
377
|
|
|
380
378
|
def to_dict(self):
|
|
381
379
|
"""
|
|
@@ -404,7 +402,7 @@ class VarNode(ASTNode):
|
|
|
404
402
|
self.body = body
|
|
405
403
|
|
|
406
404
|
def __repr__(self):
|
|
407
|
-
return f"<VAR> - {self.name} *- {self.body}"
|
|
405
|
+
return StrNode(f"<VAR> - {self.name} *- {self.body}")
|
|
408
406
|
|
|
409
407
|
def to_dict(self):
|
|
410
408
|
"""
|
|
@@ -430,7 +428,7 @@ class LengthNode(ASTNode):
|
|
|
430
428
|
self.body = body
|
|
431
429
|
|
|
432
430
|
def __repr__(self):
|
|
433
|
-
return f"<LENGTH> - {self.body}"
|
|
431
|
+
return StrNode(f"<LENGTH> - {self.body}")
|
|
434
432
|
|
|
435
433
|
def to_dict(self):
|
|
436
434
|
"""
|
|
@@ -447,12 +445,12 @@ class EndNode(ASTNode):
|
|
|
447
445
|
Node representing the end of the AST.
|
|
448
446
|
"""
|
|
449
447
|
|
|
450
|
-
def __init__(self, line: int, error_message: Union[Token,
|
|
448
|
+
def __init__(self, line: int, error_message: Union[Token, BoolNode] = BoolNode(1)):
|
|
451
449
|
super().__init__(line)
|
|
452
|
-
self.error_message:
|
|
450
|
+
self.error_message: Union[Token, BoolNode] = error_message
|
|
453
451
|
|
|
454
452
|
def __repr__(self):
|
|
455
|
-
return f"<END>"
|
|
453
|
+
return StrNode(f"<END>")
|
|
456
454
|
|
|
457
455
|
def to_dict(self):
|
|
458
456
|
"""
|
|
@@ -478,7 +476,7 @@ class FieldEmbedNode(ASTNode):
|
|
|
478
476
|
self.body: list[Token] = body
|
|
479
477
|
|
|
480
478
|
def __repr__(self):
|
|
481
|
-
return f"<EMBED_FIELD> - {self.body}"
|
|
479
|
+
return StrNode(f"<EMBED_FIELD> - {self.body}")
|
|
482
480
|
|
|
483
481
|
def to_dict(self):
|
|
484
482
|
"""
|
|
@@ -506,7 +504,7 @@ class ConstructEmbedNode(ASTNode):
|
|
|
506
504
|
self.fields = fields
|
|
507
505
|
|
|
508
506
|
def __repr__(self):
|
|
509
|
-
return f"<EMBED> - {self.body}"
|
|
507
|
+
return StrNode(f"<EMBED> - {self.body}")
|
|
510
508
|
|
|
511
509
|
def to_dict(self):
|
|
512
510
|
"""
|
|
@@ -524,10 +522,10 @@ class EmbedNode(Embed, ASTNode):
|
|
|
524
522
|
super().__init__(*args, **kwargs)
|
|
525
523
|
|
|
526
524
|
def __sizeof__(self):
|
|
527
|
-
return super().__len__()
|
|
525
|
+
return super().__len__()
|
|
528
526
|
|
|
529
527
|
def __repr__(self):
|
|
530
|
-
return f"<EMBED> - {super().title}"
|
|
528
|
+
return StrNode(f"<EMBED> - {super().title}")
|
|
531
529
|
|
|
532
530
|
class ConstructPermissionNode(ASTNode):
|
|
533
531
|
"""
|
|
@@ -542,7 +540,7 @@ class ConstructPermissionNode(ASTNode):
|
|
|
542
540
|
self.body = body
|
|
543
541
|
|
|
544
542
|
def __repr__(self):
|
|
545
|
-
return f"<PERMISSION> - {self.body}"
|
|
543
|
+
return StrNode(f"<PERMISSION> - {self.body}")
|
|
546
544
|
|
|
547
545
|
def to_dict(self):
|
|
548
546
|
"""
|
|
@@ -574,7 +572,10 @@ class PermissionNode(ASTNode):
|
|
|
574
572
|
self.value.update(other.value)
|
|
575
573
|
|
|
576
574
|
def __sizeof__(self):
|
|
577
|
-
return len(self.value)*getsizeof(
|
|
575
|
+
return len(self.value)*getsizeof(PermissionNode)
|
|
576
|
+
|
|
577
|
+
def __repr__(self):
|
|
578
|
+
return StrNode(f"<PERMISSION> - {self.value}")
|
|
578
579
|
|
|
579
580
|
class SleepNode(ASTNode):
|
|
580
581
|
"""
|
|
@@ -589,7 +590,7 @@ class SleepNode(ASTNode):
|
|
|
589
590
|
self.body = body
|
|
590
591
|
|
|
591
592
|
def __repr__(self):
|
|
592
|
-
return f"<SLEEP> - {self.body}"
|
|
593
|
+
return StrNode(f"<SLEEP> - {self.body}")
|
|
593
594
|
|
|
594
595
|
def to_dict(self):
|
|
595
596
|
"""
|
|
@@ -615,7 +616,7 @@ class EvalGroupNode(ASTNode):
|
|
|
615
616
|
self.body = body
|
|
616
617
|
|
|
617
618
|
def __repr__(self):
|
|
618
|
-
return f"<EVAL GROUP> - {self.body}"
|
|
619
|
+
return StrNode(f"<EVAL GROUP> - {self.body}")
|
|
619
620
|
|
|
620
621
|
def to_dict(self):
|
|
621
622
|
"""
|
|
@@ -642,7 +643,7 @@ class ParamNode(ASTNode):
|
|
|
642
643
|
self.body = body
|
|
643
644
|
|
|
644
645
|
def __repr__(self):
|
|
645
|
-
return f"<PARAM> - {self.body}"
|
|
646
|
+
return StrNode(f"<PARAM> - {self.body}")
|
|
646
647
|
|
|
647
648
|
def to_dict(self):
|
|
648
649
|
"""
|
|
@@ -666,7 +667,7 @@ class CodeNode(ASTNode):
|
|
|
666
667
|
self.body = body
|
|
667
668
|
|
|
668
669
|
def __repr__(self):
|
|
669
|
-
return f"<CODE> - {self.body}"
|
|
670
|
+
return StrNode(f"<CODE> - {self.body}")
|
|
670
671
|
|
|
671
672
|
def to_dict(self):
|
|
672
673
|
"""
|
|
@@ -693,7 +694,7 @@ class EvalNode(ASTNode):
|
|
|
693
694
|
self.argsNode = argsNode
|
|
694
695
|
|
|
695
696
|
def __repr__(self):
|
|
696
|
-
return f"<EVAL> - {self.argsNode} -> {self.codeNode}"
|
|
697
|
+
return StrNode(f"<EVAL> - {self.argsNode} -> {self.codeNode}")
|
|
697
698
|
|
|
698
699
|
def to_dict(self):
|
|
699
700
|
"""
|
|
@@ -720,7 +721,7 @@ class ReturnNode(ASTNode):
|
|
|
720
721
|
self.body = body
|
|
721
722
|
|
|
722
723
|
def __repr__(self):
|
|
723
|
-
return f"<RETURN> - {self.body}"
|
|
724
|
+
return StrNode(f"<RETURN> - {self.body}")
|
|
724
725
|
|
|
725
726
|
def to_dict(self):
|
|
726
727
|
"""
|
|
@@ -747,7 +748,7 @@ class UiButtonNode(ASTNode):
|
|
|
747
748
|
self.body = body
|
|
748
749
|
|
|
749
750
|
def __repr__(self):
|
|
750
|
-
return f"<UI BUTTON> - {self.body}"
|
|
751
|
+
return StrNode(f"<UI BUTTON> - {self.body}")
|
|
751
752
|
|
|
752
753
|
def to_dict(self):
|
|
753
754
|
"""
|
|
@@ -774,7 +775,7 @@ class UiSelectNode(ASTNode):
|
|
|
774
775
|
self.options: list[OptionUiSelectNode] = []
|
|
775
776
|
|
|
776
777
|
def __repr__(self):
|
|
777
|
-
return f"<UI SELECT> - {self.body} -> {self.options}"
|
|
778
|
+
return StrNode(f"<UI SELECT> - {self.body} -> {self.options}")
|
|
778
779
|
|
|
779
780
|
def to_dict(self):
|
|
780
781
|
"""
|
|
@@ -800,7 +801,7 @@ class OptionUiSelectNode(ASTNode):
|
|
|
800
801
|
self.body = body
|
|
801
802
|
|
|
802
803
|
def __repr__(self):
|
|
803
|
-
return f"<UI SELECT OPTION> - {self.body}"
|
|
804
|
+
return StrNode(f"<UI SELECT OPTION> - {self.body}")
|
|
804
805
|
|
|
805
806
|
def to_dict(self):
|
|
806
807
|
"""
|
|
@@ -831,20 +832,22 @@ class FileNode(ASTNode):
|
|
|
831
832
|
self.content = content
|
|
832
833
|
|
|
833
834
|
def read(self):
|
|
834
|
-
return self.content.decode(encoding="utf-8", errors="ignore")
|
|
835
|
+
return StrNode(self.content.decode(encoding="utf-8", errors="ignore"))
|
|
835
836
|
|
|
836
837
|
def stream(self, separator: Optional[StrNode] = None):
|
|
837
838
|
return FileStreamNode(self, separator)
|
|
838
839
|
|
|
839
|
-
|
|
840
840
|
def size(self):
|
|
841
|
-
return len(self.read())
|
|
841
|
+
return IntNode(len(self.read()))
|
|
842
842
|
|
|
843
843
|
def __len__(self):
|
|
844
844
|
return self.size()
|
|
845
845
|
|
|
846
846
|
def __sizeof__(self):
|
|
847
|
-
return self.size()
|
|
847
|
+
return self.size()
|
|
848
|
+
|
|
849
|
+
def __repr__(self):
|
|
850
|
+
return StrNode(f"<FILE> - {self.name}")
|
|
848
851
|
|
|
849
852
|
class FileStreamNode(ASTNode):
|
|
850
853
|
|
|
@@ -889,6 +892,12 @@ class FileStreamNode(ASTNode):
|
|
|
889
892
|
self.pointer += 1 # Skip the newline character
|
|
890
893
|
return StrNode(buffer)
|
|
891
894
|
|
|
895
|
+
def __repr__(self):
|
|
896
|
+
return StrNode(f"<FILE_STREAM> - {self.file.__repr__()}")
|
|
897
|
+
|
|
898
|
+
def __sizeof__(self):
|
|
899
|
+
return self.file.size()
|
|
900
|
+
|
|
892
901
|
|
|
893
902
|
class ListNode(ASTNode):
|
|
894
903
|
"""
|
|
@@ -1089,5 +1098,5 @@ class ListNode(ASTNode):
|
|
|
1089
1098
|
return self.size
|
|
1090
1099
|
|
|
1091
1100
|
def __repr__(self):
|
|
1092
|
-
return f"<LIST> - {self.iterable}"
|
|
1101
|
+
return StrNode(f"<LIST> - {self.iterable}")
|
|
1093
1102
|
|
|
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name="dshellInterpreter",
|
|
8
|
-
version="1.2.0.
|
|
8
|
+
version="1.2.0.15",
|
|
9
9
|
author="Chronos",
|
|
10
10
|
author_email="vagabonwalybi@gmail.com",
|
|
11
11
|
description="A Discord bot interpreter for creating custom commands and automations.",
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/__init__.py
RENAMED
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_embed.py
RENAMED
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_member.py
RENAMED
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_pastbin.py
RENAMED
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_role.py
RENAMED
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/dshell_ui.py
RENAMED
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DISCORD_COMMANDS/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/dshell_scope.py
RENAMED
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellInterpreteur/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellParser/dshell_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellPreProcess/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellTokenizer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/Dshell/DshellTokenizer/dshell_tokenizer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/dshellInterpreter.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/dshellInterpreter.egg-info/requires.txt
RENAMED
|
File without changes
|
{dshellinterpreter-1.2.0.13 → dshellinterpreter-1.2.0.15}/dshellInterpreter.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|