home · contact · privacy
Reduce overkill in type definitions.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 10 Dec 2024 22:06:02 +0000 (23:06 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 10 Dec 2024 22:06:02 +0000 (23:06 +0100)
src/ytplom/http.py
src/ytplom/misc.py

index e726b7c2af1c4d8c1d7efa362e5dbd38335928d7..e6b277588623537bfefaf7a9709e729e98599524 100644 (file)
@@ -3,7 +3,7 @@ from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler
 from json import dumps as json_dumps, loads as json_loads
 from pathlib import Path
 from time import sleep
-from typing import Any, Generator, Optional, TypeAlias
+from typing import Any, Generator, Optional
 from urllib.parse import parse_qs, urlparse
 from urllib.request import urlretrieve
 from urllib.error import HTTPError
@@ -11,7 +11,7 @@ from jinja2 import (  # type: ignore
         Environment as JinjaEnv, FileSystemLoader as JinjaFSLoader)
 from ytplom.db import Hash, DbConn
 from ytplom.misc import (
-        FilterStr, FlagName, QueryId, QueryText, Tag, UrlStr, YoutubeId,
+        FilterStr, FlagName, QueryId, QueryText, Tag, YoutubeId,
         FILE_FLAGS, PATH_THUMBNAILS, YOUTUBE_URL_PREFIX,
         ensure_expected_dirs,
         Config, DownloadsManager, Player, QuotaLog, VideoFile, YoutubeQuery,
@@ -19,14 +19,9 @@ from ytplom.misc import (
 )
 from ytplom.primitives import NotFoundException, PATH_APP_DATA
 
-# type definitions for mypy
-_PageNames: TypeAlias = dict[str, Path]
-_ReqDict: TypeAlias = dict[str, list[str]]
-_TemplateContext: TypeAlias = dict[str, Any]
-
 # API expectations
-_THUMBNAIL_URL_PREFIX = UrlStr('https://i.ytimg.com/vi/')
-_THUMBNAIL_URL_SUFFIX = UrlStr('/default.jpg')
+_THUMBNAIL_URL_PREFIX = 'https://i.ytimg.com/vi/'
+_THUMBNAIL_URL_SUFFIX = '/default.jpg'
 
 # template paths
 _PATH_TEMPLATES = PATH_APP_DATA.joinpath('templates')
@@ -38,7 +33,7 @@ _NAME_TEMPLATE_YT_VIDEO = Path('yt_result.tmpl')
 _NAME_TEMPLATE_PLAYLIST = Path('playlist.tmpl')
 
 # page names
-PAGE_NAMES: _PageNames = {
+PAGE_NAMES: dict[str, Path] = {
     'download': Path('dl'),
     'events': Path('events'),
     'file': Path('file'),
@@ -65,7 +60,7 @@ class _ReqMap:
         self.as_str = map_as_str
 
     @property
-    def as_dict(self) -> _ReqDict:
+    def as_dict(self) -> dict[str, list[str]]:
         """Return parsed to dictionary."""
         if self.is_json:
             return json_loads(self.as_str)
@@ -225,7 +220,7 @@ class _TaskHandler(BaseHTTPRequestHandler):
 
     def _send_rendered_template(self,
                                 tmpl_name: Path,
-                                tmpl_ctx: _TemplateContext
+                                tmpl_ctx: dict[str, Any]
                                 ) -> None:
         tmpl = self.server.jinja.get_template(str(tmpl_name))
         tmpl_ctx['selected'] = tmpl_ctx.get('selected', '')
index 2b73b9911e91418f4ec9b2ed736e328fdd29ad56..5848159ea9596c6f9dc5b503c2befba270418fdd 100644 (file)
@@ -1,7 +1,7 @@
 """Main ytplom lib."""
 
 # included libs
-from typing import NewType, Optional, Self, TypeAlias
+from typing import NewType, Optional, Self
 from os import chdir, environ
 from random import shuffle
 from time import sleep
@@ -42,9 +42,6 @@ FilterStr = NewType('FilterStr', str)
 FlagName = NewType('FlagName', str)
 FlagsInt = NewType('FlagsInt', int)
 Tag = NewType('Tag', str)
-AmountDownloads = NewType('AmountDownloads', int)
-UrlStr = NewType('UrlStr', str)
-FilesWithIndex: TypeAlias = list[tuple[int, 'VideoFile']]
 
 # major expected directories
 PATH_DOWNLOADS = Path.home().joinpath('ytplom_downloads')
@@ -61,7 +58,7 @@ YT_DL_PARAMS = {'paths': {'home': str(PATH_DOWNLOADS),
                 'format': YT_DOWNLOAD_FORMAT}
 
 # Youtube API expectations
-YOUTUBE_URL_PREFIX = UrlStr('https://www.youtube.com/watch?v=')
+YOUTUBE_URL_PREFIX = 'https://www.youtube.com/watch?v='
 QUOTA_COST_YOUTUBE_SEARCH = QuotaCost(100)
 QUOTA_COST_YOUTUBE_DETAILS = QuotaCost(1)