cuemsutils 0.0.4.post4__tar.gz → 0.0.5__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuemsutils
3
- Version: 0.0.4.post4
3
+ Version: 0.0.5
4
4
  Summary: Reusable classes and methods for CueMS system
5
5
  Project-URL: Documentation, https://github.com/stagesoft/cuems-utils#readme
6
6
  Project-URL: Issues, https://github.com/stagesoft/cuems-utils/issues
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: Implementation :: CPython
19
19
  Classifier: Programming Language :: Python :: Implementation :: PyPy
20
20
  Requires-Python: >=3.8
21
+ Requires-Dist: json-fix==1.0.0
21
22
  Requires-Dist: lxml==5.3.0
22
23
  Requires-Dist: timecode
23
24
  Requires-Dist: xmlschema==3.4.3
@@ -46,9 +47,15 @@ pip install cuemsutils
46
47
  ## Release notes
47
48
 
48
49
  ### v0.0.5
49
- - All properties of objects are lowercase (i.e. `media` and `outputs` at `MediaCue`). Camelcase used for classes, `region` is the only exception and will become deprecated on following versions.
50
+ - All properties of objects are lowercase exept the ones representing classes (e.g. `CueList` at `CuemsScript` and `Media` at `MediaCue`).
51
+ - Parameters renamed for clarity:
52
+ - `uuid` -> `id`
53
+ - `loaded` -> `autoload`
54
+ - `bott_*` -> `bottom_*`
50
55
  - User facing classes can be exported directly (e.g. `from cuemsutils.cues import AudioCue, VideoCue`)
51
56
  - `Cue` is not longer an accepted object for script validation
57
+ - `ui_properties` has become an `CuemsDict` object to facilitate modifications and requierements for UI development.
58
+ - `CuemsScript` object has method `to_json` to convert its contents to json format. Internally works via `json.dumps` and specific calls to methods `__json__` when available at class level.
52
59
 
53
60
  ### v0.0.4
54
61
  - `Logger` fixed to allow empty `extra` parameter
@@ -21,9 +21,15 @@ pip install cuemsutils
21
21
  ## Release notes
22
22
 
23
23
  ### v0.0.5
24
- - All properties of objects are lowercase (i.e. `media` and `outputs` at `MediaCue`). Camelcase used for classes, `region` is the only exception and will become deprecated on following versions.
24
+ - All properties of objects are lowercase exept the ones representing classes (e.g. `CueList` at `CuemsScript` and `Media` at `MediaCue`).
25
+ - Parameters renamed for clarity:
26
+ - `uuid` -> `id`
27
+ - `loaded` -> `autoload`
28
+ - `bott_*` -> `bottom_*`
25
29
  - User facing classes can be exported directly (e.g. `from cuemsutils.cues import AudioCue, VideoCue`)
26
30
  - `Cue` is not longer an accepted object for script validation
31
+ - `ui_properties` has become an `CuemsDict` object to facilitate modifications and requierements for UI development.
32
+ - `CuemsScript` object has method `to_json` to convert its contents to json format. Internally works via `json.dumps` and specific calls to methods `__json__` when available at class level.
27
33
 
28
34
  ### v0.0.4
29
35
  - `Logger` fixed to allow empty `extra` parameter
@@ -26,6 +26,7 @@ classifiers = [
26
26
  "Programming Language :: Python :: Implementation :: PyPy",
27
27
  ]
28
28
  dependencies = [
29
+ "json-fix==1.0.0",
29
30
  "timecode",
30
31
  "lxml==5.3.0",
31
32
  "xmlschema==3.4.3"
@@ -20,17 +20,17 @@
20
20
  <xs:complexType>
21
21
  <!-- Which is a sequence of one of each of these objects -->
22
22
  <xs:all>
23
- <!-- The uuid, TODO specify the uuid format in a type -->
24
- <xs:element name="uuid" type="cms:UuidType" />
23
+ <!-- The root cuelist of our project, mainly a cuelist at the root -->
24
+ <xs:element name="CueList" type="cms:CueListType" />
25
+ <!-- Long description of the script (0 - 255 chars) -->
26
+ <xs:element name="description" type="cms:DescriptionStringType" />
27
+ <!-- The id, TODO specify the uuid format in a type -->
28
+ <xs:element name="id" type="cms:UuidType" />
25
29
  <!-- The name, mainly a string, we can check lengths here too if desired -->
26
30
  <xs:element name="name" type="cms:NameStringType" /> <!-- 3 - 60 chars -->
27
- <!-- Long description of the script -->
28
- <xs:element name="description" type="cms:DescriptionStringType" /> <!-- 0 - 255 chars -->
29
31
  <!-- The date, Todo specify the date formant in a type-->
30
32
  <xs:element name="created" type="cms:DateType" />
31
33
  <xs:element name="modified" type="cms:DateType" />
32
- <!-- The root cuelist of our project, mainly a cuelist at the root -->
33
- <xs:element name="CueList" type="cms:CueListType" />
34
34
  </xs:all>
35
35
  <xs:assert test="modified &gt;= created" />
36
36
  </xs:complexType>
@@ -48,15 +48,16 @@
48
48
 
49
49
  <xs:complexType name="CommonPropertiesType">
50
50
  <xs:sequence>
51
+ <!-- A flag to indicate auto arming -->
52
+ <xs:element name="autoload" type="cms:BoolType" />
51
53
  <xs:element name="description" type="cms:DescriptionStringType" />
52
- <!-- A flag to disable to cue -->
54
+ <!-- A flag to enable|disable to cue -->
53
55
  <xs:element name="enabled" type="cms:BoolType" />
54
- <xs:element name="id" type="xs:string" />
55
- <!-- A flag to indicate auto arming -->
56
- <xs:element name="loaded" type="cms:BoolType" />
56
+ <!-- Its own id as uuid -->
57
+ <xs:element name="id" type="cms:UuidType" />
57
58
  <xs:element name="loop" type="cms:LoopType" /> <!-- -1/0/n -->
58
- <!-- Its time mark -->
59
59
  <xs:element name="name" type="cms:NameStringType" />
60
+ <!-- Its time mark -->
60
61
  <xs:element name="offset" type="cms:CTimecodeType" />
61
62
  <!-- Execution options -->
62
63
  <xs:element name="post_go" type="cms:PostGoType" /> <!-- Types: pause/go/go_at_end -->
@@ -65,10 +66,8 @@
65
66
  <xs:element name="target" type="cms:TargetType" /> <!-- target uuid or none -->
66
67
  <!-- Timecode behaviour flag -->
67
68
  <xs:element name="timecode" type="cms:BoolType" />
68
- <!-- Its own uuid -->
69
- <!-- <xs:element name="ui_properties" type="cms:UuidType" /> -->
70
- <xs:element name="uuid" type="cms:UuidType" />
71
- <!-- <xs:element name="ui_properties" type="cms:UiPropertiesType" /> -->
69
+ <!-- Dictionary of options for UI settings -->
70
+ <xs:element name="ui_properties" type="cms:UiPropertiesType" />
72
71
  </xs:sequence>
73
72
  </xs:complexType>
74
73
 
@@ -88,9 +87,7 @@
88
87
  <xs:choice minOccurs="0" maxOccurs="unbounded">
89
88
  <!-- Can have any other cuelists, recursively -->
90
89
  <xs:element name="CueList" type="cms:CueListType" />
91
- <!-- Can have any cues -->
92
- <!-- <xs:element name="Cue" type="cms:CueType" /> -->
93
- <!-- Can be also specific type cues -->
90
+ <!-- Can have any specific type cues -->
94
91
  <xs:element name="AudioCue" type="cms:AudioCueType" />
95
92
  <xs:element name="DmxCue" type="cms:DmxCueType" />
96
93
  <xs:element name="VideoCue" type="cms:VideoCueType" />
@@ -103,13 +100,95 @@
103
100
  <xs:complexContent>
104
101
  <xs:extension base="cms:CueType">
105
102
  <xs:sequence>
106
- <xs:element name="media" type="cms:MediaType" />
103
+ <xs:element name="Media" type="cms:MediaType" />
107
104
  <xs:element name="outputs" type="cms:OutputsType" />
108
105
  </xs:sequence>
109
106
  </xs:extension>
110
107
  </xs:complexContent>
111
108
  </xs:complexType>
112
109
 
110
+ <!-- COMPLEX DATA TYPES -->
111
+ <xs:complexType name="CTimecodeType">
112
+ <!-- Can be a timecode field or an empty NoneType field -->
113
+ <xs:choice minOccurs="0">
114
+ <xs:element name="CTimecode" type="cms:TimecodeType" />
115
+ </xs:choice>
116
+ </xs:complexType>
117
+
118
+ <xs:complexType name="Coordinates">
119
+ <xs:sequence>
120
+ <xs:element name="x" type="xs:integer" />
121
+ <xs:element name="y" type="xs:integer" />
122
+ </xs:sequence>
123
+ </xs:complexType>
124
+
125
+ <xs:complexType name="MediaType">
126
+ <xs:sequence minOccurs="0" maxOccurs="1">
127
+ <xs:element name="file_name" type="xs:string" />
128
+ <xs:element name="regions" type="cms:RegionsType" />
129
+ </xs:sequence>
130
+ </xs:complexType>
131
+
132
+ <xs:complexType name="OutputsType">
133
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
134
+ <xs:element name="AudioCueOutput" type="cms:AudioCueOutputsType" />
135
+ <xs:element name="VideoCueOutput" type="cms:VideoCueOutputsType" />
136
+ </xs:choice>
137
+ </xs:complexType>
138
+
139
+ <xs:complexType name="RegionsType">
140
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">
141
+ <xs:element name="Region" type="cms:RegionType" />
142
+ </xs:sequence>
143
+ </xs:complexType>
144
+
145
+ <xs:complexType name="RegionType">
146
+ <xs:sequence minOccurs="1">
147
+ <xs:element name="id" type="xs:nonNegativeInteger" />
148
+ <xs:element name="loop" type="xs:nonNegativeInteger" />
149
+ <xs:element name="in_time" type="cms:CTimecodeType" />
150
+ <xs:element name="out_time" type="cms:CTimecodeType" />
151
+ </xs:sequence>
152
+ </xs:complexType>
153
+
154
+ <xs:complexType name="UiPropertiesType">
155
+ <xs:all>
156
+ <xs:element name="id" type="xs:integer" minOccurs="0" />
157
+ <xs:element name="timeline_position" type="cms:Coordinates" minOccurs="0" />
158
+ <xs:element name="warning" type="xs:integer" minOccurs="0" />
159
+ </xs:all>
160
+ </xs:complexType>
161
+
162
+ <!-- ACTION -->
163
+ <xs:complexType name="ActionCueType">
164
+ <xs:complexContent>
165
+ <xs:extension base="cms:CueType">
166
+ <xs:sequence>
167
+ <xs:element name="action_target" type="cms:TargetType" />
168
+ <xs:element name="action_type" type="cms:ActionType" minOccurs="0" />
169
+ </xs:sequence>
170
+ </xs:extension>
171
+ </xs:complexContent>
172
+ </xs:complexType>
173
+
174
+ <xs:simpleType name="ActionType">
175
+ <xs:restriction base="xs:string">
176
+ <xs:enumeration value="play" />
177
+ <xs:enumeration value="pause" />
178
+ <xs:enumeration value="stop" />
179
+ <xs:enumeration value="load" />
180
+ <xs:enumeration value="unload" />
181
+ <xs:enumeration value="enable" />
182
+ <xs:enumeration value="disable" />
183
+ <xs:enumeration value="fade_in" />
184
+ <xs:enumeration value="fade_out" />
185
+ <xs:enumeration value="wait" />
186
+ <xs:enumeration value="go_to" />
187
+ <xs:enumeration value="pause_project" />
188
+ <xs:enumeration value="resume_project" />
189
+ </xs:restriction>
190
+ </xs:simpleType>
191
+
113
192
  <!-- AUDIO -->
114
193
  <xs:complexType name="AudioCueType">
115
194
  <xs:complexContent>
@@ -174,8 +253,8 @@
174
253
  <xs:sequence>
175
254
  <xs:element name="top_left" type="cms:Coordinates" />
176
255
  <xs:element name="top_right" type="cms:Coordinates" />
177
- <xs:element name="bott_left" type="cms:Coordinates" />
178
- <xs:element name="bott_right" type="cms:Coordinates" />
256
+ <xs:element name="bottom_left" type="cms:Coordinates" />
257
+ <xs:element name="bottom_right" type="cms:Coordinates" />
179
258
  </xs:sequence>
180
259
  </xs:complexType>
181
260
 
@@ -241,87 +320,6 @@
241
320
  </xs:simpleContent>
242
321
  </xs:complexType>
243
322
 
244
- <!-- ACTION -->
245
- <xs:complexType name="ActionCueType">
246
- <xs:complexContent>
247
- <xs:extension base="cms:CueType">
248
- <xs:sequence>
249
- <xs:element name="action_type" type="cms:ActionType" minOccurs="0" />
250
- <xs:element name="action_target" type="cms:TargetType" />
251
- </xs:sequence>
252
- </xs:extension>
253
- </xs:complexContent>
254
- </xs:complexType>
255
-
256
- <xs:simpleType name="ActionType">
257
- <xs:restriction base="xs:string">
258
- <xs:enumeration value="play" />
259
- <xs:enumeration value="pause" />
260
- <xs:enumeration value="stop" />
261
- <xs:enumeration value="load" />
262
- <xs:enumeration value="unload" />
263
- <xs:enumeration value="enable" />
264
- <xs:enumeration value="disable" />
265
- <xs:enumeration value="fade_in" />
266
- <xs:enumeration value="fade_out" />
267
- <xs:enumeration value="wait" />
268
- <xs:enumeration value="go_to" />
269
- <xs:enumeration value="pause_project" />
270
- <xs:enumeration value="resume_project" />
271
- </xs:restriction>
272
- </xs:simpleType>
273
-
274
- <!-- COMPLEX DATA TYPES -->
275
- <xs:complexType name="CTimecodeType">
276
- <!-- Can be a timecode field or an empty NoneType field -->
277
- <xs:choice minOccurs="0">
278
- <xs:element name="CTimecode" type="cms:TimecodeType" />
279
- </xs:choice>
280
- </xs:complexType>
281
-
282
- <xs:complexType name="Coordinates">
283
- <xs:sequence>
284
- <xs:element name="x" type="xs:integer" />
285
- <xs:element name="y" type="xs:integer" />
286
- </xs:sequence>
287
- </xs:complexType>
288
-
289
- <xs:complexType name="MediaType">
290
- <xs:sequence minOccurs="0" maxOccurs="1">
291
- <xs:element name="file_name" type="xs:string" />
292
- <xs:element name="regions" type="cms:RegionsType" />
293
- </xs:sequence>
294
- </xs:complexType>
295
-
296
- <xs:complexType name="OutputsType">
297
- <xs:choice minOccurs="0" maxOccurs="unbounded">
298
- <xs:element name="AudioCueOutput" type="cms:AudioCueOutputsType" />
299
- <xs:element name="VideoCueOutput" type="cms:VideoCueOutputsType" />
300
- </xs:choice>
301
- </xs:complexType>
302
-
303
- <xs:complexType name="RegionsType">
304
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
305
- <xs:element name="region" type="cms:RegionType" />
306
- </xs:sequence>
307
- </xs:complexType>
308
-
309
- <xs:complexType name="RegionType">
310
- <xs:sequence minOccurs="1">
311
- <xs:element name="id" type="xs:nonNegativeInteger" />
312
- <xs:element name="loop" type="xs:nonNegativeInteger" />
313
- <xs:element name="in_time" type="cms:CTimecodeType" />
314
- <xs:element name="out_time" type="cms:CTimecodeType" />
315
- </xs:sequence>
316
- </xs:complexType>
317
-
318
- <xs:complexType name="UiPropertiesType">
319
- <xs:all minOccurs="0">
320
- <xs:element name="timeline_position" type="cms:Coordinates" />
321
- <xs:element name="warning" type="xs:integer" />
322
- </xs:all>
323
- </xs:complexType>
324
-
325
323
  <!-- SIMPLE DATA TYPES -->
326
324
  <xs:simpleType name="BoolType">
327
325
  <xs:restriction base="xs:string">
File without changes
File without changes