easycoder 251104.1__py2.py3-none-any.whl → 251105.1__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.
easycoder/ec_handler.py CHANGED
@@ -66,6 +66,7 @@ class Handler:
66
66
  def conditionHandler(self, name):
67
67
  return getattr(self, f'c_{name}')
68
68
 
69
+ @staticmethod
69
70
  def isJson(value):
70
71
  try:
71
72
  json.loads(value)
easycoder/ec_keyboard.py CHANGED
@@ -29,7 +29,7 @@ class Keyboard(Handler):
29
29
  self.dialog = dialog
30
30
 
31
31
  # dialog.setWindowTitle('')
32
- dialog.setWindowFlags(Qt.FramelessWindowHint)
32
+ dialog.setWindowFlags(Qt.WindowType.FramelessWindowHint)
33
33
  dialog.setModal(True)
34
34
  dialog.setFixedWidth(500)
35
35
  dialog.setStyleSheet('background-color: white;border:1px solid black;')
@@ -38,7 +38,7 @@ class Keyboard(Handler):
38
38
  shadow = QGraphicsDropShadowEffect(dialog)
39
39
  shadow.setBlurRadius(40)
40
40
  shadow.setOffset(0, 4)
41
- shadow.setColor(Qt.black)
41
+ shadow.setColor(Qt.GlobalColor.black)
42
42
  dialog.setGraphicsEffect(shadow)
43
43
 
44
44
  # Add the keyboard
@@ -186,43 +186,43 @@ class VirtualKeyboard(QStackedWidget):
186
186
 
187
187
  # Row 2: qwertyuiop
188
188
  row2 = KeyboardRow([
189
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
189
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
190
190
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'qwertyuiop'],
191
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
191
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
192
192
  ])
193
193
  rowList.append(row2)
194
194
 
195
195
  # Row 3: asdfghjkl with horizontal stretches
196
196
  row3 = KeyboardRow([
197
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
197
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
198
198
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'asdfghjkl'],
199
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
199
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
200
200
  ])
201
201
  rowList.append(row3)
202
202
 
203
203
  # Row 4: Shift, ZXC..., Backspace
204
204
  row4 = KeyboardRow([
205
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
205
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
206
206
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickShift, None, 'img/up.png'),
207
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
207
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
208
208
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'zxcvbnm'],
209
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
209
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
210
210
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
211
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
211
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
212
212
  ])
213
213
  rowList.append(row4)
214
214
 
215
215
  # Row 5: Numbers, Space, Enter
216
216
  row5 = KeyboardRow([
217
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
217
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
218
218
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickNumbers, None, 'img/numbers.png'),
219
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
219
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
220
220
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
221
221
  KeyboardButton(self.buttonHeight * 5, self.buttonHeight, self.onClickSpace, None, 'keyboard/space.png'),
222
222
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, "."),
223
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
223
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
224
224
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
225
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
225
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
226
226
  ])
227
227
  rowList.append(row5)
228
228
 
@@ -243,43 +243,43 @@ class VirtualKeyboard(QStackedWidget):
243
243
 
244
244
  # Row 2: Uppercase QWERTY
245
245
  row2 = KeyboardRow([
246
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
246
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
247
247
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'QWERTYUIOP'],
248
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
248
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
249
249
  ])
250
250
  rowList.append(row2)
251
251
 
252
252
  # Row 3: Uppercase ASDFGHJKL with horizontal stretches
253
253
  row3 = KeyboardRow([
254
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
254
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
255
255
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'ASDFGHJKL'],
256
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
256
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
257
257
  ])
258
258
  rowList.append(row3)
259
259
 
260
260
  # Row 4: Shift, Uppercase ZXC..., Backspace
261
261
  row4 = KeyboardRow([
262
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
262
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
263
263
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickShift, None, 'img/up.png'),
264
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
264
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
265
265
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'ZXCVBNM'],
266
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
266
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
267
267
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
268
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
268
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
269
269
  ])
270
270
  rowList.append(row4)
271
271
 
272
272
  # Row 5: Numbers, Space, Enter
273
273
  row5 = KeyboardRow([
274
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
274
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
275
275
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickNumbers, None, 'img/numbers.png'),
276
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
276
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
277
277
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
278
278
  KeyboardButton(self.buttonHeight * 5, self.buttonHeight, self.onClickSpace, None, 'img/space.png'),
279
279
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, "."),
280
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
280
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
281
281
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
282
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
282
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
283
283
  ])
284
284
  rowList.append(row5)
285
285
 
@@ -296,43 +296,43 @@ class VirtualKeyboard(QStackedWidget):
296
296
 
297
297
  # Row 1: Numbers
298
298
  row1 = KeyboardRow([
299
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
299
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
300
300
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '1234567890'],
301
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
301
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
302
302
  ])
303
303
  rowList.append(row1)
304
304
 
305
305
  # Row 2: Symbols
306
306
  row2 = KeyboardRow([
307
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
307
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
308
308
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '@#£&_-()=%'],
309
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
309
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
310
310
  ])
311
311
  rowList.append(row2)
312
312
 
313
313
  # Row 3: Symbols with horizontal stretches
314
314
  row3 = KeyboardRow([
315
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
315
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
316
316
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickSymbols, None, 'img/symbols.png'),
317
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
317
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
318
318
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '"*\'/:!?+'],
319
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
319
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
320
320
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
321
- QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
321
+ QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
322
322
  ])
323
323
  rowList.append(row3)
324
324
 
325
325
  # Row 4: Numbers, Space, Enter
326
326
  row4 = KeyboardRow([
327
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
327
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
328
328
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickLetters, None, 'img/letters.png'),
329
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
329
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
330
330
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
331
331
  KeyboardButton(self.buttonHeight * 5.2, self.buttonHeight, self.onClickSpace, None, 'keyboard/space.png'),
332
332
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, "."),
333
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
333
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
334
334
  KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
335
- QSpacerItem(10, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
335
+ QSpacerItem(10, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
336
336
  ])
337
337
  rowList.append(row4)
338
338
 
@@ -349,43 +349,43 @@ class VirtualKeyboard(QStackedWidget):
349
349
 
350
350
  # Row 1: Extended symbols
351
351
  row1 = KeyboardRow([
352
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
352
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
353
353
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '$€¥¢©®µ~¿¡'],
354
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
354
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
355
355
  ])
356
356
  rowList.append(row1)
357
357
 
358
358
  # Row 2: Additional symbols
359
359
  row2 = KeyboardRow([
360
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
360
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
361
361
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '¼½¾[]{}<>^'],
362
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
362
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
363
363
  ])
364
364
  rowList.append(row2)
365
365
 
366
366
  # Row 3: Symbols with horizontal stretches
367
367
  row3 = KeyboardRow([
368
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
368
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
369
369
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickNumbers, None, 'img/numbers.png'),
370
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
370
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
371
371
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '`;÷\\∣|¬±'],
372
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
372
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
373
373
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
374
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
374
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
375
375
  ])
376
376
  rowList.append(row3)
377
377
 
378
378
  # Row 4: Numbers, Space, Enter
379
379
  row4 = KeyboardRow([
380
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
380
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
381
381
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickLetters, None, 'img/letters.png'),
382
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
382
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
383
383
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
384
384
  KeyboardButton(self.buttonHeight * 3, self.buttonHeight, self.onClickSpace, None, 'img/space.png'),
385
- QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
385
+ QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
386
386
  *[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '✕§¶°'],
387
387
  KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
388
- QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
388
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
389
389
  ])
390
390
  rowList.append(row4)
391
391
 
easycoder/ec_program.py CHANGED
@@ -19,11 +19,17 @@ class Program:
19
19
  def __init__(self, argv):
20
20
  global queue
21
21
  print(f'EasyCoder version {version("easycoder")}')
22
+ print(argv)
22
23
  if len(argv) == 0:
23
24
  print('No script supplied')
24
25
  exit()
25
26
  if argv in ['-v', '--version']: return
26
- scriptName = argv
27
+ if argv[0:6] == 'debug ':
28
+ scriptName = argv[6:]
29
+ self.debugging = True
30
+ else:
31
+ scriptName = argv
32
+ self.debugging = False
27
33
 
28
34
  f = open(scriptName, 'r')
29
35
  source = f.read()
@@ -47,16 +53,20 @@ class Program:
47
53
  self.useClass(Core)
48
54
  self.externalControl = False
49
55
  self.ticker = 0
56
+ self.usingGraphics = False
57
+ self.debugger = None
50
58
  self.running = True
51
59
 
52
60
  # This is called at 10msec intervals by the GUI code
53
61
  def flushCB(self):
54
62
  self.ticker += 1
63
+ # if self.ticker % 1000 == 0: print(f'GUI Tick {self.ticker}')
55
64
  flush()
56
65
 
57
66
  def start(self, parent=None, module = None, exports=[]):
58
67
  self.parent = parent
59
68
  self.exports = exports
69
+ if self.debugging: self.useGraphics()
60
70
  if module != None:
61
71
  module['child'] = self
62
72
  startCompile = time.time()
@@ -85,6 +95,16 @@ class Program:
85
95
  time.sleep(0.01)
86
96
  else:
87
97
  break
98
+
99
+ # Use the graphics module
100
+ def useGraphics(self):
101
+ if not self.usingGraphics:
102
+ print('Loading graphics module')
103
+ from .ec_pyside import Graphics
104
+ self.graphics = Graphics
105
+ self.useClass(Graphics)
106
+ self.usingGraphics = True
107
+ return True
88
108
 
89
109
  # Import a plugin
90
110
  def importPlugin(self, source):
@@ -147,8 +167,9 @@ class Program:
147
167
  name = value['name']
148
168
  symbolRecord = self.getSymbolRecord(name)
149
169
  # if symbolRecord['hasValue']:
150
- handler = self.domainIndex[symbolRecord['domain']].valueHandler('symbol')
151
- result = handler(symbolRecord)
170
+ if symbolRecord:
171
+ handler = self.domainIndex[symbolRecord['domain']].valueHandler('symbol')
172
+ result = handler(symbolRecord)
152
173
  # else:
153
174
  # # Call the given domain to handle a value
154
175
  # # domain = self.domainIndex[value['domain']]
@@ -181,7 +202,10 @@ class Program:
181
202
  return None
182
203
 
183
204
  def getValue(self, value):
184
- return self.evaluate(value).content
205
+ result = self.evaluate(value)
206
+ if result:
207
+ return result.get('content') # type: ignore[union-attr]
208
+ return None
185
209
 
186
210
  def getRuntimeValue(self, value):
187
211
  if value is None:
@@ -287,9 +311,9 @@ class Program:
287
311
  return
288
312
 
289
313
  def releaseParent(self):
290
- if self.parent.waiting and self.parent.program.running:
291
- self.parent.waiting = False
292
- self.parent.program.run(self.parent.pc)
314
+ if self.parent and self.parent.waiting and self.parent.program.running: # type: ignore[union-attr]
315
+ self.parent.waiting = False # type: ignore[union-attr]
316
+ self.parent.program.run(self.parent.pc) # type: ignore[union-attr]
293
317
 
294
318
  # Flush the queue
295
319
  def flush(self, pc):
@@ -321,6 +345,8 @@ class Program:
321
345
  break
322
346
  elif self.pc == None or self.pc == 0 or self.pc >= len(self.code):
323
347
  break
348
+ elif self.debugger != None and not self.debugger.continueExecution():
349
+ break
324
350
 
325
351
  # Run the script at a given PC value
326
352
  def run(self, pc):
@@ -378,9 +404,9 @@ class Program:
378
404
  if type(v2) == int:
379
405
  if type(v1) != int:
380
406
  v2 = f'{v2}'
381
- if v1 > v2:
407
+ if v1 > v2: # type: ignore[operator]
382
408
  return 1
383
- if v1 < v2:
409
+ if v1 < v2: # type: ignore[operator]
384
410
  return -1
385
411
  return 0
386
412
 
@@ -395,8 +421,16 @@ class Program:
395
421
 
396
422
  # This is the program launcher
397
423
  def Main():
424
+ print(sys.argv)
398
425
  if (len(sys.argv) > 1):
399
- Program(sys.argv[1]).start()
426
+ # Check if 'debug' is the first argument
427
+ if sys.argv[1] == 'debug' and len(sys.argv) > 2:
428
+ # Create program with debug flag
429
+ program = Program(sys.argv[2])
430
+ program.debugging = True
431
+ program.start()
432
+ else:
433
+ Program(sys.argv[1]).start()
400
434
  else:
401
435
  Program('-v')
402
436