easycoder 250106.14__tar.gz → 250107.1__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-250106.14 → easycoder-250107.1}/PKG-INFO +1 -1
  2. {easycoder-250106.14 → easycoder-250107.1}/easycoder/__init__.py +1 -1
  3. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_renderer.py +44 -48
  4. {easycoder-250106.14 → easycoder-250107.1}/LICENSE +0 -0
  5. {easycoder-250106.14 → easycoder-250107.1}/README.md +0 -0
  6. {easycoder-250106.14 → easycoder-250107.1}/doc/README.md +0 -0
  7. {easycoder-250106.14 → easycoder-250107.1}/doc/core/README.md +0 -0
  8. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/boolean.md +0 -0
  9. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/empty.md +0 -0
  10. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/ends.md +0 -0
  11. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/even.md +0 -0
  12. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/exists.md +0 -0
  13. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/greater.md +0 -0
  14. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/hasProperty.md +0 -0
  15. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/includes.md +0 -0
  16. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/is.md +0 -0
  17. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/less.md +0 -0
  18. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/list.md +0 -0
  19. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/none.md +0 -0
  20. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/not.md +0 -0
  21. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/numeric.md +0 -0
  22. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/object.md +0 -0
  23. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/odd.md +0 -0
  24. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/starts.md +0 -0
  25. {easycoder-250106.14 → easycoder-250107.1}/doc/core/conditions/string.md +0 -0
  26. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/add.md +0 -0
  27. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/append.md +0 -0
  28. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/assert.md +0 -0
  29. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/begin.md +0 -0
  30. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/clear.md +0 -0
  31. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/close.md +0 -0
  32. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/create.md +0 -0
  33. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/debug.md +0 -0
  34. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/decrement.md +0 -0
  35. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/delete.md +0 -0
  36. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/divide.md +0 -0
  37. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/exit.md +0 -0
  38. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/file.md +0 -0
  39. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/fork.md +0 -0
  40. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/get.md +0 -0
  41. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/go.md +0 -0
  42. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/gosub.md +0 -0
  43. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/if.md +0 -0
  44. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/import.md +0 -0
  45. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/increment.md +0 -0
  46. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/index.md +0 -0
  47. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/init.md +0 -0
  48. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/input.md +0 -0
  49. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/load.md +0 -0
  50. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/lock.md +0 -0
  51. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/module.md +0 -0
  52. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/multiply.md +0 -0
  53. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/negate.md +0 -0
  54. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/open.md +0 -0
  55. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/pop.md +0 -0
  56. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/post.md +0 -0
  57. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/print.md +0 -0
  58. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/push.md +0 -0
  59. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/put.md +0 -0
  60. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/read.md +0 -0
  61. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/release.md +0 -0
  62. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/replace.md +0 -0
  63. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/return.md +0 -0
  64. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/run.md +0 -0
  65. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/save.md +0 -0
  66. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/script.md +0 -0
  67. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/set.md +0 -0
  68. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/split.md +0 -0
  69. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/stack.md +0 -0
  70. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/stop.md +0 -0
  71. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/system.md +0 -0
  72. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/take.md +0 -0
  73. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/toggle.md +0 -0
  74. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/truncate.md +0 -0
  75. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/unlock.md +0 -0
  76. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/variable.md +0 -0
  77. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/wait.md +0 -0
  78. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/while.md +0 -0
  79. {easycoder-250106.14 → easycoder-250107.1}/doc/core/keywords/write.md +0 -0
  80. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/arg.md +0 -0
  81. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/args.md +0 -0
  82. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/cos.md +0 -0
  83. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/datime.md +0 -0
  84. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/decode.md +0 -0
  85. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/element.md +0 -0
  86. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/elements.md +0 -0
  87. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/empty.md +0 -0
  88. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/encode.md +0 -0
  89. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/error.md +0 -0
  90. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/files.md +0 -0
  91. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/float.md +0 -0
  92. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/from.md +0 -0
  93. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/hash.md +0 -0
  94. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/index.md +0 -0
  95. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/integer.md +0 -0
  96. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/json.md +0 -0
  97. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/keys.md +0 -0
  98. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/left.md +0 -0
  99. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/length.md +0 -0
  100. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/lowercase.md +0 -0
  101. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/memory.md +0 -0
  102. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/modification.md +0 -0
  103. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/modulo.md +0 -0
  104. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/newline.md +0 -0
  105. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/now.md +0 -0
  106. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/position.md +0 -0
  107. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/property.md +0 -0
  108. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/random.md +0 -0
  109. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/right.md +0 -0
  110. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/sin.md +0 -0
  111. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/stringify.md +0 -0
  112. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/tab.md +0 -0
  113. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/tan.md +0 -0
  114. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/timestamp.md +0 -0
  115. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/today.md +0 -0
  116. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/trim.md +0 -0
  117. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/type.md +0 -0
  118. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/uppercase.md +0 -0
  119. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/value.md +0 -0
  120. {easycoder-250106.14 → easycoder-250107.1}/doc/core/values/weekday.md +0 -0
  121. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/README.md +0 -0
  122. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/attach.md +0 -0
  123. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/close.md +0 -0
  124. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/create.md +0 -0
  125. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/ellipse.md +0 -0
  126. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/image.md +0 -0
  127. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/move.md +0 -0
  128. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/on.md +0 -0
  129. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/rectangle.md +0 -0
  130. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/render.md +0 -0
  131. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/run.md +0 -0
  132. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/set.md +0 -0
  133. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/keywords/text.md +0 -0
  134. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/values/attribute.md +0 -0
  135. {easycoder-250106.14 → easycoder-250107.1}/doc/graphics/values/window.md +0 -0
  136. {easycoder-250106.14 → easycoder-250107.1}/easycoder/README.md +0 -0
  137. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec.py +0 -0
  138. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_classes.py +0 -0
  139. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_compiler.py +0 -0
  140. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_condition.py +0 -0
  141. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_core.py +0 -0
  142. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_graphics.py +0 -0
  143. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_handler.py +0 -0
  144. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_program.py +0 -0
  145. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_screenspec.py +0 -0
  146. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_timestamp.py +0 -0
  147. {easycoder-250106.14 → easycoder-250107.1}/easycoder/ec_value.py +0 -0
  148. {easycoder-250106.14 → easycoder-250107.1}/images/Semoigo Dawn.jpg +0 -0
  149. {easycoder-250106.14 → easycoder-250107.1}/json/graphics-demo.json +0 -0
  150. {easycoder-250106.14 → easycoder-250107.1}/plugins/ec_p100.py +0 -0
  151. {easycoder-250106.14 → easycoder-250107.1}/plugins/example.py +0 -0
  152. {easycoder-250106.14 → easycoder-250107.1}/pyproject.toml +0 -0
  153. {easycoder-250106.14 → easycoder-250107.1}/scripts/README.md +0 -0
  154. {easycoder-250106.14 → easycoder-250107.1}/scripts/benchmark.ecs +0 -0
  155. {easycoder-250106.14 → easycoder-250107.1}/scripts/fizzbuzz.ecs +0 -0
  156. {easycoder-250106.14 → easycoder-250107.1}/scripts/graphics-demo.ecg +0 -0
  157. {easycoder-250106.14 → easycoder-250107.1}/scripts/hello.ecs +0 -0
  158. {easycoder-250106.14 → easycoder-250107.1}/scripts/points.ecs +0 -0
  159. {easycoder-250106.14 → easycoder-250107.1}/scripts/tests.ecs +0 -0
  160. {easycoder-250106.14 → easycoder-250107.1}/scripts/wave.ecg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: easycoder
3
- Version: 250106.14
3
+ Version: 250107.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>
@@ -10,4 +10,4 @@ from .ec_program import *
10
10
  from .ec_timestamp import *
11
11
  from .ec_value import *
12
12
 
13
- __version__ = "250106.14"
13
+ __version__ = "250107.1"
@@ -9,8 +9,26 @@ from kivy.clock import Clock
9
9
  from kivy.vector import Vector
10
10
  import math
11
11
 
12
- class Object():
13
- pass
12
+ # Get a real position or size value
13
+ # These are {n}w/h, where w/h are percentages
14
+ # e.g. 25w or 50h
15
+ def getReal(spec, val):
16
+ if isinstance(val, str):
17
+ c = val[-1]
18
+ if c in ['w', 'h']:
19
+ val = int(val[0:len(val)-1])
20
+ if spec.parent == None:
21
+ if c == 'w':
22
+ n = Window.width
23
+ else:
24
+ n = Window.height
25
+ else:
26
+ if c == 'w':
27
+ n = spec.parent.realsize[0]
28
+ else:
29
+ n = spec.parent.realsize[1]
30
+ return val * n / 100
31
+ return val
14
32
 
15
33
  class Element():
16
34
 
@@ -18,43 +36,37 @@ class Element():
18
36
  self.type = type
19
37
  self.spec = spec
20
38
 
39
+ def getRelativePosition(self):
40
+ spec = self.spec
41
+ x = getReal(spec, spec.pos[0])
42
+ y = getReal(spec, spec.pos[1])
43
+ return Vector(x, y)
44
+
21
45
  def getType(self):
22
46
  return self.spec.type
23
47
 
24
48
  def getID(self):
25
49
  return self.spec.id
26
50
 
27
- def getRealPos(self):
28
- spec = self.spec
29
- pos = spec.realpos
30
- if spec.parent != None:
31
- pos = Vector(pos) + spec.parent.realpos
32
- return pos
33
-
34
51
  def getPos(self):
35
52
  spec = self.spec
36
- pos = spec.pos
53
+ pos = spec.realpos
37
54
  if spec.parent != None:
38
- pos = Vector(pos) + spec.parent.pos
55
+ pos = self.getRelativePosition() + spec.parent.realpos
39
56
  return pos
40
57
 
41
58
  def setPos(self, pos):
59
+ # Update the spec
42
60
  self.spec.realpos = pos
61
+ # Update the displayed item
43
62
  self.spec.item.pos = pos
44
63
 
45
- # Called when the parent moves
46
- def repos(self):
47
- spec = self.spec
48
- spec.item.pos = Vector(spec.realpos) + spec.parent.realpos
49
-
50
- def getRealSize(self):
51
- return self.spec.realsize
52
-
53
64
  def getSize(self):
54
- return self.spec.size
65
+ return self.spec.realsize
55
66
 
56
67
  def setSize(self, size):
57
- self.spec.size = size
68
+ self.spec.realsize = size
69
+ self.spec.item.size = size
58
70
 
59
71
  def getChildren(self):
60
72
  return self.spec.children
@@ -78,25 +90,6 @@ class UI(Widget):
78
90
  self.zlist.append(element)
79
91
 
80
92
  def createElement(self, spec):
81
- # Get a real position or size value
82
- def getReal(val):
83
- if isinstance(val, str):
84
- c = val[-1]
85
- if c in ['w', 'h']:
86
- val = int(val[0:len(val)-1])
87
- if spec.parent == None:
88
- if c == 'w':
89
- n = Window.width
90
- else:
91
- n = Window.height
92
- else:
93
- if c == 'w':
94
- n = spec.parent.realsize[0]
95
- else:
96
- n = spec.parent.realsize[1]
97
- return val * n / 100
98
- return val
99
-
100
93
  with self.canvas:
101
94
  if hasattr(spec, 'fill'):
102
95
  c = spec.fill
@@ -105,9 +98,9 @@ class UI(Widget):
105
98
  Color(c[0], c[1], c[2])
106
99
  else:
107
100
  Color(c[0]/255, c[1]/255, c[2]/255)
108
- pos = (getReal(spec.pos[0]), getReal(spec.pos[1]))
101
+ pos = (getReal(spec, spec.pos[0]), getReal(spec, spec.pos[1]))
109
102
  spec.realpos = pos
110
- size = (getReal(spec.size[0]), getReal(spec.size[1]))
103
+ size = (getReal(spec, spec.size[0]), getReal(spec, spec.size[1]))
111
104
  spec.realsize = size
112
105
  if spec.parent != None:
113
106
  pos = Vector(pos) + spec.parent.realpos
@@ -137,15 +130,15 @@ class UI(Widget):
137
130
  def moveElementBy(self, id, dist):
138
131
  element = self.getElement(id)
139
132
  if element != None:
140
- element.setPos(Vector(element.getRealPos()) + dist)
133
+ element.setPos(Vector(element.getPos()) + dist)
141
134
  for id in element.getChildren():
142
- self.getElement(id).repos()
135
+ self.moveElementBy(id, dist)
143
136
  return
144
137
 
145
138
  def moveElementTo(self, id, pos):
146
139
  element = self.getElement(id)
147
140
  if element != None:
148
- self.moveElementBy(id, Vector(pos) - element.getRealPos())
141
+ self.moveElementBy(id, Vector(pos) - element.getPos())
149
142
  return
150
143
 
151
144
  def on_touch_down(self, touch):
@@ -156,9 +149,9 @@ class UI(Widget):
156
149
  if element.cb != None:
157
150
  spec = element.spec
158
151
  pos = spec.realpos
159
- if spec.parent != None:
160
- pos = Vector(pos) + spec.parent.realpos
161
- size = spec.size
152
+ # if spec.parent != None:
153
+ # pos = Vector(pos) + spec.parent.spec.getPos()
154
+ size = element.getSize()
162
155
  if spec.type == 'ellipse':
163
156
  a = int(size[0])/2
164
157
  b = int(size[1])/2
@@ -250,3 +243,6 @@ class Renderer(App):
250
243
  Window.size = spec.size
251
244
  Window.left = spec.pos[0]
252
245
  Window.top = spec.pos[1]
246
+
247
+ class Object():
248
+ pass
File without changes
File without changes