talklib 3.7.10__tar.gz → 3.7.12__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.10
3
+ Version: 3.7.12
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>
@@ -11,7 +11,7 @@ Requires-Python: >=3.12
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE.txt
13
13
  Requires-Dist: aiohappyeyeballs==2.6.1
14
- Requires-Dist: aiohttp==3.14.3
14
+ Requires-Dist: aiohttp==3.14.5
15
15
  Requires-Dist: aiohttp-retry==2.8.3
16
16
  Requires-Dist: aiosignal==1.4.0
17
17
  Requires-Dist: annotated-types==0.7.0
@@ -19,7 +19,7 @@ Requires-Dist: async-timeout==4.0.2
19
19
  Requires-Dist: attrs==22.1.0
20
20
  Requires-Dist: bcrypt==4.2.0
21
21
  Requires-Dist: build==1.0.3
22
- Requires-Dist: certifi==2024.8.30
22
+ Requires-Dist: certifi==2026.10.19
23
23
  Requires-Dist: cffi==2.0.0
24
24
  Requires-Dist: charset-normalizer==2.1.1
25
25
  Requires-Dist: colorama==0.4.6
@@ -75,7 +75,7 @@ Requires-Dist: twine==4.0.2
75
75
  Requires-Dist: typing_extensions==4.15.0
76
76
  Requires-Dist: urllib3==2.8.0
77
77
  Requires-Dist: wrapt==1.16.0
78
- Requires-Dist: yarl==1.22.0
78
+ Requires-Dist: yarl==1.25.1
79
79
  Requires-Dist: zipp==3.23.0
80
80
  Dynamic: license-file
81
81
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "talklib"
3
- version = "3.7.10"
3
+ version = "3.7.12"
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"
@@ -1,5 +1,5 @@
1
1
  aiohappyeyeballs==2.6.1
2
- aiohttp==3.14.3
2
+ aiohttp==3.14.5
3
3
  aiohttp-retry==2.8.3
4
4
  aiosignal==1.4.0
5
5
  annotated-types==0.7.0
@@ -7,7 +7,7 @@ async-timeout==4.0.2
7
7
  attrs==22.1.0
8
8
  bcrypt==4.2.0
9
9
  build==1.0.3
10
- certifi==2024.8.30
10
+ certifi==2026.10.19
11
11
  cffi==2.0.0
12
12
  charset-normalizer==2.1.1
13
13
  colorama==0.4.6
@@ -63,5 +63,5 @@ twine==4.0.2
63
63
  typing_extensions==4.15.0
64
64
  urllib3==2.8.0
65
65
  wrapt==1.16.0
66
- yarl==1.22.0
66
+ yarl==1.25.1
67
67
  zipp==3.23.0
@@ -83,6 +83,12 @@ The error from the SSH library is: {e}"
83
83
  self.notifications.send_notifications(message=to_send, subject='Error')
84
84
  raise e
85
85
 
86
+ def download_preroll(self) -> None:
87
+ self.notifications.prep_syslog(message="Attempting to download preroll audio from assets server...")
88
+ self.connection.get(remote="pod_preroll.mp3")
89
+ self.notifications.prep_syslog(message="Successfully downloaded preroll audio from assets server")
90
+ return
91
+
86
92
  def delete_file(self, file: str, folder: str) -> None:
87
93
  try:
88
94
  self.notifications.prep_syslog(message=f"Attempting to delete '{file}' from {folder}/ on server")
@@ -389,13 +395,18 @@ class TLPod(BaseModel):
389
395
 
390
396
  @model_validator(mode='after')
391
397
  def check_apache_assets_server(self):
392
- '''Check that the Assets server is reachable via HTTP and notify staff if not. Do not hault automation'''
398
+ '''Warn if the Assets server is unavailable via HTTPS; never halt automation for this check.'''
393
399
  url: str = "https://assets.library.nashville.gov"
394
- req_get = requests.get(url=url)
395
- req_post = requests.post(url=url)
396
- if not (req_get.ok and req_post.ok):
397
- to_send: str = "It looks like Apache may not be running on the Assets server. We are unable to make HTTPS requests...automation should be able to continue via SSH."
398
- self.notifications.send_notifications(message=to_send, subject="Warning", syslog_level="Warning")
400
+ try:
401
+ response = requests.get(url=url, timeout=5)
402
+ response.raise_for_status()
403
+ except requests.exceptions.RequestException as e:
404
+ to_send: str = f"The Assets server HTTPS check failed. Automation will continue via SSH. Error: {e}"
405
+ try:
406
+ self.notifications.send_notifications(message=to_send, subject="Warning", syslog_level="warning")
407
+ except Exception as notification_error:
408
+ # Notification services may also be unavailable during a network outage.
409
+ print(f"{to_send}\nUnable to send warning notifications: {notification_error}")
399
410
 
400
411
  return self
401
412
 
@@ -505,19 +516,10 @@ class TLPod(BaseModel):
505
516
  return output_filename
506
517
 
507
518
  def download_preroll(self):
508
- download_URL = "https://assets.library.nashville.gov/talkinglibrary/pod_preroll.mp3"
509
- input_file = 'preroll.mp3'
510
- self.notifications.prep_syslog(message=f"Attempting to download preroll audio from {download_URL}...")
511
- with open (input_file, mode='wb') as downloaded_file:
512
- try:
513
- a = requests.get(download_URL)
514
- downloaded_file.write(a.content)
515
- downloaded_file.close()
516
- except (Exception, requests.exceptions.RequestException) as e:
517
- self.notifications.send_notifications(message=f"Cannot download {download_URL}. Exception: {e}", subject="Error")
518
- raise e
519
- self.notifications.prep_syslog(message="preroll audio successfully downloaded")
520
- return downloaded_file.name
519
+ '''this is absolutely horrible but i am in a crunch at the moment while Apache on Assets is down...'''
520
+ input_file = 'pod_preroll.mp3'
521
+ self.ssh.download_preroll()
522
+ return input_file
521
523
 
522
524
  def post_cleaup(self):
523
525
  self.notifications.prep_syslog(message="looking for local files to delete...")
@@ -565,4 +567,4 @@ class TLPod(BaseModel):
565
567
 
566
568
  self.post_cleaup()
567
569
 
568
- self.notifications.prep_syslog(message="Podcasting was successful. Exiting automation.")
570
+ self.notifications.prep_syslog(message="Podcasting was successful. Exiting automation.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: talklib
3
- Version: 3.7.10
3
+ Version: 3.7.12
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>
@@ -11,7 +11,7 @@ Requires-Python: >=3.12
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE.txt
13
13
  Requires-Dist: aiohappyeyeballs==2.6.1
14
- Requires-Dist: aiohttp==3.14.3
14
+ Requires-Dist: aiohttp==3.14.5
15
15
  Requires-Dist: aiohttp-retry==2.8.3
16
16
  Requires-Dist: aiosignal==1.4.0
17
17
  Requires-Dist: annotated-types==0.7.0
@@ -19,7 +19,7 @@ Requires-Dist: async-timeout==4.0.2
19
19
  Requires-Dist: attrs==22.1.0
20
20
  Requires-Dist: bcrypt==4.2.0
21
21
  Requires-Dist: build==1.0.3
22
- Requires-Dist: certifi==2024.8.30
22
+ Requires-Dist: certifi==2026.10.19
23
23
  Requires-Dist: cffi==2.0.0
24
24
  Requires-Dist: charset-normalizer==2.1.1
25
25
  Requires-Dist: colorama==0.4.6
@@ -75,7 +75,7 @@ Requires-Dist: twine==4.0.2
75
75
  Requires-Dist: typing_extensions==4.15.0
76
76
  Requires-Dist: urllib3==2.8.0
77
77
  Requires-Dist: wrapt==1.16.0
78
- Requires-Dist: yarl==1.22.0
78
+ Requires-Dist: yarl==1.25.1
79
79
  Requires-Dist: zipp==3.23.0
80
80
  Dynamic: license-file
81
81
 
@@ -1,5 +1,5 @@
1
1
  aiohappyeyeballs==2.6.1
2
- aiohttp==3.14.3
2
+ aiohttp==3.14.5
3
3
  aiohttp-retry==2.8.3
4
4
  aiosignal==1.4.0
5
5
  annotated-types==0.7.0
@@ -7,7 +7,7 @@ async-timeout==4.0.2
7
7
  attrs==22.1.0
8
8
  bcrypt==4.2.0
9
9
  build==1.0.3
10
- certifi==2024.8.30
10
+ certifi==2026.10.19
11
11
  cffi==2.0.0
12
12
  charset-normalizer==2.1.1
13
13
  colorama==0.4.6
@@ -63,5 +63,5 @@ twine==4.0.2
63
63
  typing_extensions==4.15.0
64
64
  urllib3==2.8.0
65
65
  wrapt==1.16.0
66
- yarl==1.22.0
66
+ yarl==1.25.1
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
File without changes