talklib 3.7.8__tar.gz → 3.7.10__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: talklib
3
- Version: 3.7.8
3
+ Version: 3.7.10
4
4
  Summary: A package to automate processing of shows/segments airing on the TL
5
5
  Author-email: Ben Weddle <ben.weddle@gmail.com>
6
6
  Maintainer-email: Ben Weddle <ben.weddle@gmail.com>
@@ -54,7 +54,7 @@ Requires-Dist: pycparser==2.22
54
54
  Requires-Dist: pydantic==2.9.1
55
55
  Requires-Dist: pydantic_core==2.23.3
56
56
  Requires-Dist: Pygments==2.20.0
57
- Requires-Dist: PyJWT==2.13.0
57
+ Requires-Dist: PyJWT==2.15.1
58
58
  Requires-Dist: PyNaCl==1.6.2
59
59
  Requires-Dist: pyparsing==3.0.9
60
60
  Requires-Dist: pyproject_hooks==1.0.0
@@ -73,7 +73,7 @@ Requires-Dist: tomli==2.0.1
73
73
  Requires-Dist: twilio==9.0.2
74
74
  Requires-Dist: twine==4.0.2
75
75
  Requires-Dist: typing_extensions==4.15.0
76
- Requires-Dist: urllib3==2.7.0
76
+ Requires-Dist: urllib3==2.8.0
77
77
  Requires-Dist: wrapt==1.16.0
78
78
  Requires-Dist: yarl==1.22.0
79
79
  Requires-Dist: zipp==3.23.0
@@ -108,7 +108,7 @@ This package automates two categories of things:
108
108
  ## Requirements<a id="requirements"></a>
109
109
 
110
110
  ### -[Python](https://www.python.org/downloads/)
111
- Use Python 3.10 or higher.
111
+ Use Python 3.12 or higher.
112
112
 
113
113
  Make sure to select "add to PATH" during installation.
114
114
 
@@ -249,7 +249,7 @@ required for all RSS or permalink shows
249
249
 
250
250
  *required* for "local" shows
251
251
  - tells the module whether this is a local show
252
- - must be set to `True` if it is a local show
252
+ - set to `True` if it is a local show (this needs to be deprecated!)
253
253
  - default is `False`
254
254
 
255
255
  `local_file`
@@ -274,7 +274,7 @@ required for "permalink" shows
274
274
 
275
275
  optional
276
276
  - whether or not you want to remove yesterday's files (if any exists)
277
- - if set to `True`, it will delete any file matching the show_filename attribute you set.
277
+ - if set to `True`, it will delete any file matching the show_filename attribute you set. That is ANY file matching `<show_filename>*.wav`
278
278
  - default is `False`.
279
279
 
280
280
  `include_date`
@@ -283,7 +283,7 @@ optional
283
283
 
284
284
  optional
285
285
  - whether or not you want to include today's date in the filename
286
- - if set to `True`, the date will be appended as such: `WP-MMDDYY.wav`
286
+ - if set to `True`, the date will be appended as such: `WPMMDDYY.wav`
287
287
  - if not set, or set to `False`, the resulting filename will be: `WP.wav`
288
288
  - Generally, for TL programs, if it is a daily show, like the New York Times, etc., you need the date in the filename, as this is what WireReady will match.
289
289
  - the default is `False`
@@ -349,6 +349,8 @@ optional
349
349
 
350
350
  The minimum attributes you must set are `show`, `show_filename`, and `url`.
351
351
 
352
+ For RSS shows, the first `<item>` in the feed must have a `<pubDate>` containing today's date in `ddd, DD Mon YYYY` format (for example, `Wed, 07 Oct 2026`), using the date on the computer running the script. `TLShow` checks only the first item and retries the check up to three times. If that item is not dated today, processing stops without downloading audio or removing existing destination files, and an error notification is sent if notifications are enabled. The script does not search later items or fall back to an older episode.
353
+
352
354
  Here is an example script:
353
355
 
354
356
  ````python
@@ -378,7 +380,7 @@ MWB = TLShow(
378
380
  show = 'Magical World of Bees',
379
381
  show_filename = 'MWB',
380
382
  is_local = True,
381
- local_file = 'D:Production\path\to\the\file.wav'
383
+ local_file = r'D:Production\path\to\the\file.wav'
382
384
  )
383
385
 
384
386
  MWB.run()
@@ -469,6 +471,19 @@ SD.run()
469
471
 
470
472
  ### Prerequisites
471
473
 
474
+ Podcast publishing and the podcast-related CLI commands connect to the Assets server over SSH/SFTP using the host alias `assets`. You must configure SSH prior to running any scripts.
475
+
476
+ Keep the SSH private key in the home directory under `~/.ssh`. In that same directory, create a file named `config` with a host entry like this, replacing the placeholders with your server hostname, username, and key filename:
477
+
478
+ ````text
479
+ Host assets
480
+ HostName YOUR_ASSETS_SERVER_HOSTNAME
481
+ User YOUR_SSH_USERNAME
482
+ IdentityFile ~/.ssh/YOUR_PRIVATE_KEY_FILENAME
483
+ ````
484
+
485
+ The `Host assets` alias must match the host used by `talklib`. Run `ssh assets` from on the PC to verify the connection before scheduling automation. For unattended runs, key authentication must work without an interactive password or passphrase prompt.
486
+
472
487
  Before starting to podcast a new show, you must log in to the server, create a directory, and upload some files. The `talklib` CLI has several functions to help you with this. Run `talklib --help` in your terminal to see a list of these helper functions.
473
488
 
474
489
  The directory should be named the same as the base name of the audio files for that show. For example, The Nashville Scene audio files are labelled as SceneMMDDYY. The directory name on the server should be `scene` in all lower-case.
@@ -602,3 +617,10 @@ nyt.run()
602
617
  - You must be connected to the internet to run the tests.
603
618
  - To update the version on PyPI, you must increment the version number in `pyproject.toml`
604
619
 
620
+ If you add or upgrade third-party packages, don't forget to update `requirements.txt` from your activated virtual environment:
621
+
622
+ ````bash
623
+ pip freeze --exclude talklib > requirements.txt
624
+ ````
625
+
626
+ The `--exclude talklib` option keeps this project's editable installation out of its own dependency list.
@@ -27,7 +27,7 @@ This package automates two categories of things:
27
27
  ## Requirements<a id="requirements"></a>
28
28
 
29
29
  ### -[Python](https://www.python.org/downloads/)
30
- Use Python 3.10 or higher.
30
+ Use Python 3.12 or higher.
31
31
 
32
32
  Make sure to select "add to PATH" during installation.
33
33
 
@@ -168,7 +168,7 @@ required for all RSS or permalink shows
168
168
 
169
169
  *required* for "local" shows
170
170
  - tells the module whether this is a local show
171
- - must be set to `True` if it is a local show
171
+ - set to `True` if it is a local show (this needs to be deprecated!)
172
172
  - default is `False`
173
173
 
174
174
  `local_file`
@@ -193,7 +193,7 @@ required for "permalink" shows
193
193
 
194
194
  optional
195
195
  - whether or not you want to remove yesterday's files (if any exists)
196
- - if set to `True`, it will delete any file matching the show_filename attribute you set.
196
+ - if set to `True`, it will delete any file matching the show_filename attribute you set. That is ANY file matching `<show_filename>*.wav`
197
197
  - default is `False`.
198
198
 
199
199
  `include_date`
@@ -202,7 +202,7 @@ optional
202
202
 
203
203
  optional
204
204
  - whether or not you want to include today's date in the filename
205
- - if set to `True`, the date will be appended as such: `WP-MMDDYY.wav`
205
+ - if set to `True`, the date will be appended as such: `WPMMDDYY.wav`
206
206
  - if not set, or set to `False`, the resulting filename will be: `WP.wav`
207
207
  - Generally, for TL programs, if it is a daily show, like the New York Times, etc., you need the date in the filename, as this is what WireReady will match.
208
208
  - the default is `False`
@@ -268,6 +268,8 @@ optional
268
268
 
269
269
  The minimum attributes you must set are `show`, `show_filename`, and `url`.
270
270
 
271
+ For RSS shows, the first `<item>` in the feed must have a `<pubDate>` containing today's date in `ddd, DD Mon YYYY` format (for example, `Wed, 07 Oct 2026`), using the date on the computer running the script. `TLShow` checks only the first item and retries the check up to three times. If that item is not dated today, processing stops without downloading audio or removing existing destination files, and an error notification is sent if notifications are enabled. The script does not search later items or fall back to an older episode.
272
+
271
273
  Here is an example script:
272
274
 
273
275
  ````python
@@ -297,7 +299,7 @@ MWB = TLShow(
297
299
  show = 'Magical World of Bees',
298
300
  show_filename = 'MWB',
299
301
  is_local = True,
300
- local_file = 'D:Production\path\to\the\file.wav'
302
+ local_file = r'D:Production\path\to\the\file.wav'
301
303
  )
302
304
 
303
305
  MWB.run()
@@ -388,6 +390,19 @@ SD.run()
388
390
 
389
391
  ### Prerequisites
390
392
 
393
+ Podcast publishing and the podcast-related CLI commands connect to the Assets server over SSH/SFTP using the host alias `assets`. You must configure SSH prior to running any scripts.
394
+
395
+ Keep the SSH private key in the home directory under `~/.ssh`. In that same directory, create a file named `config` with a host entry like this, replacing the placeholders with your server hostname, username, and key filename:
396
+
397
+ ````text
398
+ Host assets
399
+ HostName YOUR_ASSETS_SERVER_HOSTNAME
400
+ User YOUR_SSH_USERNAME
401
+ IdentityFile ~/.ssh/YOUR_PRIVATE_KEY_FILENAME
402
+ ````
403
+
404
+ The `Host assets` alias must match the host used by `talklib`. Run `ssh assets` from on the PC to verify the connection before scheduling automation. For unattended runs, key authentication must work without an interactive password or passphrase prompt.
405
+
391
406
  Before starting to podcast a new show, you must log in to the server, create a directory, and upload some files. The `talklib` CLI has several functions to help you with this. Run `talklib --help` in your terminal to see a list of these helper functions.
392
407
 
393
408
  The directory should be named the same as the base name of the audio files for that show. For example, The Nashville Scene audio files are labelled as SceneMMDDYY. The directory name on the server should be `scene` in all lower-case.
@@ -521,3 +536,10 @@ nyt.run()
521
536
  - You must be connected to the internet to run the tests.
522
537
  - To update the version on PyPI, you must increment the version number in `pyproject.toml`
523
538
 
539
+ If you add or upgrade third-party packages, don't forget to update `requirements.txt` from your activated virtual environment:
540
+
541
+ ````bash
542
+ pip freeze --exclude talklib > requirements.txt
543
+ ````
544
+
545
+ The `--exclude talklib` option keeps this project's editable installation out of its own dependency list.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "talklib"
3
- version = "3.7.8"
3
+ version = "3.7.10"
4
4
  description = "A package to automate processing of shows/segments airing on the TL"
5
5
  readme = "README.md"
6
6
  license = "MIT-open-group"
@@ -42,7 +42,7 @@ pycparser==2.22
42
42
  pydantic==2.9.1
43
43
  pydantic_core==2.23.3
44
44
  Pygments==2.20.0
45
- PyJWT==2.13.0
45
+ PyJWT==2.15.1
46
46
  PyNaCl==1.6.2
47
47
  pyparsing==3.0.9
48
48
  pyproject_hooks==1.0.0
@@ -61,7 +61,7 @@ tomli==2.0.1
61
61
  twilio==9.0.2
62
62
  twine==4.0.2
63
63
  typing_extensions==4.15.0
64
- urllib3==2.7.0
64
+ urllib3==2.8.0
65
65
  wrapt==1.16.0
66
66
  yarl==1.22.0
67
67
  zipp==3.23.0
@@ -341,18 +341,16 @@ class Episode(BaseModel):
341
341
 
342
342
  class TLPod(BaseModel):
343
343
  '''
344
- everything should be in lower case!
344
+ Everything should be in lower case!
345
345
 
346
- display_name: generic name for the show/program. WIll be displayed as the
347
- episode "Title" in the podcast feed. type=string
346
+ display_name: Generic name for the show/program. Will be displayed as the episode "Title" in the podcast feed.
348
347
 
349
- filename_to_match: the base name of the show we want to match. do not include the date.
350
- for example, to match RollingStone091322, use 'RollingStone'. type=string
348
+ filename_to_match: The base name of the show we want to match. Do not include the date.
349
+ For example, to match RollingStone091322, use 'RollingStone'.
351
350
 
352
- bucket_folder: the name of the folder on S3 where the audio and RSS files are stored.
353
- should be lower case. type=string
351
+ bucket_folder: The name of the folder on the Assets server where the audio and RSS files are stored.
354
352
 
355
- max_episodes_in_feed: the max number of episodes that should be in the feed after you add the episode.
353
+ max_episodes_in_feed: The max number of episodes that should be in the feed after you add the episode.
356
354
  '''
357
355
  display_name: str = Field(min_length=1)
358
356
  filename_to_match: str = Field(min_length=1)
@@ -370,7 +368,7 @@ class TLPod(BaseModel):
370
368
  @model_validator(mode='after')
371
369
  def post_update(self):
372
370
  '''
373
- the name of the bucket folder should match the base name of the file. If bucket_folder is not explicitly set
371
+ The name of the bucket folder should match the base name of the file. If bucket_folder is not explicitly set
374
372
  by the user, use the filename. However, if filename_override is being used, strip out the digits first.
375
373
  '''
376
374
  if not self.bucket_folder:
@@ -391,7 +389,7 @@ class TLPod(BaseModel):
391
389
 
392
390
  @model_validator(mode='after')
393
391
  def check_apache_assets_server(self):
394
- '''check that the Assets server is reachable via HTTP and notify staff if not. Do not hault automation'''
392
+ '''Check that the Assets server is reachable via HTTP and notify staff if not. Do not hault automation'''
395
393
  url: str = "https://assets.library.nashville.gov"
396
394
  req_get = requests.get(url=url)
397
395
  req_post = requests.post(url=url)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: talklib
3
- Version: 3.7.8
3
+ Version: 3.7.10
4
4
  Summary: A package to automate processing of shows/segments airing on the TL
5
5
  Author-email: Ben Weddle <ben.weddle@gmail.com>
6
6
  Maintainer-email: Ben Weddle <ben.weddle@gmail.com>
@@ -54,7 +54,7 @@ Requires-Dist: pycparser==2.22
54
54
  Requires-Dist: pydantic==2.9.1
55
55
  Requires-Dist: pydantic_core==2.23.3
56
56
  Requires-Dist: Pygments==2.20.0
57
- Requires-Dist: PyJWT==2.13.0
57
+ Requires-Dist: PyJWT==2.15.1
58
58
  Requires-Dist: PyNaCl==1.6.2
59
59
  Requires-Dist: pyparsing==3.0.9
60
60
  Requires-Dist: pyproject_hooks==1.0.0
@@ -73,7 +73,7 @@ Requires-Dist: tomli==2.0.1
73
73
  Requires-Dist: twilio==9.0.2
74
74
  Requires-Dist: twine==4.0.2
75
75
  Requires-Dist: typing_extensions==4.15.0
76
- Requires-Dist: urllib3==2.7.0
76
+ Requires-Dist: urllib3==2.8.0
77
77
  Requires-Dist: wrapt==1.16.0
78
78
  Requires-Dist: yarl==1.22.0
79
79
  Requires-Dist: zipp==3.23.0
@@ -108,7 +108,7 @@ This package automates two categories of things:
108
108
  ## Requirements<a id="requirements"></a>
109
109
 
110
110
  ### -[Python](https://www.python.org/downloads/)
111
- Use Python 3.10 or higher.
111
+ Use Python 3.12 or higher.
112
112
 
113
113
  Make sure to select "add to PATH" during installation.
114
114
 
@@ -249,7 +249,7 @@ required for all RSS or permalink shows
249
249
 
250
250
  *required* for "local" shows
251
251
  - tells the module whether this is a local show
252
- - must be set to `True` if it is a local show
252
+ - set to `True` if it is a local show (this needs to be deprecated!)
253
253
  - default is `False`
254
254
 
255
255
  `local_file`
@@ -274,7 +274,7 @@ required for "permalink" shows
274
274
 
275
275
  optional
276
276
  - whether or not you want to remove yesterday's files (if any exists)
277
- - if set to `True`, it will delete any file matching the show_filename attribute you set.
277
+ - if set to `True`, it will delete any file matching the show_filename attribute you set. That is ANY file matching `<show_filename>*.wav`
278
278
  - default is `False`.
279
279
 
280
280
  `include_date`
@@ -283,7 +283,7 @@ optional
283
283
 
284
284
  optional
285
285
  - whether or not you want to include today's date in the filename
286
- - if set to `True`, the date will be appended as such: `WP-MMDDYY.wav`
286
+ - if set to `True`, the date will be appended as such: `WPMMDDYY.wav`
287
287
  - if not set, or set to `False`, the resulting filename will be: `WP.wav`
288
288
  - Generally, for TL programs, if it is a daily show, like the New York Times, etc., you need the date in the filename, as this is what WireReady will match.
289
289
  - the default is `False`
@@ -349,6 +349,8 @@ optional
349
349
 
350
350
  The minimum attributes you must set are `show`, `show_filename`, and `url`.
351
351
 
352
+ For RSS shows, the first `<item>` in the feed must have a `<pubDate>` containing today's date in `ddd, DD Mon YYYY` format (for example, `Wed, 07 Oct 2026`), using the date on the computer running the script. `TLShow` checks only the first item and retries the check up to three times. If that item is not dated today, processing stops without downloading audio or removing existing destination files, and an error notification is sent if notifications are enabled. The script does not search later items or fall back to an older episode.
353
+
352
354
  Here is an example script:
353
355
 
354
356
  ````python
@@ -378,7 +380,7 @@ MWB = TLShow(
378
380
  show = 'Magical World of Bees',
379
381
  show_filename = 'MWB',
380
382
  is_local = True,
381
- local_file = 'D:Production\path\to\the\file.wav'
383
+ local_file = r'D:Production\path\to\the\file.wav'
382
384
  )
383
385
 
384
386
  MWB.run()
@@ -469,6 +471,19 @@ SD.run()
469
471
 
470
472
  ### Prerequisites
471
473
 
474
+ Podcast publishing and the podcast-related CLI commands connect to the Assets server over SSH/SFTP using the host alias `assets`. You must configure SSH prior to running any scripts.
475
+
476
+ Keep the SSH private key in the home directory under `~/.ssh`. In that same directory, create a file named `config` with a host entry like this, replacing the placeholders with your server hostname, username, and key filename:
477
+
478
+ ````text
479
+ Host assets
480
+ HostName YOUR_ASSETS_SERVER_HOSTNAME
481
+ User YOUR_SSH_USERNAME
482
+ IdentityFile ~/.ssh/YOUR_PRIVATE_KEY_FILENAME
483
+ ````
484
+
485
+ The `Host assets` alias must match the host used by `talklib`. Run `ssh assets` from on the PC to verify the connection before scheduling automation. For unattended runs, key authentication must work without an interactive password or passphrase prompt.
486
+
472
487
  Before starting to podcast a new show, you must log in to the server, create a directory, and upload some files. The `talklib` CLI has several functions to help you with this. Run `talklib --help` in your terminal to see a list of these helper functions.
473
488
 
474
489
  The directory should be named the same as the base name of the audio files for that show. For example, The Nashville Scene audio files are labelled as SceneMMDDYY. The directory name on the server should be `scene` in all lower-case.
@@ -602,3 +617,10 @@ nyt.run()
602
617
  - You must be connected to the internet to run the tests.
603
618
  - To update the version on PyPI, you must increment the version number in `pyproject.toml`
604
619
 
620
+ If you add or upgrade third-party packages, don't forget to update `requirements.txt` from your activated virtual environment:
621
+
622
+ ````bash
623
+ pip freeze --exclude talklib > requirements.txt
624
+ ````
625
+
626
+ The `--exclude talklib` option keeps this project's editable installation out of its own dependency list.
@@ -42,7 +42,7 @@ pycparser==2.22
42
42
  pydantic==2.9.1
43
43
  pydantic_core==2.23.3
44
44
  Pygments==2.20.0
45
- PyJWT==2.13.0
45
+ PyJWT==2.15.1
46
46
  PyNaCl==1.6.2
47
47
  pyparsing==3.0.9
48
48
  pyproject_hooks==1.0.0
@@ -61,7 +61,7 @@ tomli==2.0.1
61
61
  twilio==9.0.2
62
62
  twine==4.0.2
63
63
  typing_extensions==4.15.0
64
- urllib3==2.7.0
64
+ urllib3==2.8.0
65
65
  wrapt==1.16.0
66
66
  yarl==1.22.0
67
67
  zipp==3.23.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes