easycoder 250107.2__tar.gz → 250107.4__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.

Potentially problematic release.


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

Files changed (160) hide show
  1. {easycoder-250107.2 → easycoder-250107.4}/PKG-INFO +1 -1
  2. {easycoder-250107.2 → easycoder-250107.4}/easycoder/__init__.py +1 -1
  3. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_graphics.py +30 -0
  4. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_renderer.py +21 -4
  5. {easycoder-250107.2 → easycoder-250107.4}/scripts/graphics-demo.ecg +11 -0
  6. {easycoder-250107.2 → easycoder-250107.4}/scripts/wave.ecg +0 -2
  7. {easycoder-250107.2 → easycoder-250107.4}/LICENSE +0 -0
  8. {easycoder-250107.2 → easycoder-250107.4}/README.md +0 -0
  9. {easycoder-250107.2 → easycoder-250107.4}/doc/README.md +0 -0
  10. {easycoder-250107.2 → easycoder-250107.4}/doc/core/README.md +0 -0
  11. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/boolean.md +0 -0
  12. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/empty.md +0 -0
  13. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/ends.md +0 -0
  14. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/even.md +0 -0
  15. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/exists.md +0 -0
  16. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/greater.md +0 -0
  17. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/hasProperty.md +0 -0
  18. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/includes.md +0 -0
  19. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/is.md +0 -0
  20. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/less.md +0 -0
  21. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/list.md +0 -0
  22. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/none.md +0 -0
  23. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/not.md +0 -0
  24. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/numeric.md +0 -0
  25. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/object.md +0 -0
  26. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/odd.md +0 -0
  27. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/starts.md +0 -0
  28. {easycoder-250107.2 → easycoder-250107.4}/doc/core/conditions/string.md +0 -0
  29. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/add.md +0 -0
  30. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/append.md +0 -0
  31. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/assert.md +0 -0
  32. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/begin.md +0 -0
  33. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/clear.md +0 -0
  34. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/close.md +0 -0
  35. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/create.md +0 -0
  36. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/debug.md +0 -0
  37. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/decrement.md +0 -0
  38. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/delete.md +0 -0
  39. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/divide.md +0 -0
  40. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/exit.md +0 -0
  41. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/file.md +0 -0
  42. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/fork.md +0 -0
  43. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/get.md +0 -0
  44. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/go.md +0 -0
  45. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/gosub.md +0 -0
  46. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/if.md +0 -0
  47. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/import.md +0 -0
  48. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/increment.md +0 -0
  49. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/index.md +0 -0
  50. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/init.md +0 -0
  51. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/input.md +0 -0
  52. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/load.md +0 -0
  53. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/lock.md +0 -0
  54. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/module.md +0 -0
  55. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/multiply.md +0 -0
  56. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/negate.md +0 -0
  57. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/open.md +0 -0
  58. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/pop.md +0 -0
  59. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/post.md +0 -0
  60. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/print.md +0 -0
  61. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/push.md +0 -0
  62. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/put.md +0 -0
  63. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/read.md +0 -0
  64. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/release.md +0 -0
  65. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/replace.md +0 -0
  66. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/return.md +0 -0
  67. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/run.md +0 -0
  68. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/save.md +0 -0
  69. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/script.md +0 -0
  70. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/set.md +0 -0
  71. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/split.md +0 -0
  72. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/stack.md +0 -0
  73. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/stop.md +0 -0
  74. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/system.md +0 -0
  75. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/take.md +0 -0
  76. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/toggle.md +0 -0
  77. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/truncate.md +0 -0
  78. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/unlock.md +0 -0
  79. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/variable.md +0 -0
  80. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/wait.md +0 -0
  81. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/while.md +0 -0
  82. {easycoder-250107.2 → easycoder-250107.4}/doc/core/keywords/write.md +0 -0
  83. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/arg.md +0 -0
  84. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/args.md +0 -0
  85. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/cos.md +0 -0
  86. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/datime.md +0 -0
  87. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/decode.md +0 -0
  88. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/element.md +0 -0
  89. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/elements.md +0 -0
  90. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/empty.md +0 -0
  91. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/encode.md +0 -0
  92. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/error.md +0 -0
  93. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/files.md +0 -0
  94. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/float.md +0 -0
  95. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/from.md +0 -0
  96. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/hash.md +0 -0
  97. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/index.md +0 -0
  98. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/integer.md +0 -0
  99. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/json.md +0 -0
  100. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/keys.md +0 -0
  101. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/left.md +0 -0
  102. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/length.md +0 -0
  103. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/lowercase.md +0 -0
  104. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/memory.md +0 -0
  105. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/modification.md +0 -0
  106. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/modulo.md +0 -0
  107. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/newline.md +0 -0
  108. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/now.md +0 -0
  109. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/position.md +0 -0
  110. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/property.md +0 -0
  111. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/random.md +0 -0
  112. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/right.md +0 -0
  113. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/sin.md +0 -0
  114. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/stringify.md +0 -0
  115. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/tab.md +0 -0
  116. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/tan.md +0 -0
  117. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/timestamp.md +0 -0
  118. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/today.md +0 -0
  119. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/trim.md +0 -0
  120. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/type.md +0 -0
  121. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/uppercase.md +0 -0
  122. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/value.md +0 -0
  123. {easycoder-250107.2 → easycoder-250107.4}/doc/core/values/weekday.md +0 -0
  124. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/README.md +0 -0
  125. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/attach.md +0 -0
  126. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/close.md +0 -0
  127. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/create.md +0 -0
  128. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/ellipse.md +0 -0
  129. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/image.md +0 -0
  130. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/move.md +0 -0
  131. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/on.md +0 -0
  132. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/rectangle.md +0 -0
  133. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/render.md +0 -0
  134. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/run.md +0 -0
  135. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/set.md +0 -0
  136. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/keywords/text.md +0 -0
  137. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/values/attribute.md +0 -0
  138. {easycoder-250107.2 → easycoder-250107.4}/doc/graphics/values/window.md +0 -0
  139. {easycoder-250107.2 → easycoder-250107.4}/easycoder/README.md +0 -0
  140. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec.py +0 -0
  141. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_classes.py +0 -0
  142. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_compiler.py +0 -0
  143. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_condition.py +0 -0
  144. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_core.py +0 -0
  145. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_handler.py +0 -0
  146. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_program.py +0 -0
  147. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_screenspec.py +0 -0
  148. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_timestamp.py +0 -0
  149. {easycoder-250107.2 → easycoder-250107.4}/easycoder/ec_value.py +0 -0
  150. {easycoder-250107.2 → easycoder-250107.4}/images/Semoigo Dawn.jpg +0 -0
  151. {easycoder-250107.2 → easycoder-250107.4}/json/graphics-demo.json +0 -0
  152. {easycoder-250107.2 → easycoder-250107.4}/plugins/ec_p100.py +0 -0
  153. {easycoder-250107.2 → easycoder-250107.4}/plugins/example.py +0 -0
  154. {easycoder-250107.2 → easycoder-250107.4}/pyproject.toml +0 -0
  155. {easycoder-250107.2 → easycoder-250107.4}/scripts/README.md +0 -0
  156. {easycoder-250107.2 → easycoder-250107.4}/scripts/benchmark.ecs +0 -0
  157. {easycoder-250107.2 → easycoder-250107.4}/scripts/fizzbuzz.ecs +0 -0
  158. {easycoder-250107.2 → easycoder-250107.4}/scripts/hello.ecs +0 -0
  159. {easycoder-250107.2 → easycoder-250107.4}/scripts/points.ecs +0 -0
  160. {easycoder-250107.2 → easycoder-250107.4}/scripts/tests.ecs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: easycoder
3
- Version: 250107.2
3
+ Version: 250107.4
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>
@@ -10,4 +10,4 @@ from .ec_program import *
10
10
  from .ec_timestamp import *
11
11
  from .ec_value import *
12
12
 
13
- __version__ = "250107.2"
13
+ __version__ = "250107.4"
@@ -228,6 +228,21 @@ class Graphics(Handler):
228
228
  self.ui = self.renderer.getUI()
229
229
  return self.nextPC()
230
230
 
231
+ # Hide an element
232
+ def k_hide(self, command):
233
+ if self.nextIsSymbol():
234
+ record = self.getSymbolRecord()
235
+ type = record['keyword']
236
+ if self.isGraphicType(type):
237
+ command['target'] = record['id']
238
+ self.add(command)
239
+ return True
240
+ return False
241
+
242
+ def r_hide(self, command):
243
+ self.ui.setVisible(self.getRuntimeValue(command['target']), False)
244
+ return self.nextPC()
245
+
231
246
  def k_image(self, command):
232
247
  return self.compileVariable(command)
233
248
 
@@ -393,6 +408,21 @@ class Graphics(Handler):
393
408
  self.ui.setAttribute(id, attribute, value)
394
409
  return self.nextPC()
395
410
 
411
+ # Show an element (restore it to its current position)
412
+ def k_show(self, command):
413
+ if self.nextIsSymbol():
414
+ record = self.getSymbolRecord()
415
+ type = record['keyword']
416
+ if self.isGraphicType(type):
417
+ command['target'] = record['id']
418
+ self.add(command)
419
+ return True
420
+ return False
421
+
422
+ def r_show(self, command):
423
+ self.ui.setVisible(self.getRuntimeValue(command['target']), True)
424
+ return self.nextPC()
425
+
396
426
  def k_text(self, command):
397
427
  return self.compileVariable(command)
398
428
 
@@ -35,6 +35,7 @@ class Element():
35
35
  def __init__(self, type, spec):
36
36
  self.type = type
37
37
  self.spec = spec
38
+ self.visible= True
38
39
  self.actionCB = None
39
40
 
40
41
  def getRelativePosition(self):
@@ -57,10 +58,11 @@ class Element():
57
58
  return pos
58
59
 
59
60
  def setPos(self, pos):
60
- # Update the spec
61
- self.spec.realpos = pos
62
- # Update the displayed item
63
- self.spec.item.pos = pos
61
+ if self.visible:
62
+ # Update the spec
63
+ self.spec.realpos = pos
64
+ # Update the displayed item
65
+ self.spec.item.pos = pos
64
66
 
65
67
  def getSize(self):
66
68
  return self.spec.realsize
@@ -69,6 +71,13 @@ class Element():
69
71
  self.spec.realsize = size
70
72
  self.spec.item.size = size
71
73
 
74
+ def setVisible(self, vis):
75
+ self.visible = vis
76
+ if vis:
77
+ self.setPos(self.spec.realpos)
78
+ else:
79
+ self.spec.item.pos = (Window.width, self.getPos()[1])
80
+
72
81
  def getChildren(self):
73
82
  return self.spec.children
74
83
 
@@ -142,6 +151,14 @@ class UI(Widget):
142
151
  self.moveElementBy(id, Vector(pos) - element.getPos())
143
152
  return
144
153
 
154
+ def setVisible(self, id, vis):
155
+ element = self.getElement(id)
156
+ if element != None:
157
+ element.setVisible(vis)
158
+ for id in element.getChildren():
159
+ self.setVisible(id, vis)
160
+ return
161
+
145
162
  def on_touch_down(self, touch):
146
163
  tp = touch.pos
147
164
  x = tp[0]
@@ -37,6 +37,8 @@
37
37
  attach Image to `dawn`
38
38
  on click Image print ` Click Image`
39
39
 
40
+ fork to FlashGreen
41
+
40
42
  gosub to InitEllipse
41
43
  clear UpDown
42
44
  put 0 into N
@@ -97,3 +99,12 @@ MoveEllipse:
97
99
  increment Step
98
100
  if Step is Steps gosub to InitEllipse
99
101
  return
102
+
103
+ FlashGreen:
104
+ while true
105
+ begin
106
+ wait 50 ticks
107
+ hide GreenCircle
108
+ wait 50 ticks
109
+ show GreenCircle
110
+ end
@@ -97,8 +97,6 @@
97
97
  increment N
98
98
  end
99
99
 
100
- on click Bar print `Click ` cat the index of Bar
101
-
102
100
  wait 1
103
101
  ! Run the main animation
104
102
  while true
File without changes
File without changes
File without changes