threefive 3.0.77__tar.gz → 3.0.81__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.
Files changed (46) hide show
  1. {threefive-3.0.77 → threefive-3.0.81}/PKG-INFO +42 -15
  2. {threefive-3.0.77 → threefive-3.0.81}/README.md +41 -10
  3. {threefive-3.0.77 → threefive-3.0.81}/pyproject.toml +2 -5
  4. {threefive-3.0.77 → threefive-3.0.81}/threefive/new_reader.py +15 -2
  5. {threefive-3.0.77 → threefive-3.0.81}/threefive/segment.py +5 -4
  6. {threefive-3.0.77 → threefive-3.0.81}/threefive/version.py +1 -1
  7. {threefive-3.0.77 → threefive-3.0.81}/threefive.egg-info/PKG-INFO +42 -15
  8. {threefive-3.0.77 → threefive-3.0.81}/threefive.egg-info/SOURCES.txt +0 -1
  9. threefive-3.0.77/threefive.egg-info/requires.txt +0 -2
  10. {threefive-3.0.77 → threefive-3.0.81}/LICENSE +0 -0
  11. {threefive-3.0.77 → threefive-3.0.81}/setup.cfg +0 -0
  12. {threefive-3.0.77 → threefive-3.0.81}/threefive/__init__.py +0 -0
  13. {threefive-3.0.77 → threefive-3.0.81}/threefive/aac.py +0 -0
  14. {threefive-3.0.77 → threefive-3.0.81}/threefive/base.py +0 -0
  15. {threefive-3.0.77 → threefive-3.0.81}/threefive/bitn.py +0 -0
  16. {threefive-3.0.77 → threefive-3.0.81}/threefive/bump.py +0 -0
  17. {threefive-3.0.77 → threefive-3.0.81}/threefive/cli.py +0 -0
  18. {threefive-3.0.77 → threefive-3.0.81}/threefive/commands.py +0 -0
  19. {threefive-3.0.77 → threefive-3.0.81}/threefive/crc.py +0 -0
  20. {threefive-3.0.77 → threefive-3.0.81}/threefive/crctable.py +0 -0
  21. {threefive-3.0.77 → threefive-3.0.81}/threefive/cue.py +0 -0
  22. {threefive-3.0.77 → threefive-3.0.81}/threefive/descriptors.py +0 -0
  23. {threefive-3.0.77 → threefive-3.0.81}/threefive/encode.py +0 -0
  24. {threefive-3.0.77 → threefive-3.0.81}/threefive/gums.py +0 -0
  25. {threefive-3.0.77 → threefive-3.0.81}/threefive/hls.py +0 -0
  26. {threefive-3.0.77 → threefive-3.0.81}/threefive/hlsprofile.py +0 -0
  27. {threefive-3.0.77 → threefive-3.0.81}/threefive/hlstags.py +0 -0
  28. {threefive-3.0.77 → threefive-3.0.81}/threefive/iframes.py +0 -0
  29. {threefive-3.0.77 → threefive-3.0.81}/threefive/packetdata.py +0 -0
  30. {threefive-3.0.77 → threefive-3.0.81}/threefive/pmt.py +0 -0
  31. {threefive-3.0.77 → threefive-3.0.81}/threefive/section.py +0 -0
  32. {threefive-3.0.77 → threefive-3.0.81}/threefive/segmentation.py +0 -0
  33. {threefive-3.0.77 → threefive-3.0.81}/threefive/sixfix.py +0 -0
  34. {threefive-3.0.77 → threefive-3.0.81}/threefive/speedo.py +0 -0
  35. {threefive-3.0.77 → threefive-3.0.81}/threefive/stream.py +0 -0
  36. {threefive-3.0.77 → threefive-3.0.81}/threefive/streamtypes.py +0 -0
  37. {threefive-3.0.77 → threefive-3.0.81}/threefive/stuff.py +0 -0
  38. {threefive-3.0.77 → threefive-3.0.81}/threefive/superkabuki.py +0 -0
  39. {threefive-3.0.77 → threefive-3.0.81}/threefive/throttle.py +0 -0
  40. {threefive-3.0.77 → threefive-3.0.81}/threefive/udp.py +0 -0
  41. {threefive-3.0.77 → threefive-3.0.81}/threefive/upids.py +0 -0
  42. {threefive-3.0.77 → threefive-3.0.81}/threefive/uxp.py +0 -0
  43. {threefive-3.0.77 → threefive-3.0.81}/threefive/xml.py +0 -0
  44. {threefive-3.0.77 → threefive-3.0.81}/threefive.egg-info/dependency_links.txt +0 -0
  45. {threefive-3.0.77 → threefive-3.0.81}/threefive.egg-info/entry_points.txt +0 -0
  46. {threefive-3.0.77 → threefive-3.0.81}/threefive.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: threefive
3
- Version: 3.0.77
3
+ Version: 3.0.81
4
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
@@ -8,8 +8,6 @@ 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,17 +15,19 @@ 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: pyaes
21
- Requires-Dist: srtfu>=0.0.11
22
18
  Dynamic: license-file
23
19
 
24
- #### Need to inject SCTE-35 into HLS? [X9k3.](https://github.com/superkabuki/x9k3)
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
+ _(ominous music plays in the background)_
26
22
 
27
23
  # [ threefive ]
24
+
25
+ > _... If someone says they don't use threefive for SCTE-35, they're either drunk or they're lying_. <BR> ~Adrian
26
+
28
27
  ## https://github.com/superkabuki/threefive
29
28
 
30
29
  ### threefive is the industry leading SCTE-35 tool.
30
+ #### Need to inject SCTE-35 into HLS? [X9k3.](https://github.com/superkabuki/x9k3)
31
31
 
32
32
  * __Decodes SCTE-35__ from `MPEGTS`✔ `Base64`✔ `Bytes`✔ `DASH`✔ `Hex` ✔ `HLS`✔ `Integers`✔ `JSON`✔ `XML`✔ `XML+Binary`✔
33
33
 
@@ -43,9 +43,10 @@ Dynamic: license-file
43
43
 
44
44
  ___
45
45
 
46
+
47
+
46
48
  ### [ News ]
47
49
 
48
- ### Death to PEP 668.
49
50
 
50
51
  * __threefive no longer uses setuptools for packaging__ and I know you don't care.
51
52
  * __Python3 vs. Pypy3__ [__parsing SCTE35 with threefive__](https://github.com/superkabuki/threefive_is_scte35#python3-vs-pypy3-running-threefive) (watch the cool video)
@@ -53,10 +54,11 @@ ___
53
54
  * I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
54
55
  ___
55
56
 
56
- ## [ Latest version is v3.0.77 ]
57
- * threefive cyclomatic complexity score is 1.9350282485875707, the standard libbrary is almost double. _lower is better_.
58
- * pylint score is __9.82 / 10__
59
- * __5116 lines of code with 2553 lines of comments__, that's a __sweet code/comment ratio__.
57
+ ## [ Latest version is v3.0.81 ]
58
+
59
+ * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
60
+ * __threefive now has NO External Dependencies__
61
+ * SRT and AES support is now optional
60
62
  * __threefive is fully python v3.14 compliant__
61
63
  * I fixed everything they broke/changed between v3.09 and 3.14.
62
64
  * 0 deprecation warnings.
@@ -105,20 +107,45 @@ ___
105
107
  </samp>
106
108
 
107
109
  ## [Install]
108
- * python3 via pip
110
+ * __python3 via pip__
109
111
  ```rebol
110
112
  python3 -mpip install threefive
111
113
  ```
112
- * pypy3
114
+ * __pypy3 via pip__
113
115
  ```rebol
114
116
  pypy3 -mpip install threefive
115
117
  ```
116
- * from the git repo
118
+ * __To add SRT support__
119
+ ```py3
120
+ python3 -m pip install srtfu
121
+ ```
122
+ * __To add Automatic AES decryption__
123
+ ```py3
124
+ python3 -mpip install pyaes
125
+ ```
126
+
127
+ * __From the git repo__
128
+
117
129
  ```rebol
118
130
  git clone https://github.com/superkabuki/scte35.git
119
131
  cd threefive
120
132
  make install
121
133
  ```
134
+ * I've jazzed up the makefile to make it easier to install for different python versions and pypy3
135
+ ```rebol
136
+ git clone https://github.com/superkabuki/scte35.git
137
+ cd threefive
138
+
139
+ make install py3=pypy3
140
+
141
+ # OR
142
+
143
+ make install py3=python3.14
144
+
145
+ # works for any python in your path or use a full path if needed.
146
+
147
+ ```
148
+
122
149
  ___
123
150
 
124
151
 
@@ -1,10 +1,14 @@
1
- #### Need to inject SCTE-35 into HLS? [X9k3.](https://github.com/superkabuki/x9k3)
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
+ _(ominous music plays in the background)_
3
3
 
4
4
  # [ threefive ]
5
+
6
+ > _... If someone says they don't use threefive for SCTE-35, they're either drunk or they're lying_. <BR> ~Adrian
7
+
5
8
  ## https://github.com/superkabuki/threefive
6
9
 
7
10
  ### threefive is the industry leading SCTE-35 tool.
11
+ #### Need to inject SCTE-35 into HLS? [X9k3.](https://github.com/superkabuki/x9k3)
8
12
 
9
13
  * __Decodes SCTE-35__ from `MPEGTS`✔ `Base64`✔ `Bytes`✔ `DASH`✔ `Hex` ✔ `HLS`✔ `Integers`✔ `JSON`✔ `XML`✔ `XML+Binary`✔
10
14
 
@@ -20,9 +24,10 @@
20
24
 
21
25
  ___
22
26
 
27
+
28
+
23
29
  ### [ News ]
24
30
 
25
- ### Death to PEP 668.
26
31
 
27
32
  * __threefive no longer uses setuptools for packaging__ and I know you don't care.
28
33
  * __Python3 vs. Pypy3__ [__parsing SCTE35 with threefive__](https://github.com/superkabuki/threefive_is_scte35#python3-vs-pypy3-running-threefive) (watch the cool video)
@@ -30,10 +35,11 @@ ___
30
35
  * I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
31
36
  ___
32
37
 
33
- ## [ Latest version is v3.0.77 ]
34
- * threefive cyclomatic complexity score is 1.9350282485875707, the standard libbrary is almost double. _lower is better_.
35
- * pylint score is __9.82 / 10__
36
- * __5116 lines of code with 2553 lines of comments__, that's a __sweet code/comment ratio__.
38
+ ## [ Latest version is v3.0.81 ]
39
+
40
+ * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
41
+ * __threefive now has NO External Dependencies__
42
+ * SRT and AES support is now optional
37
43
  * __threefive is fully python v3.14 compliant__
38
44
  * I fixed everything they broke/changed between v3.09 and 3.14.
39
45
  * 0 deprecation warnings.
@@ -82,20 +88,45 @@ ___
82
88
  </samp>
83
89
 
84
90
  ## [Install]
85
- * python3 via pip
91
+ * __python3 via pip__
86
92
  ```rebol
87
93
  python3 -mpip install threefive
88
94
  ```
89
- * pypy3
95
+ * __pypy3 via pip__
90
96
  ```rebol
91
97
  pypy3 -mpip install threefive
92
98
  ```
93
- * from the git repo
99
+ * __To add SRT support__
100
+ ```py3
101
+ python3 -m pip install srtfu
102
+ ```
103
+ * __To add Automatic AES decryption__
104
+ ```py3
105
+ python3 -mpip install pyaes
106
+ ```
107
+
108
+ * __From the git repo__
109
+
94
110
  ```rebol
95
111
  git clone https://github.com/superkabuki/scte35.git
96
112
  cd threefive
97
113
  make install
98
114
  ```
115
+ * I've jazzed up the makefile to make it easier to install for different python versions and pypy3
116
+ ```rebol
117
+ git clone https://github.com/superkabuki/scte35.git
118
+ cd threefive
119
+
120
+ make install py3=pypy3
121
+
122
+ # OR
123
+
124
+ make install py3=python3.14
125
+
126
+ # works for any python in your path or use a full path if needed.
127
+
128
+ ```
129
+
99
130
  ___
100
131
 
101
132
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "threefive"
4
- version = "3.0.77"
4
+ version = "3.0.81"
5
5
  authors = [
6
6
  { name="AdrianofDoom", email="spam@iodisco.com" },
7
7
  ]
@@ -9,8 +9,7 @@ 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
- "pyaes",
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",
@@ -8,7 +8,12 @@ import socket
8
8
  import sys
9
9
  import urllib.request
10
10
 
11
- from srtfu import SRTfu, SRTO_TRANSTYPE, SRT_LIVE, SRTO_RCVSYN, SRTO_RCVBUF
11
+ try:
12
+ from srtfu import SRTfu, SRTO_TRANSTYPE, SRT_LIVE, SRTO_RCVSYN, SRTO_RCVBUF
13
+
14
+ HAS_SRT = True
15
+ except ImportError:
16
+ HAS_SRT = False
12
17
  from .udp import udp_receiver, mcast_ttl
13
18
  from .stuff import blue, ERR, pif, print2
14
19
 
@@ -32,6 +37,14 @@ def corsreader(uri, headers={}):
32
37
  return reader(uri, headers=all_headers)
33
38
 
34
39
 
40
+ def try_srt(url, headers={}):
41
+ if HAS_SRT:
42
+ return _do_srt(uri, headers=headers)
43
+ else:
44
+ print2("pip install srtfu to add SRT support")
45
+ return False
46
+
47
+
35
48
  def reader(uri, headers={}):
36
49
  """
37
50
 
@@ -74,7 +87,7 @@ def reader(uri, headers={}):
74
87
  return urllib.request.urlopen(req)
75
88
  # SRT
76
89
  if uri.startswith("srt://"):
77
- return _do_srt(uri, headers=headers)
90
+ return try_srt(uri, headers=headers)
78
91
  # File
79
92
  return open(uri, "rb")
80
93
 
@@ -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 pyaes
12
+ import pyaesfu
13
13
  except ImportError:
14
+ print2("pip install pyaes for AES support")
14
15
  AES = False
15
16
 
16
17
 
@@ -83,10 +84,10 @@ class Segment(Stream):
83
84
  self.key = quay.read()
84
85
 
85
86
  def _aes_decrypt(self):
86
- mode = pyaes.AESModeOfOperationCBC(self.key, iv=self.iv)
87
+ mode = pyaesfu.AESModeOfOperationCBC(self.key, iv=self.iv)
87
88
  self._mk_tmp()
88
89
  with open(self.tmp, "wb") as outfile, reader(self.seg_uri) as infile:
89
- pyaes.decrypt_stream(mode, infile, outfile)
90
+ pyaesfu.decrypt_stream(mode, infile, outfile)
90
91
  self.seg_uri = self.tmp
91
92
 
92
93
  def _add_cue(self, cue):
@@ -5,6 +5,6 @@ from the cli tool run: threefive version
5
5
 
6
6
  MAJOR = 3
7
7
  MINOR = 0
8
- MINI = 77
8
+ MINI = 81
9
9
 
10
10
  version = f"{MAJOR}.{MINOR}.{MINI}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: threefive
3
- Version: 3.0.77
3
+ Version: 3.0.81
4
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
@@ -8,8 +8,6 @@ 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,17 +15,19 @@ 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: pyaes
21
- Requires-Dist: srtfu>=0.0.11
22
18
  Dynamic: license-file
23
19
 
24
- #### Need to inject SCTE-35 into HLS? [X9k3.](https://github.com/superkabuki/x9k3)
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
+ _(ominous music plays in the background)_
26
22
 
27
23
  # [ threefive ]
24
+
25
+ > _... If someone says they don't use threefive for SCTE-35, they're either drunk or they're lying_. <BR> ~Adrian
26
+
28
27
  ## https://github.com/superkabuki/threefive
29
28
 
30
29
  ### threefive is the industry leading SCTE-35 tool.
30
+ #### Need to inject SCTE-35 into HLS? [X9k3.](https://github.com/superkabuki/x9k3)
31
31
 
32
32
  * __Decodes SCTE-35__ from `MPEGTS`✔ `Base64`✔ `Bytes`✔ `DASH`✔ `Hex` ✔ `HLS`✔ `Integers`✔ `JSON`✔ `XML`✔ `XML+Binary`✔
33
33
 
@@ -43,9 +43,10 @@ Dynamic: license-file
43
43
 
44
44
  ___
45
45
 
46
+
47
+
46
48
  ### [ News ]
47
49
 
48
- ### Death to PEP 668.
49
50
 
50
51
  * __threefive no longer uses setuptools for packaging__ and I know you don't care.
51
52
  * __Python3 vs. Pypy3__ [__parsing SCTE35 with threefive__](https://github.com/superkabuki/threefive_is_scte35#python3-vs-pypy3-running-threefive) (watch the cool video)
@@ -53,10 +54,11 @@ ___
53
54
  * I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
54
55
  ___
55
56
 
56
- ## [ Latest version is v3.0.77 ]
57
- * threefive cyclomatic complexity score is 1.9350282485875707, the standard libbrary is almost double. _lower is better_.
58
- * pylint score is __9.82 / 10__
59
- * __5116 lines of code with 2553 lines of comments__, that's a __sweet code/comment ratio__.
57
+ ## [ Latest version is v3.0.81 ]
58
+
59
+ * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
60
+ * __threefive now has NO External Dependencies__
61
+ * SRT and AES support is now optional
60
62
  * __threefive is fully python v3.14 compliant__
61
63
  * I fixed everything they broke/changed between v3.09 and 3.14.
62
64
  * 0 deprecation warnings.
@@ -105,20 +107,45 @@ ___
105
107
  </samp>
106
108
 
107
109
  ## [Install]
108
- * python3 via pip
110
+ * __python3 via pip__
109
111
  ```rebol
110
112
  python3 -mpip install threefive
111
113
  ```
112
- * pypy3
114
+ * __pypy3 via pip__
113
115
  ```rebol
114
116
  pypy3 -mpip install threefive
115
117
  ```
116
- * from the git repo
118
+ * __To add SRT support__
119
+ ```py3
120
+ python3 -m pip install srtfu
121
+ ```
122
+ * __To add Automatic AES decryption__
123
+ ```py3
124
+ python3 -mpip install pyaes
125
+ ```
126
+
127
+ * __From the git repo__
128
+
117
129
  ```rebol
118
130
  git clone https://github.com/superkabuki/scte35.git
119
131
  cd threefive
120
132
  make install
121
133
  ```
134
+ * I've jazzed up the makefile to make it easier to install for different python versions and pypy3
135
+ ```rebol
136
+ git clone https://github.com/superkabuki/scte35.git
137
+ cd threefive
138
+
139
+ make install py3=pypy3
140
+
141
+ # OR
142
+
143
+ make install py3=python3.14
144
+
145
+ # works for any python in your path or use a full path if needed.
146
+
147
+ ```
148
+
122
149
  ___
123
150
 
124
151
 
@@ -40,5 +40,4 @@ threefive.egg-info/PKG-INFO
40
40
  threefive.egg-info/SOURCES.txt
41
41
  threefive.egg-info/dependency_links.txt
42
42
  threefive.egg-info/entry_points.txt
43
- threefive.egg-info/requires.txt
44
43
  threefive.egg-info/top_level.txt
@@ -1,2 +0,0 @@
1
- pyaes
2
- srtfu>=0.0.11
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