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

Potentially problematic release.


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

easycoder/__init__.py CHANGED
@@ -12,4 +12,4 @@ from .ec_pyside import *
12
12
  from .ec_timestamp import *
13
13
  from .ec_value import *
14
14
 
15
- __version__ = "251018.1"
15
+ __version__ = "251021.1"
easycoder/ec_core.py CHANGED
@@ -323,7 +323,8 @@ class Core(Handler):
323
323
  symbolRecord = self.getVariable(command['var'])
324
324
  value = self.getSymbolValue(symbolRecord)
325
325
  content = value['content']
326
- content.remove(key)
326
+ if key >= 0 and key < len(content): del(content[key])
327
+ else: RuntimeError(self.program, f'Index {key} out of range')
327
328
  value['content'] = content
328
329
  self.putSymbolValue(symbolRecord, value)
329
330
  return self.nextPC()
easycoder/ec_pyside.py CHANGED
@@ -26,6 +26,7 @@ from PySide6.QtWidgets import (
26
26
  QSlider,
27
27
  QSpinBox,
28
28
  QTimeEdit,
29
+ QLayout,
29
30
  QVBoxLayout,
30
31
  QHBoxLayout,
31
32
  QGridLayout,
@@ -281,8 +282,41 @@ class Graphics(Handler):
281
282
  return False
282
283
 
283
284
  def r_clear(self, command):
285
+
286
+ def clearLayout(layout: QLayout) -> None:
287
+ if layout is None:
288
+ return
289
+ while layout.count() > 0:
290
+ item = layout.takeAt(0)
291
+ if item is None:
292
+ continue
293
+ widget = item.widget()
294
+ if widget is not None:
295
+ # Delete the widget
296
+ widget.deleteLater()
297
+ elif item.layout() is not None:
298
+ # Recursively clear sub-layout
299
+ clearLayout(item.layout())
300
+ item.layout().deleteLater()
301
+ # The QLayoutItem will be automatically cleaned up by Qt
302
+
303
+ def clearWidget(widget: QWidget) -> None:
304
+ if widget is None:
305
+ return
306
+ # Clear the layout first
307
+ layout = widget.layout()
308
+ if layout is not None:
309
+ clearLayout(layout)
310
+ layout.deleteLater()
311
+ # Clear any remaining child widgets
312
+ child_widgets = widget.findChildren(QWidget, "", Qt.FindDirectChildrenOnly)
313
+ for child in child_widgets:
314
+ child.deleteLater()
315
+
284
316
  widget = self.getWidget(self.getVariable(command['name']))
285
- widget.clear()
317
+ clearWidget(widget)
318
+ return self.nextPC()
319
+
286
320
  return self.nextPC()
287
321
 
288
322
  # close {window}
@@ -1491,4 +1525,4 @@ class Graphics(Handler):
1491
1525
  # Force the application to exit
1492
1526
  def force_exit(self):
1493
1527
  QApplication.quit() # Gracefully close the application
1494
- sys.exit(0) # Force a complete system exit
1528
+ sys.exit(0) # Force a complete system exit
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easycoder
3
- Version: 251018.1
3
+ Version: 251021.1
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>
@@ -1,19 +1,19 @@
1
- easycoder/__init__.py,sha256=JtgGFDcYrnVX1C6zRTP5MzdbC1bMtfftBSHKFS9F4Bs,339
1
+ easycoder/__init__.py,sha256=DJ3kZP8Psi4ElD1WHZmQhjMGB0ChfAPRt50pt2JIxdg,339
2
2
  easycoder/close.png,sha256=3B9ueRNtEu9E4QNmZhdyC4VL6uqKvGmdfeFxIV9aO_Y,9847
3
3
  easycoder/ec_border.py,sha256=KpOy0Jq8jI_6DYGo4jaFvoBP_jTIoAYWrmuHhl-FXA4,2355
4
4
  easycoder/ec_classes.py,sha256=bejrby7mLHTeAQXhhz-1l8iv6LSbNSy30lW21KJKjXE,1832
5
5
  easycoder/ec_compiler.py,sha256=LYwGNs8dcHKXI_nnu1sVFe1N36vjvylcUO_tX_bLjrk,5359
6
6
  easycoder/ec_condition.py,sha256=YXvSBQKEzKGCcgUGo3Qp8iHolXmm2BpEm0NimSDszIM,785
7
- easycoder/ec_core.py,sha256=VTAnhdLp3ftZ1tLPhovKX0PQ1CplmC9x17jH_DfrJsQ,99650
7
+ easycoder/ec_core.py,sha256=44QeY8S2P4oRcgYAiOdDfYy-urF4YfXUuS_HV2jH6BA,99758
8
8
  easycoder/ec_handler.py,sha256=ED08ULiOlZkcs4XHxAguvdPZw_dFXuwGDFLbFuo0kLs,2317
9
9
  easycoder/ec_keyboard.py,sha256=H8DhPT8-IvAIGgRxCs4qSaF_AQLaS6lxxtDteejbktM,19010
10
10
  easycoder/ec_program.py,sha256=srVDRlELMElvnkjxmREczUVPkvPXPvanZglN4hKreLI,10324
11
- easycoder/ec_pyside.py,sha256=EHf_VDLgiJoqBjXGRIgj8KGMbqJU52-eIr2KD1NIyN4,56258
11
+ easycoder/ec_pyside.py,sha256=YtNWs3XMIa7FwTIxHe0ShEtFRyKrzD8bBSmKXxkQvUY,57476
12
12
  easycoder/ec_timestamp.py,sha256=myQnnF-mT31_1dpQKv2VEAu4BCcbypvMdzq7_DUi1xc,277
13
13
  easycoder/ec_value.py,sha256=zgDJTJhIg3yOvmnnKIfccIizmIhGbtvL_ghLTL1T5fg,2516
14
14
  easycoder/tick.png,sha256=OedASXJJTYvnza4J6Kv5m5lz6DrBfy667zX_WGgtbmM,9127
15
- easycoder-251018.1.dist-info/entry_points.txt,sha256=JXAZbenl0TnsIft2FcGJbJ-4qoztVu2FuT8PFmWFexM,44
16
- easycoder-251018.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
17
- easycoder-251018.1.dist-info/WHEEL,sha256=Dyt6SBfaasWElUrURkknVFAZDHSTwxg3PaTza7RSbkY,100
18
- easycoder-251018.1.dist-info/METADATA,sha256=W8QvVrkCfafBW9R15RjORblvlRFt0A23_G7OmImub3M,6897
19
- easycoder-251018.1.dist-info/RECORD,,
15
+ easycoder-251021.1.dist-info/entry_points.txt,sha256=JXAZbenl0TnsIft2FcGJbJ-4qoztVu2FuT8PFmWFexM,44
16
+ easycoder-251021.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
17
+ easycoder-251021.1.dist-info/WHEEL,sha256=Dyt6SBfaasWElUrURkknVFAZDHSTwxg3PaTza7RSbkY,100
18
+ easycoder-251021.1.dist-info/METADATA,sha256=tK3XAF-X2zxpqURc0CS9iAge0U2AQbMO4PU82_YPWoY,6897
19
+ easycoder-251021.1.dist-info/RECORD,,