threefive 3.0.78__tar.gz → 3.0.83__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.
- {threefive-3.0.78 → threefive-3.0.83}/PKG-INFO +65 -18
- {threefive-3.0.78 → threefive-3.0.83}/README.md +63 -12
- {threefive-3.0.78 → threefive-3.0.83}/pyproject.toml +3 -6
- {threefive-3.0.78 → threefive-3.0.83}/threefive/new_reader.py +14 -3
- {threefive-3.0.78 → threefive-3.0.83}/threefive/segment.py +3 -2
- {threefive-3.0.78 → threefive-3.0.83}/threefive/version.py +1 -1
- {threefive-3.0.78 → threefive-3.0.83}/threefive.egg-info/PKG-INFO +65 -18
- {threefive-3.0.78 → threefive-3.0.83}/threefive.egg-info/SOURCES.txt +0 -1
- threefive-3.0.78/threefive.egg-info/requires.txt +0 -2
- {threefive-3.0.78 → threefive-3.0.83}/LICENSE +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/setup.cfg +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/__init__.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/aac.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/base.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/bitn.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/bump.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/cli.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/commands.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/crc.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/crctable.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/cue.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/descriptors.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/encode.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/gums.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/hls.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/hlsprofile.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/hlstags.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/iframes.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/packetdata.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/pmt.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/section.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/segmentation.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/sixfix.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/speedo.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/stream.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/streamtypes.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/stuff.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/superkabuki.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/throttle.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/udp.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/upids.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/uxp.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive/xml.py +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive.egg-info/dependency_links.txt +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive.egg-info/entry_points.txt +0 -0
- {threefive-3.0.78 → threefive-3.0.83}/threefive.egg-info/top_level.txt +0 -0
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: threefive
|
|
3
|
-
Version: 3.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 3.0.83
|
|
4
|
+
Summary: threefive is The #1 SCTE-35 Decoder and Encoder on the Planet.
|
|
5
5
|
Author-email: AdrianofDoom <spam@iodisco.com>
|
|
6
6
|
License-Expression: Sleepycat
|
|
7
7
|
Project-URL: Homepage, https://github.com/superkabuki/threefive
|
|
8
8
|
Project-URL: Issues, https://github.com/superkabuki/threefive/issues
|
|
9
9
|
Classifier: Environment :: Console
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Classifier: Operating System :: POSIX :: BSD :: OpenBSD
|
|
12
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
13
11
|
Classifier: Topic :: Multimedia :: Video
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
13
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -17,16 +15,17 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
17
15
|
Requires-Python: >=3.9
|
|
18
16
|
Description-Content-Type: text/markdown
|
|
19
17
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: pyaesfu
|
|
21
|
-
Requires-Dist: srtfu>=0.0.11
|
|
22
18
|
Dynamic: license-file
|
|
23
19
|
|
|
24
|
-
###
|
|
25
|
-
|
|
20
|
+
### It is now official, phase three of threefive's global domination has begun. Behold [threefive.js](https://github.com/keithah/threefive.js)
|
|
21
|
+
_threefive has been ported to Javascript, C#, and Go._
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
26
25
|
|
|
27
26
|
# [ threefive ]
|
|
28
27
|
|
|
29
|
-
>
|
|
28
|
+
> _... If someone says they don't use threefive for SCTE-35, they're either drunk or they're lying_. <BR> ~Adrian
|
|
30
29
|
|
|
31
30
|
## https://github.com/superkabuki/threefive
|
|
32
31
|
|
|
@@ -47,6 +46,28 @@ ___
|
|
|
47
46
|
|
|
48
47
|
___
|
|
49
48
|
|
|
49
|
+
# Tip of the week.
|
|
50
|
+
## Q. How do I get a list of all the SCTE-35 cues in a stream?
|
|
51
|
+
## A. Like this
|
|
52
|
+
```py3
|
|
53
|
+
from threefive import Stream
|
|
54
|
+
|
|
55
|
+
strm=Stream('some_video.ts')
|
|
56
|
+
list_o_cues=[]
|
|
57
|
+
for cue in strm.decode_next(): # Stream.decode_next is a generator
|
|
58
|
+
list_o_cues.append(cue) # these will be threefive.Cue instances
|
|
59
|
+
|
|
60
|
+
# then you can do stuff like
|
|
61
|
+
|
|
62
|
+
for cue in list_o_cues:
|
|
63
|
+
|
|
64
|
+
print(cue.xml())
|
|
65
|
+
|
|
66
|
+
print(cue.command)
|
|
67
|
+
|
|
68
|
+
cue.show()
|
|
69
|
+
```
|
|
70
|
+
* I have always felt that if you use a library, you shouldn't have to write a lot of code.
|
|
50
71
|
|
|
51
72
|
|
|
52
73
|
### [ News ]
|
|
@@ -58,14 +79,13 @@ ___
|
|
|
58
79
|
* I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
|
|
59
80
|
___
|
|
60
81
|
|
|
61
|
-
## [ Latest version is v3.0.
|
|
82
|
+
## [ Latest version is v3.0.83 ]
|
|
62
83
|
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
84
|
+
* __v3.0.83__ is to fix a bug 3.0.81 related to AES decryption..
|
|
85
|
+
* threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
|
|
86
|
+
* __threefive now has NO External Dependencies__
|
|
87
|
+
* SRT and AES support is now optional
|
|
66
88
|
* __threefive is fully python v3.14 compliant__
|
|
67
|
-
* I fixed everything they broke/changed between v3.09 and 3.14.
|
|
68
|
-
* 0 deprecation warnings.
|
|
69
89
|
* __No more setup tools!__ threefive now uses a __toml file and a Makefile__ to generate packages,
|
|
70
90
|
* I'm just trying to fit in with the cool python kids.
|
|
71
91
|
* __fix__ for addressable tv Upids
|
|
@@ -80,6 +100,8 @@ ___
|
|
|
80
100
|
|
|
81
101
|
# [__[Examples]__](https://github.com/superkabuki/threefive/tree/main/examples)
|
|
82
102
|
|
|
103
|
+
|
|
104
|
+
|
|
83
105
|
# [ Documentation ]
|
|
84
106
|
|
|
85
107
|
* __use threefive on the web__
|
|
@@ -111,20 +133,45 @@ ___
|
|
|
111
133
|
</samp>
|
|
112
134
|
|
|
113
135
|
## [Install]
|
|
114
|
-
*
|
|
136
|
+
* __python3 via pip__
|
|
115
137
|
```rebol
|
|
116
138
|
python3 -mpip install threefive
|
|
117
139
|
```
|
|
118
|
-
*
|
|
140
|
+
* __pypy3 via pip__
|
|
119
141
|
```rebol
|
|
120
142
|
pypy3 -mpip install threefive
|
|
121
143
|
```
|
|
122
|
-
*
|
|
144
|
+
* __To add SRT support__
|
|
145
|
+
```py3
|
|
146
|
+
python3 -m pip install srtfu
|
|
147
|
+
```
|
|
148
|
+
* __To add Automatic AES decryption__
|
|
149
|
+
```py3
|
|
150
|
+
python3 -mpip install pyaes
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
* __From the git repo__
|
|
154
|
+
|
|
123
155
|
```rebol
|
|
124
156
|
git clone https://github.com/superkabuki/scte35.git
|
|
125
157
|
cd threefive
|
|
126
158
|
make install
|
|
127
159
|
```
|
|
160
|
+
* I've jazzed up the makefile to make it easier to install for different python versions and pypy3
|
|
161
|
+
```rebol
|
|
162
|
+
git clone https://github.com/superkabuki/scte35.git
|
|
163
|
+
cd threefive
|
|
164
|
+
|
|
165
|
+
make install py3=pypy3
|
|
166
|
+
|
|
167
|
+
# OR
|
|
168
|
+
|
|
169
|
+
make install py3=python3.14
|
|
170
|
+
|
|
171
|
+
# works for any python in your path or use a full path if needed.
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
|
|
128
175
|
___
|
|
129
176
|
|
|
130
177
|
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
###
|
|
2
|
-
|
|
1
|
+
### It is now official, phase three of threefive's global domination has begun. Behold [threefive.js](https://github.com/keithah/threefive.js)
|
|
2
|
+
_threefive has been ported to Javascript, C#, and Go._
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
3
6
|
|
|
4
7
|
# [ threefive ]
|
|
5
8
|
|
|
6
|
-
>
|
|
9
|
+
> _... If someone says they don't use threefive for SCTE-35, they're either drunk or they're lying_. <BR> ~Adrian
|
|
7
10
|
|
|
8
11
|
## https://github.com/superkabuki/threefive
|
|
9
12
|
|
|
@@ -24,6 +27,28 @@ ___
|
|
|
24
27
|
|
|
25
28
|
___
|
|
26
29
|
|
|
30
|
+
# Tip of the week.
|
|
31
|
+
## Q. How do I get a list of all the SCTE-35 cues in a stream?
|
|
32
|
+
## A. Like this
|
|
33
|
+
```py3
|
|
34
|
+
from threefive import Stream
|
|
35
|
+
|
|
36
|
+
strm=Stream('some_video.ts')
|
|
37
|
+
list_o_cues=[]
|
|
38
|
+
for cue in strm.decode_next(): # Stream.decode_next is a generator
|
|
39
|
+
list_o_cues.append(cue) # these will be threefive.Cue instances
|
|
40
|
+
|
|
41
|
+
# then you can do stuff like
|
|
42
|
+
|
|
43
|
+
for cue in list_o_cues:
|
|
44
|
+
|
|
45
|
+
print(cue.xml())
|
|
46
|
+
|
|
47
|
+
print(cue.command)
|
|
48
|
+
|
|
49
|
+
cue.show()
|
|
50
|
+
```
|
|
51
|
+
* I have always felt that if you use a library, you shouldn't have to write a lot of code.
|
|
27
52
|
|
|
28
53
|
|
|
29
54
|
### [ News ]
|
|
@@ -35,14 +60,13 @@ ___
|
|
|
35
60
|
* I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
|
|
36
61
|
___
|
|
37
62
|
|
|
38
|
-
## [ Latest version is v3.0.
|
|
63
|
+
## [ Latest version is v3.0.83 ]
|
|
39
64
|
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
65
|
+
* __v3.0.83__ is to fix a bug 3.0.81 related to AES decryption..
|
|
66
|
+
* threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
|
|
67
|
+
* __threefive now has NO External Dependencies__
|
|
68
|
+
* SRT and AES support is now optional
|
|
43
69
|
* __threefive is fully python v3.14 compliant__
|
|
44
|
-
* I fixed everything they broke/changed between v3.09 and 3.14.
|
|
45
|
-
* 0 deprecation warnings.
|
|
46
70
|
* __No more setup tools!__ threefive now uses a __toml file and a Makefile__ to generate packages,
|
|
47
71
|
* I'm just trying to fit in with the cool python kids.
|
|
48
72
|
* __fix__ for addressable tv Upids
|
|
@@ -57,6 +81,8 @@ ___
|
|
|
57
81
|
|
|
58
82
|
# [__[Examples]__](https://github.com/superkabuki/threefive/tree/main/examples)
|
|
59
83
|
|
|
84
|
+
|
|
85
|
+
|
|
60
86
|
# [ Documentation ]
|
|
61
87
|
|
|
62
88
|
* __use threefive on the web__
|
|
@@ -88,20 +114,45 @@ ___
|
|
|
88
114
|
</samp>
|
|
89
115
|
|
|
90
116
|
## [Install]
|
|
91
|
-
*
|
|
117
|
+
* __python3 via pip__
|
|
92
118
|
```rebol
|
|
93
119
|
python3 -mpip install threefive
|
|
94
120
|
```
|
|
95
|
-
*
|
|
121
|
+
* __pypy3 via pip__
|
|
96
122
|
```rebol
|
|
97
123
|
pypy3 -mpip install threefive
|
|
98
124
|
```
|
|
99
|
-
*
|
|
125
|
+
* __To add SRT support__
|
|
126
|
+
```py3
|
|
127
|
+
python3 -m pip install srtfu
|
|
128
|
+
```
|
|
129
|
+
* __To add Automatic AES decryption__
|
|
130
|
+
```py3
|
|
131
|
+
python3 -mpip install pyaes
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
* __From the git repo__
|
|
135
|
+
|
|
100
136
|
```rebol
|
|
101
137
|
git clone https://github.com/superkabuki/scte35.git
|
|
102
138
|
cd threefive
|
|
103
139
|
make install
|
|
104
140
|
```
|
|
141
|
+
* I've jazzed up the makefile to make it easier to install for different python versions and pypy3
|
|
142
|
+
```rebol
|
|
143
|
+
git clone https://github.com/superkabuki/scte35.git
|
|
144
|
+
cd threefive
|
|
145
|
+
|
|
146
|
+
make install py3=pypy3
|
|
147
|
+
|
|
148
|
+
# OR
|
|
149
|
+
|
|
150
|
+
make install py3=python3.14
|
|
151
|
+
|
|
152
|
+
# works for any python in your path or use a full path if needed.
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
|
|
105
156
|
___
|
|
106
157
|
|
|
107
158
|
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
|
|
2
2
|
[project]
|
|
3
3
|
name = "threefive"
|
|
4
|
-
version = "3.0.
|
|
4
|
+
version = "3.0.83"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name="AdrianofDoom", email="spam@iodisco.com" },
|
|
7
7
|
]
|
|
8
|
-
description = "
|
|
8
|
+
description = "threefive is The #1 SCTE-35 Decoder and Encoder on the Planet."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
11
11
|
dependencies=[
|
|
12
|
-
|
|
13
|
-
"srtfu >= 0.0.11",
|
|
12
|
+
|
|
14
13
|
]
|
|
15
14
|
|
|
16
15
|
|
|
@@ -18,8 +17,6 @@ dependencies=[
|
|
|
18
17
|
classifiers = [
|
|
19
18
|
"Environment :: Console",
|
|
20
19
|
"Operating System :: OS Independent",
|
|
21
|
-
"Operating System :: POSIX :: BSD :: OpenBSD",
|
|
22
|
-
"Operating System :: POSIX :: Linux",
|
|
23
20
|
"Topic :: Multimedia :: Video",
|
|
24
21
|
"Programming Language :: Python :: 3.9",
|
|
25
22
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
@@ -7,8 +7,11 @@ Home of the reader function
|
|
|
7
7
|
import socket
|
|
8
8
|
import sys
|
|
9
9
|
import urllib.request
|
|
10
|
-
|
|
11
|
-
from srtfu import SRTfu, SRTO_TRANSTYPE, SRT_LIVE, SRTO_RCVSYN, SRTO_RCVBUF
|
|
10
|
+
try:
|
|
11
|
+
from srtfu import SRTfu, SRTO_TRANSTYPE, SRT_LIVE, SRTO_RCVSYN, SRTO_RCVBUF
|
|
12
|
+
HAS_SRT=True
|
|
13
|
+
except ImportError:
|
|
14
|
+
HAS_SRT=False
|
|
12
15
|
from .udp import udp_receiver, mcast_ttl
|
|
13
16
|
from .stuff import blue, ERR, pif, print2
|
|
14
17
|
|
|
@@ -32,6 +35,14 @@ def corsreader(uri, headers={}):
|
|
|
32
35
|
return reader(uri, headers=all_headers)
|
|
33
36
|
|
|
34
37
|
|
|
38
|
+
def try_srt(url, headers={}):
|
|
39
|
+
if HAS_SRT:
|
|
40
|
+
return _do_srt(uri, headers=headers)
|
|
41
|
+
else:
|
|
42
|
+
print2('pip install srtfu to add SRT support')
|
|
43
|
+
return False
|
|
44
|
+
|
|
45
|
+
|
|
35
46
|
def reader(uri, headers={}):
|
|
36
47
|
"""
|
|
37
48
|
|
|
@@ -74,7 +85,7 @@ def reader(uri, headers={}):
|
|
|
74
85
|
return urllib.request.urlopen(req)
|
|
75
86
|
# SRT
|
|
76
87
|
if uri.startswith("srt://"):
|
|
77
|
-
return
|
|
88
|
+
return try_srt(uri, headers=headers)
|
|
78
89
|
# File
|
|
79
90
|
return open(uri, "rb")
|
|
80
91
|
|
|
@@ -5,12 +5,13 @@ The threefive.Segment class
|
|
|
5
5
|
import os
|
|
6
6
|
from .new_reader import reader
|
|
7
7
|
from .stream import Stream
|
|
8
|
-
|
|
8
|
+
from .stuff import print2
|
|
9
9
|
|
|
10
10
|
AES = True
|
|
11
11
|
try:
|
|
12
|
-
import
|
|
12
|
+
import pyaes
|
|
13
13
|
except ImportError:
|
|
14
|
+
print2('pip install pyaes for AES support')
|
|
14
15
|
AES = False
|
|
15
16
|
|
|
16
17
|
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: threefive
|
|
3
|
-
Version: 3.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 3.0.83
|
|
4
|
+
Summary: threefive is The #1 SCTE-35 Decoder and Encoder on the Planet.
|
|
5
5
|
Author-email: AdrianofDoom <spam@iodisco.com>
|
|
6
6
|
License-Expression: Sleepycat
|
|
7
7
|
Project-URL: Homepage, https://github.com/superkabuki/threefive
|
|
8
8
|
Project-URL: Issues, https://github.com/superkabuki/threefive/issues
|
|
9
9
|
Classifier: Environment :: Console
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Classifier: Operating System :: POSIX :: BSD :: OpenBSD
|
|
12
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
13
11
|
Classifier: Topic :: Multimedia :: Video
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
13
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -17,16 +15,17 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
17
15
|
Requires-Python: >=3.9
|
|
18
16
|
Description-Content-Type: text/markdown
|
|
19
17
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: pyaesfu
|
|
21
|
-
Requires-Dist: srtfu>=0.0.11
|
|
22
18
|
Dynamic: license-file
|
|
23
19
|
|
|
24
|
-
###
|
|
25
|
-
|
|
20
|
+
### It is now official, phase three of threefive's global domination has begun. Behold [threefive.js](https://github.com/keithah/threefive.js)
|
|
21
|
+
_threefive has been ported to Javascript, C#, and Go._
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
26
25
|
|
|
27
26
|
# [ threefive ]
|
|
28
27
|
|
|
29
|
-
>
|
|
28
|
+
> _... If someone says they don't use threefive for SCTE-35, they're either drunk or they're lying_. <BR> ~Adrian
|
|
30
29
|
|
|
31
30
|
## https://github.com/superkabuki/threefive
|
|
32
31
|
|
|
@@ -47,6 +46,28 @@ ___
|
|
|
47
46
|
|
|
48
47
|
___
|
|
49
48
|
|
|
49
|
+
# Tip of the week.
|
|
50
|
+
## Q. How do I get a list of all the SCTE-35 cues in a stream?
|
|
51
|
+
## A. Like this
|
|
52
|
+
```py3
|
|
53
|
+
from threefive import Stream
|
|
54
|
+
|
|
55
|
+
strm=Stream('some_video.ts')
|
|
56
|
+
list_o_cues=[]
|
|
57
|
+
for cue in strm.decode_next(): # Stream.decode_next is a generator
|
|
58
|
+
list_o_cues.append(cue) # these will be threefive.Cue instances
|
|
59
|
+
|
|
60
|
+
# then you can do stuff like
|
|
61
|
+
|
|
62
|
+
for cue in list_o_cues:
|
|
63
|
+
|
|
64
|
+
print(cue.xml())
|
|
65
|
+
|
|
66
|
+
print(cue.command)
|
|
67
|
+
|
|
68
|
+
cue.show()
|
|
69
|
+
```
|
|
70
|
+
* I have always felt that if you use a library, you shouldn't have to write a lot of code.
|
|
50
71
|
|
|
51
72
|
|
|
52
73
|
### [ News ]
|
|
@@ -58,14 +79,13 @@ ___
|
|
|
58
79
|
* I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
|
|
59
80
|
___
|
|
60
81
|
|
|
61
|
-
## [ Latest version is v3.0.
|
|
82
|
+
## [ Latest version is v3.0.83 ]
|
|
62
83
|
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
84
|
+
* __v3.0.83__ is to fix a bug 3.0.81 related to AES decryption..
|
|
85
|
+
* threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
|
|
86
|
+
* __threefive now has NO External Dependencies__
|
|
87
|
+
* SRT and AES support is now optional
|
|
66
88
|
* __threefive is fully python v3.14 compliant__
|
|
67
|
-
* I fixed everything they broke/changed between v3.09 and 3.14.
|
|
68
|
-
* 0 deprecation warnings.
|
|
69
89
|
* __No more setup tools!__ threefive now uses a __toml file and a Makefile__ to generate packages,
|
|
70
90
|
* I'm just trying to fit in with the cool python kids.
|
|
71
91
|
* __fix__ for addressable tv Upids
|
|
@@ -80,6 +100,8 @@ ___
|
|
|
80
100
|
|
|
81
101
|
# [__[Examples]__](https://github.com/superkabuki/threefive/tree/main/examples)
|
|
82
102
|
|
|
103
|
+
|
|
104
|
+
|
|
83
105
|
# [ Documentation ]
|
|
84
106
|
|
|
85
107
|
* __use threefive on the web__
|
|
@@ -111,20 +133,45 @@ ___
|
|
|
111
133
|
</samp>
|
|
112
134
|
|
|
113
135
|
## [Install]
|
|
114
|
-
*
|
|
136
|
+
* __python3 via pip__
|
|
115
137
|
```rebol
|
|
116
138
|
python3 -mpip install threefive
|
|
117
139
|
```
|
|
118
|
-
*
|
|
140
|
+
* __pypy3 via pip__
|
|
119
141
|
```rebol
|
|
120
142
|
pypy3 -mpip install threefive
|
|
121
143
|
```
|
|
122
|
-
*
|
|
144
|
+
* __To add SRT support__
|
|
145
|
+
```py3
|
|
146
|
+
python3 -m pip install srtfu
|
|
147
|
+
```
|
|
148
|
+
* __To add Automatic AES decryption__
|
|
149
|
+
```py3
|
|
150
|
+
python3 -mpip install pyaes
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
* __From the git repo__
|
|
154
|
+
|
|
123
155
|
```rebol
|
|
124
156
|
git clone https://github.com/superkabuki/scte35.git
|
|
125
157
|
cd threefive
|
|
126
158
|
make install
|
|
127
159
|
```
|
|
160
|
+
* I've jazzed up the makefile to make it easier to install for different python versions and pypy3
|
|
161
|
+
```rebol
|
|
162
|
+
git clone https://github.com/superkabuki/scte35.git
|
|
163
|
+
cd threefive
|
|
164
|
+
|
|
165
|
+
make install py3=pypy3
|
|
166
|
+
|
|
167
|
+
# OR
|
|
168
|
+
|
|
169
|
+
make install py3=python3.14
|
|
170
|
+
|
|
171
|
+
# works for any python in your path or use a full path if needed.
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
|
|
128
175
|
___
|
|
129
176
|
|
|
130
177
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|