dshellInterpreter 0.2.6__tar.gz → 0.2.7__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.
Files changed (27) hide show
  1. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellInterpreteur/dshell_interpreter.py +8 -2
  2. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellParser/dshell_parser.py +2 -2
  3. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellTokenizer/dshell_keywords.py +9 -9
  4. {dshellinterpreter-0.2.6/dshellInterpreter.egg-info → dshellinterpreter-0.2.7}/PKG-INFO +1 -1
  5. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7/dshellInterpreter.egg-info}/PKG-INFO +1 -1
  6. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/setup.py +1 -1
  7. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/DISCORD_COMMANDS/__init__.py +0 -0
  8. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/DISCORD_COMMANDS/dshell_channel.py +0 -0
  9. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/DISCORD_COMMANDS/dshell_member.py +0 -0
  10. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/DISCORD_COMMANDS/dshell_message.py +0 -0
  11. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/DISCORD_COMMANDS/dshell_pastbin.py +0 -0
  12. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/DISCORD_COMMANDS/dshell_role.py +0 -0
  13. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellInterpreteur/__init__.py +0 -0
  14. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellParser/__init__.py +0 -0
  15. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellParser/ast_nodes.py +0 -0
  16. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellTokenizer/__init__.py +0 -0
  17. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellTokenizer/dshell_token_type.py +0 -0
  18. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_DshellTokenizer/dshell_tokenizer.py +0 -0
  19. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/__init__.py +0 -0
  20. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/Dshell/_utils.py +0 -0
  21. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/LICENSE +0 -0
  22. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/README.md +0 -0
  23. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/dshellInterpreter.egg-info/SOURCES.txt +0 -0
  24. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/dshellInterpreter.egg-info/dependency_links.txt +0 -0
  25. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/dshellInterpreter.egg-info/requires.txt +0 -0
  26. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/dshellInterpreter.egg-info/top_level.txt +0 -0
  27. {dshellinterpreter-0.2.6 → dshellinterpreter-0.2.7}/setup.cfg +0 -0
@@ -42,7 +42,6 @@ class DshellInterpreteur:
42
42
  '__author_discriminator__': ctx.author.discriminator,
43
43
  '__author_bot__': ctx.author.bot,
44
44
  '__author_nick__': ctx.author.nick if hasattr(ctx.author, 'nick') else None,
45
- '__author_avatar_url__': ctx.author.avatar.url if ctx.author.avatar else None,
46
45
  '__author_id__': ctx.author.id,
47
46
  '__message__': ctx.content,
48
47
  '__message_id__': ctx.id,
@@ -259,7 +258,14 @@ def eval_expression(tokens: list[Token], interpreter: DshellInterpreteur) -> Any
259
258
 
260
259
  else:
261
260
  b = stack.pop()
262
- a = stack.pop()
261
+ try:
262
+ a = stack.pop()
263
+ except IndexError:
264
+ if op == "-":
265
+ a = 0
266
+ else:
267
+ raise SyntaxError(f"Invalid expression: {op} operator requires two operands, but only one was found.")
268
+
263
269
  result = dshell_operators[op][0](a, b)
264
270
 
265
271
  stack.append(result)
@@ -268,7 +268,7 @@ def to_postfix(expression):
268
268
  operators: list[Token] = []
269
269
 
270
270
  for token in expression:
271
- if token.type in (DTT.IDENT, DTT.CALL_ARGS, DTT.INT, DTT.FLOAT, DTT.LIST, DTT.STR): # Si c'est un ident
271
+ if token.type in (DTT.IDENT, DTT.CALL_ARGS, DTT.INT, DTT.FLOAT, DTT.LIST, DTT.STR, DTT.BOOL): # Si c'est un ident
272
272
  output.append(token)
273
273
  elif token.value in dshell_operators:
274
274
  while (operators and operators[-1].value in dshell_operators and
@@ -289,7 +289,7 @@ def parse_postfix_expression(postfix_tokens: list[Token]) -> list[IdentOperation
289
289
 
290
290
  for tok in postfix_tokens:
291
291
 
292
- if tok.type in (DTT.IDENT, DTT.CALL_ARGS, DTT.INT, DTT.STR, DTT.LIST):
292
+ if tok.type in (DTT.IDENT, DTT.CALL_ARGS, DTT.INT, DTT.STR, DTT.LIST, DTT.FLOAT, DTT.BOOL):
293
293
  stack.append(tok)
294
294
 
295
295
  elif tok.type == DTT.MATHS_OPERATOR:
@@ -64,15 +64,6 @@ dshell_commands: dict[str, Callable] = {
64
64
  }
65
65
 
66
66
  dshell_mathematical_operators: dict[str, tuple[Callable, int]] = {
67
- r"<": (lambda a, b: a < b, 4),
68
- r"<=": (lambda a, b: a <= b, 4),
69
- r"=<": (lambda a, b: a <= b, 4),
70
- r"=": (lambda a, b: a == b, 4),
71
- r"!=": (lambda a, b: a != b, 4),
72
- r"=!": (lambda a, b: a != b, 4),
73
- r">": (lambda a, b: a > b, 4),
74
- r">=": (lambda a, b: a >= b, 4),
75
- r"=>": (lambda a, b: a >= b, 4),
76
67
 
77
68
  r".": (lambda a, b: a.b, 9),
78
69
  r"->": (lambda a: a.at, 10), # equivalent to calling .at(key)
@@ -89,6 +80,15 @@ dshell_mathematical_operators: dict[str, tuple[Callable, int]] = {
89
80
 
90
81
  dshell_logical_operators: dict[str, tuple[Callable, int]] = {
91
82
 
83
+ r"<": (lambda a, b: a < b, 4),
84
+ r"<=": (lambda a, b: a <= b, 4),
85
+ r"=<": (lambda a, b: a <= b, 4),
86
+ r"=": (lambda a, b: a == b, 4),
87
+ r"!=": (lambda a, b: a != b, 4),
88
+ r"=!": (lambda a, b: a != b, 4),
89
+ r">": (lambda a, b: a > b, 4),
90
+ r">=": (lambda a, b: a >= b, 4),
91
+ r"=>": (lambda a, b: a >= b, 4),
92
92
  r"and": (lambda a, b: bool(a and b), 2),
93
93
  r"&": (lambda a, b: a & b, 2),
94
94
  r"or": (lambda a, b: bool(a or b), 1),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dshellInterpreter
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: A Discord bot interpreter for creating custom commands and automations.
5
5
  Home-page: https://github.com/BOXERRMD/Dshell_Interpreter
6
6
  Author: Chronos
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dshellInterpreter
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: A Discord bot interpreter for creating custom commands and automations.
5
5
  Home-page: https://github.com/BOXERRMD/Dshell_Interpreter
6
6
  Author: Chronos
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setup(
7
7
  name="dshellInterpreter",
8
- version="0.2.6",
8
+ version="0.2.7",
9
9
  author="Chronos",
10
10
  author_email="vagabonwalybi@gmail.com",
11
11
  description="A Discord bot interpreter for creating custom commands and automations.",