weeb-cli 2.16.2__tar.gz → 2.16.3__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.
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/PKG-INFO +10 -4
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/pyproject.toml +3 -2
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/__init__.py +1 -1
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search/watch_flow.py +10 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/locales/de.json +2 -1
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/locales/en.json +2 -1
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/locales/pl.json +2 -1
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/locales/tr.json +2 -1
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/local_library.py +12 -1
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli.egg-info/PKG-INFO +10 -4
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli.egg-info/requires.txt +10 -3
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/LICENSE +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/README.md +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/setup.cfg +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_anilist_tracker.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_aniworld_provider.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_api.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_cache.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_exceptions.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_kitsu_tracker.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_mal_tracker.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_providers.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_restful_api.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_sanitizer.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_sanitizer_security.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/tests/test_sdk.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/__main__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/api.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/downloads.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/library.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search/anime_details.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search/download_flow.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search/episode_utils.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search/search_handlers.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search/stream_utils.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/search.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/serve.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/serve_restful.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_backup.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_cache.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_config.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_download.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_drives.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_menu.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_shortcuts.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings/settings_trackers.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/settings.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/setup.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/commands/watchlist.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/config.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/constants.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/exceptions.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/i18n.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/main.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/base.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/de/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/de/aniworld.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/en/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/en/allanime.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/en/hianime.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/extractors/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/extractors/doodstream.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/extractors/filemoon.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/extractors/megacloud.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/extractors/streamtape.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/extractors/vidoza.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/extractors/voe.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/pl/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/pl/docchi.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/registry.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/tr/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/tr/animecix.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/tr/anizle.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/tr/turkanime.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/providers/tr/weeb.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/sdk.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/_base.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/_tracker_base.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/aniskip.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/cache.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/database.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/dependency_manager.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/details.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/discord_rpc.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/context.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/manager.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/queue.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/strategies/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/strategies/aria2.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/strategies/base.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/strategies/ffmpeg.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/strategies/generic.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/download/strategies/ytdlp.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/downloader.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/error_handler.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/headless_downloader.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/logger.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/notifier.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/player.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/progress.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/scraper.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/search.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/shortcuts.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/stream_validator.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/tracker.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/updater.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/services/watch.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/templates/anilist_error.html +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/templates/anilist_success.html +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/templates/mal_error.html +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/templates/mal_success.html +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/ui/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/ui/header.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/ui/menu.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/ui/prompt.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/utils/__init__.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/utils/decorators.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/utils/sanitizer.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli/utils/shortcuts.py +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli.egg-info/SOURCES.txt +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli.egg-info/dependency_links.txt +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli.egg-info/entry_points.txt +0 -0
- {weeb_cli-2.16.2 → weeb_cli-2.16.3}/weeb_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: weeb-cli
|
|
3
|
-
Version: 2.16.
|
|
3
|
+
Version: 2.16.3
|
|
4
4
|
Summary: No browser, no ads, no distractions. Just you and an unparalleled anime viewing experience.
|
|
5
5
|
Author-email: ewgsta <ewgst@proton.me>
|
|
6
6
|
License-Expression: GPL-3.0-only
|
|
@@ -42,9 +42,15 @@ Provides-Extra: dev
|
|
|
42
42
|
Requires-Dist: build; extra == "dev"
|
|
43
43
|
Requires-Dist: pyinstaller; extra == "dev"
|
|
44
44
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
45
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
46
|
-
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
47
|
-
Requires-Dist: pytest-mock; extra == "dev"
|
|
45
|
+
Requires-Dist: pytest-cov>=7.1.0; extra == "dev"
|
|
46
|
+
Requires-Dist: pytest-asyncio>=1.3.0; extra == "dev"
|
|
47
|
+
Requires-Dist: pytest-mock>=3.15.1; extra == "dev"
|
|
48
|
+
Provides-Extra: docs
|
|
49
|
+
Requires-Dist: mkdocs>=1.6.1; extra == "docs"
|
|
50
|
+
Requires-Dist: mkdocs-material>=9.7.6; extra == "docs"
|
|
51
|
+
Requires-Dist: mkdocstrings[python]>=1.0.4; extra == "docs"
|
|
52
|
+
Requires-Dist: pymdown-extensions>=10.21.2; extra == "docs"
|
|
53
|
+
Requires-Dist: mkdocs-static-i18n>=1.3.1; extra == "docs"
|
|
48
54
|
Dynamic: license-file
|
|
49
55
|
|
|
50
56
|
<p align="center">
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "weeb-cli"
|
|
7
|
-
version = "2.16.
|
|
7
|
+
version = "2.16.3"
|
|
8
8
|
description = "No browser, no ads, no distractions. Just you and an unparalleled anime viewing experience."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "ewgsta", email = "ewgst@proton.me" }]
|
|
@@ -38,7 +38,8 @@ dependencies = [
|
|
|
38
38
|
serve = ["flask>=3.0", "pyyaml>=6.0"]
|
|
39
39
|
serve-restful = ["flask>=3.0", "flask-cors>=4.0"]
|
|
40
40
|
shortcuts = ["pywin32; sys_platform == 'win32'", "winshell; sys_platform == 'win32'"]
|
|
41
|
-
dev = ["build", "pyinstaller", "pytest>=7.0.0", "pytest-cov", "pytest-asyncio", "pytest-mock"]
|
|
41
|
+
dev = ["build", "pyinstaller", "pytest>=7.0.0", "pytest-cov>=7.1.0", "pytest-asyncio>=1.3.0", "pytest-mock>=3.15.1"]
|
|
42
|
+
docs = ["mkdocs>=1.6.1", "mkdocs-material>=9.7.6", "mkdocstrings[python]>=1.0.4", "pymdown-extensions>=10.21.2", "mkdocs-static-i18n>=1.3.1"]
|
|
42
43
|
|
|
43
44
|
[tool.setuptools.packages.find]
|
|
44
45
|
where = ["."]
|
|
@@ -314,6 +314,16 @@ def _update_trackers(details, slug, ep_num=None):
|
|
|
314
314
|
("Kitsu", kitsu_tracker)
|
|
315
315
|
]
|
|
316
316
|
|
|
317
|
+
# First, try to sync any pending updates
|
|
318
|
+
for name, tracker in trackers:
|
|
319
|
+
if tracker.is_authenticated():
|
|
320
|
+
try:
|
|
321
|
+
synced_count = tracker.sync_pending()
|
|
322
|
+
if synced_count > 0:
|
|
323
|
+
console.print(f"[green]✓ {name}: {synced_count} {i18n.t('watchlist.pending_synced', 'pending updates synced')}[/green]")
|
|
324
|
+
except Exception as e:
|
|
325
|
+
log_error(f"Failed to sync pending updates for {name}: {e}")
|
|
326
|
+
|
|
317
327
|
updated = []
|
|
318
328
|
pending = []
|
|
319
329
|
|
|
@@ -284,7 +284,8 @@
|
|
|
284
284
|
"tracker_updated": "aktualisiert",
|
|
285
285
|
"tracker_syncing": "wird synchronisiert...",
|
|
286
286
|
"tracker_pending": "Zu ausstehend hinzugefügt",
|
|
287
|
-
"tracker_error": "Tracker-Fehler"
|
|
287
|
+
"tracker_error": "Tracker-Fehler",
|
|
288
|
+
"pending_synced": "ausstehende Aktualisierung(en) synchronisiert"
|
|
288
289
|
},
|
|
289
290
|
"errors": {
|
|
290
291
|
"generic": "Ein Fehler ist aufgetreten",
|
|
@@ -284,7 +284,8 @@
|
|
|
284
284
|
"tracker_updated": "updated",
|
|
285
285
|
"tracker_syncing": "syncing...",
|
|
286
286
|
"tracker_pending": "Added to pending",
|
|
287
|
-
"tracker_error": "Tracker error"
|
|
287
|
+
"tracker_error": "Tracker error",
|
|
288
|
+
"pending_synced": "pending update(s) synced"
|
|
288
289
|
},
|
|
289
290
|
"errors": {
|
|
290
291
|
"generic": "An error occurred",
|
|
@@ -280,7 +280,8 @@
|
|
|
280
280
|
"tracker_updated": "zaktualizowano",
|
|
281
281
|
"tracker_syncing": "synchronizacja...",
|
|
282
282
|
"tracker_pending": "Dodano do oczekujących",
|
|
283
|
-
"tracker_error": "Błąd trackera"
|
|
283
|
+
"tracker_error": "Błąd trackera",
|
|
284
|
+
"pending_synced": "zsynchronizowano oczekujące aktualizacje"
|
|
284
285
|
},
|
|
285
286
|
"errors": {
|
|
286
287
|
"generic": "Wystąpił błąd",
|
|
@@ -284,7 +284,8 @@
|
|
|
284
284
|
"tracker_updated": "güncellendi",
|
|
285
285
|
"tracker_syncing": "senkronize ediliyor...",
|
|
286
286
|
"tracker_pending": "Bekleyenlere eklendi",
|
|
287
|
-
"tracker_error": "Tracker hatası"
|
|
287
|
+
"tracker_error": "Tracker hatası",
|
|
288
|
+
"pending_synced": "bekleyen güncelleme senkronize edildi"
|
|
288
289
|
},
|
|
289
290
|
"errors": {
|
|
290
291
|
"generic": "Bir hata oluştu",
|
|
@@ -148,7 +148,18 @@ class LocalLibrary:
|
|
|
148
148
|
if not connected_trackers:
|
|
149
149
|
return
|
|
150
150
|
|
|
151
|
-
#
|
|
151
|
+
# First, try to sync any pending updates
|
|
152
|
+
for name, tracker in connected_trackers:
|
|
153
|
+
try:
|
|
154
|
+
synced_count = tracker.sync_pending()
|
|
155
|
+
if synced_count > 0:
|
|
156
|
+
from weeb_cli.services.logger import info
|
|
157
|
+
info(f"{name}: Synced {synced_count} pending updates")
|
|
158
|
+
except Exception as e:
|
|
159
|
+
from weeb_cli.services.logger import error
|
|
160
|
+
error(f"Failed to sync pending updates for {name}: {e}")
|
|
161
|
+
|
|
162
|
+
# Try to sync current episode to all trackers
|
|
152
163
|
for name, tracker in connected_trackers:
|
|
153
164
|
tracker.update_progress(anime_title, ep_number, total_episodes)
|
|
154
165
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: weeb-cli
|
|
3
|
-
Version: 2.16.
|
|
3
|
+
Version: 2.16.3
|
|
4
4
|
Summary: No browser, no ads, no distractions. Just you and an unparalleled anime viewing experience.
|
|
5
5
|
Author-email: ewgsta <ewgst@proton.me>
|
|
6
6
|
License-Expression: GPL-3.0-only
|
|
@@ -42,9 +42,15 @@ Provides-Extra: dev
|
|
|
42
42
|
Requires-Dist: build; extra == "dev"
|
|
43
43
|
Requires-Dist: pyinstaller; extra == "dev"
|
|
44
44
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
45
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
46
|
-
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
47
|
-
Requires-Dist: pytest-mock; extra == "dev"
|
|
45
|
+
Requires-Dist: pytest-cov>=7.1.0; extra == "dev"
|
|
46
|
+
Requires-Dist: pytest-asyncio>=1.3.0; extra == "dev"
|
|
47
|
+
Requires-Dist: pytest-mock>=3.15.1; extra == "dev"
|
|
48
|
+
Provides-Extra: docs
|
|
49
|
+
Requires-Dist: mkdocs>=1.6.1; extra == "docs"
|
|
50
|
+
Requires-Dist: mkdocs-material>=9.7.6; extra == "docs"
|
|
51
|
+
Requires-Dist: mkdocstrings[python]>=1.0.4; extra == "docs"
|
|
52
|
+
Requires-Dist: pymdown-extensions>=10.21.2; extra == "docs"
|
|
53
|
+
Requires-Dist: mkdocs-static-i18n>=1.3.1; extra == "docs"
|
|
48
54
|
Dynamic: license-file
|
|
49
55
|
|
|
50
56
|
<p align="center">
|
|
@@ -20,9 +20,16 @@ winotify
|
|
|
20
20
|
build
|
|
21
21
|
pyinstaller
|
|
22
22
|
pytest>=7.0.0
|
|
23
|
-
pytest-cov
|
|
24
|
-
pytest-asyncio
|
|
25
|
-
pytest-mock
|
|
23
|
+
pytest-cov>=7.1.0
|
|
24
|
+
pytest-asyncio>=1.3.0
|
|
25
|
+
pytest-mock>=3.15.1
|
|
26
|
+
|
|
27
|
+
[docs]
|
|
28
|
+
mkdocs>=1.6.1
|
|
29
|
+
mkdocs-material>=9.7.6
|
|
30
|
+
mkdocstrings[python]>=1.0.4
|
|
31
|
+
pymdown-extensions>=10.21.2
|
|
32
|
+
mkdocs-static-i18n>=1.3.1
|
|
26
33
|
|
|
27
34
|
[serve]
|
|
28
35
|
flask>=3.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
|
|
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
|
|
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
|
|
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
|