easycoder 250723.4__py2.py3-none-any.whl → 250724.2__py2.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.

Potentially problematic release.


This version of easycoder might be problematic. Click here for more details.

easycoder/__init__.py CHANGED
@@ -11,4 +11,4 @@ from .ec_pyside import *
11
11
  from .ec_timestamp import *
12
12
  from .ec_value import *
13
13
 
14
- __version__ = "250723.4"
14
+ __version__ = "250724.2"
easycoder/ec_core.py CHANGED
@@ -17,6 +17,26 @@ class Core(Handler):
17
17
 
18
18
  def noSymbolWarning(self):
19
19
  self.warning(f'Symbol "{self.getToken()}" not found')
20
+
21
+ def processOr(self, command, orHere):
22
+ self.add(command)
23
+ if self.peek() == 'or':
24
+ self.nextToken()
25
+ self.nextToken()
26
+ # Add a 'goto' to skip the 'or'
27
+ cmd = {}
28
+ cmd['lino'] = command['lino']
29
+ cmd['domain'] = 'core'
30
+ cmd['keyword'] = 'gotoPC'
31
+ cmd['goto'] = 0
32
+ cmd['debug'] = False
33
+ skip = self.getPC()
34
+ self.add(cmd)
35
+ # Process the 'or'
36
+ self.getCommandAt(orHere)['or'] = self.getPC()
37
+ self.compileOne()
38
+ # Fixup the skip
39
+ self.getCommandAt(skip)['goto'] = self.getPC()
20
40
 
21
41
  #############################################################################
22
42
  # Keyword handlers
@@ -453,24 +473,7 @@ class Core(Handler):
453
473
  timeout['type'] = 'int'
454
474
  timeout['content'] = 5
455
475
  command['timeout'] = timeout
456
- self.add(command)
457
- if self.peek() == 'or':
458
- self.nextToken()
459
- self.nextToken()
460
- # Add a 'goto' to skip the 'or'
461
- cmd = {}
462
- cmd['lino'] = command['lino']
463
- cmd['domain'] = 'core'
464
- cmd['keyword'] = 'gotoPC'
465
- cmd['goto'] = 0
466
- cmd['debug'] = False
467
- skip = self.getPC()
468
- self.add(cmd)
469
- # Process the 'or'
470
- self.getCommandAt(get)['or'] = self.getPC()
471
- self.compileOne()
472
- # Fixup the skip
473
- self.getCommandAt(skip)['goto'] = self.getPC()
476
+ self.processOr(command, get)
474
477
  return True
475
478
  return False
476
479
 
@@ -751,24 +754,7 @@ class Core(Handler):
751
754
  command['file'] = self.getValue()
752
755
  command['or'] = None
753
756
  load = self.getPC()
754
- self.add(command)
755
- if self.peek() == 'or':
756
- self.nextToken()
757
- self.nextToken()
758
- # Add a 'goto' to skip the 'or'
759
- cmd = {}
760
- cmd['lino'] = command['lino']
761
- cmd['domain'] = 'core'
762
- cmd['keyword'] = 'gotoPC'
763
- cmd['goto'] = 0
764
- cmd['debug'] = False
765
- skip = self.getPC()
766
- self.add(cmd)
767
- # Process the 'or'
768
- self.getCommandAt(load)['or'] = self.getPC()
769
- self.compileOne()
770
- # Fixup the skip
771
- self.getCommandAt(skip)['goto'] = self.getPC()
757
+ self.processOr(command, load)
772
758
  return True
773
759
  else:
774
760
  FatalError(self.compiler, f'I don\'t understand \'{self.getToken()}\'')
@@ -1023,24 +1009,7 @@ class Core(Handler):
1023
1009
  command['result'] = None
1024
1010
  command['or'] = None
1025
1011
  post = self.getPC()
1026
- self.add(command)
1027
- if self.peek() == 'or':
1028
- self.nextToken()
1029
- self.nextToken()
1030
- # Add a 'goto' to skip the 'or'
1031
- cmd = {}
1032
- cmd['lino'] = command['lino']
1033
- cmd['domain'] = 'core'
1034
- cmd['keyword'] = 'gotoPC'
1035
- cmd['goto'] = 0
1036
- cmd['debug'] = False
1037
- skip = self.getPC()
1038
- self.add(cmd)
1039
- # Process the 'or'
1040
- self.getCommandAt(post)['or'] = self.getPC()
1041
- self.compileOne()
1042
- # Fixup the skip
1043
- self.getCommandAt(skip)['goto'] = self.getPC()
1012
+ self.processOr(command, post)
1044
1013
  return True
1045
1014
 
1046
1015
  def r_post(self, command):
@@ -1137,7 +1106,8 @@ class Core(Handler):
1137
1106
  if 'hasValue' in symbolRecord and symbolRecord['hasValue'] == False:
1138
1107
  FatalError(self.compiler, f'Symbol {symbolRecord["name"]} is not a value holder')
1139
1108
  else:
1140
- self.add(command)
1109
+ command['or'] = None
1110
+ self.processOr(command, self.getPC())
1141
1111
  return True
1142
1112
  else:
1143
1113
  FatalError(self.compiler, f'Symbol {self.getToken()} is not a variable')
@@ -1146,7 +1116,10 @@ class Core(Handler):
1146
1116
  def r_put(self, command):
1147
1117
  value = self.evaluate(command['value'])
1148
1118
  if value == None:
1149
- return -1
1119
+ if command['or'] != None:
1120
+ return command['or']
1121
+ else:
1122
+ RuntimeError(self.program, f'Error: could not compute value')
1150
1123
  symbolRecord = self.getVariable(command['target'])
1151
1124
  if not symbolRecord['hasValue']:
1152
1125
  NoValueRuntimeError(self.program, symbolRecord)
@@ -1303,24 +1276,7 @@ class Core(Handler):
1303
1276
  command['file'] = self.getValue()
1304
1277
  command['or'] = None
1305
1278
  save = self.getPC()
1306
- self.add(command)
1307
- if self.peek() == 'or':
1308
- self.nextToken()
1309
- self.nextToken()
1310
- # Add a 'goto' to skip the 'or'
1311
- cmd = {}
1312
- cmd['lino'] = command['lino']
1313
- cmd['domain'] = 'core'
1314
- cmd['keyword'] = 'gotoPC'
1315
- cmd['goto'] = 0
1316
- cmd['debug'] = False
1317
- skip = self.getPC()
1318
- self.add(cmd)
1319
- # Process the 'or'
1320
- self.getCommandAt(save)['or'] = self.getPC()
1321
- self.compileOne()
1322
- # Fixup the skip
1323
- self.getCommandAt(skip)['goto'] = self.getPC()
1279
+ self.processOr(command, save)
1324
1280
  return True
1325
1281
 
1326
1282
  def r_save(self, command):
@@ -2396,7 +2352,7 @@ class Core(Handler):
2396
2352
  try:
2397
2353
  value['content'] = json.loads(item)
2398
2354
  except:
2399
- RuntimeError(self.program, 'Cannot encode value')
2355
+ value = None
2400
2356
  return value
2401
2357
 
2402
2358
  def v_keys(self, v):
easycoder/ec_keyboard.py CHANGED
@@ -52,9 +52,12 @@ class Keyboard(Handler):
52
52
  if icon_rect.contains(event.pos()):
53
53
  self.iconClicked.emit()
54
54
  elif self._bar_rect().contains(event.pos()):
55
- self._drag_active = True
56
- self._drag_start_pos = event.globalPosition().toPoint()
57
- self._dialog_start_pos = self.window().pos()
55
+ if hasattr(self.window().windowHandle(), 'startSystemMove'):
56
+ self.window().windowHandle().startSystemMove()
57
+ else:
58
+ self._drag_active = True
59
+ self._drag_start_pos = event.globalPosition().toPoint()
60
+ self._dialog_start_pos = self.window().pos()
58
61
  else:
59
62
  super().mousePressEvent(event)
60
63
 
@@ -1,11 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: easycoder
3
- Version: 250723.4
3
+ Version: 250724.2
4
4
  Summary: Rapid scripting in English
5
5
  Keywords: compiler,scripting,prototyping,programming,coding,python,low code,hypertalk,computer language,learn to code
6
6
  Author-email: Graham Trott <gtanyware@gmail.com>
7
7
  Description-Content-Type: text/markdown
8
8
  Classifier: License :: OSI Approved :: MIT License
9
+ License-File: LICENSE
9
10
  Requires-Dist: pytz
10
11
  Requires-Dist: requests
11
12
  Requires-Dist: psutil
@@ -1,17 +1,17 @@
1
- easycoder/__init__.py,sha256=kuHZrjcpfrsKv9HmpPu7wGiC-7X8n58sed54Mp_iDpQ,314
1
+ easycoder/__init__.py,sha256=j2BQW6jHjAJh7T5w18SvotjXXljIV-2dc9iIo-g-UsE,314
2
2
  easycoder/close.png,sha256=3B9ueRNtEu9E4QNmZhdyC4VL6uqKvGmdfeFxIV9aO_Y,9847
3
3
  easycoder/ec_classes.py,sha256=PWPaJuTfaWD4-tgT-2WWOgeFV_jXxlxyKCxvXyylCUU,1824
4
4
  easycoder/ec_compiler.py,sha256=9byLqJZgMHAyFFyD8eGhY77oTsY1GY1aVcVrU4JAbd4,5287
5
5
  easycoder/ec_condition.py,sha256=YXvSBQKEzKGCcgUGo3Qp8iHolXmm2BpEm0NimSDszIM,785
6
- easycoder/ec_core.py,sha256=U1iOw0FKqAAvSShiDyFmBc9LlPyDRxzvgXlioSEK-KI,99679
6
+ easycoder/ec_core.py,sha256=JHcxmD2xq4Fy35CVkOWJOikKO31eV22EwiRwqxg-ILs,97786
7
7
  easycoder/ec_handler.py,sha256=ohf3xUuWw_Qb5SZnulGtDhvCb11kvWtYfgbQTiOXpIY,2261
8
- easycoder/ec_keyboard.py,sha256=6BFH3JuWq5gtkZd6x1Xi6I7SY19648VWJig54zztre4,19493
8
+ easycoder/ec_keyboard.py,sha256=gxRUe4xPCkGImKC8zTlbVOJwCXtBsBKGo7ExZi4Vczc,19671
9
9
  easycoder/ec_program.py,sha256=SHg8NV9g-DclSWz8pQzgAiElreoYrI1FR1NrZS4_hIA,9968
10
10
  easycoder/ec_pyside.py,sha256=15-brpZnAZTkR111KYllbo7k3qbbqr4Umww_ngzhsmk,42243
11
11
  easycoder/ec_timestamp.py,sha256=myQnnF-mT31_1dpQKv2VEAu4BCcbypvMdzq7_DUi1xc,277
12
12
  easycoder/ec_value.py,sha256=zgDJTJhIg3yOvmnnKIfccIizmIhGbtvL_ghLTL1T5fg,2516
13
- easycoder-250723.4.dist-info/entry_points.txt,sha256=JXAZbenl0TnsIft2FcGJbJ-4qoztVu2FuT8PFmWFexM,44
14
- easycoder-250723.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
15
- easycoder-250723.4.dist-info/WHEEL,sha256=ssQ84EZ5gH1pCOujd3iW7HClo_O_aDaClUbX4B8bjKY,100
16
- easycoder-250723.4.dist-info/METADATA,sha256=calLHfxDl3CH9DOgxzvct872pUb5tOKklO1MgLIy3fQ,6875
17
- easycoder-250723.4.dist-info/RECORD,,
13
+ easycoder-250724.2.dist-info/entry_points.txt,sha256=JXAZbenl0TnsIft2FcGJbJ-4qoztVu2FuT8PFmWFexM,44
14
+ easycoder-250724.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
15
+ easycoder-250724.2.dist-info/WHEEL,sha256=Dyt6SBfaasWElUrURkknVFAZDHSTwxg3PaTza7RSbkY,100
16
+ easycoder-250724.2.dist-info/METADATA,sha256=H4nBcI6JX0WV11O2AlNKCMM176uF86zCG0VClnR8rJ0,6897
17
+ easycoder-250724.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.10.1
2
+ Generator: flit 3.12.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any