anipy-cli 3.5.9__py3-none-any.whl → 3.7.0__py3-none-any.whl
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.
Potentially problematic release.
This version of anipy-cli might be problematic. Click here for more details.
- anipy_cli/__init__.py +1 -1
- anipy_cli/anilist_proxy.py +221 -0
- anipy_cli/arg_parser.py +39 -0
- anipy_cli/cli.py +23 -2
- anipy_cli/clis/__init__.py +2 -0
- anipy_cli/clis/anilist_cli.py +62 -0
- anipy_cli/colors.py +7 -4
- anipy_cli/config.py +47 -43
- anipy_cli/download_component.py +17 -7
- anipy_cli/logger.py +199 -0
- anipy_cli/mal_proxy.py +9 -9
- anipy_cli/menus/__init__.py +2 -1
- anipy_cli/menus/anilist_menu.py +648 -0
- anipy_cli/menus/base_menu.py +4 -5
- anipy_cli/menus/mal_menu.py +15 -15
- anipy_cli/menus/menu.py +5 -2
- anipy_cli/menus/seasonal_menu.py +4 -4
- anipy_cli/util.py +22 -5
- {anipy_cli-3.5.9.dist-info → anipy_cli-3.7.0.dist-info}/METADATA +2 -2
- anipy_cli-3.7.0.dist-info/RECORD +31 -0
- anipy_cli-3.5.9.dist-info/RECORD +0 -27
- {anipy_cli-3.5.9.dist-info → anipy_cli-3.7.0.dist-info}/WHEEL +0 -0
- {anipy_cli-3.5.9.dist-info → anipy_cli-3.7.0.dist-info}/entry_points.txt +0 -0
anipy_cli/menus/mal_menu.py
CHANGED
|
@@ -189,19 +189,19 @@ class MALMenu(MenuBase):
|
|
|
189
189
|
config = Config()
|
|
190
190
|
|
|
191
191
|
choices = []
|
|
192
|
-
if config.
|
|
192
|
+
if config.tracker_dub_tag:
|
|
193
193
|
choices.append(
|
|
194
194
|
Choice(
|
|
195
|
-
value=config.
|
|
196
|
-
name=f"{config.
|
|
195
|
+
value=config.tracker_dub_tag,
|
|
196
|
+
name=f"{config.tracker_dub_tag} (sets wheter you prefer to watch a particular anime in dub)",
|
|
197
197
|
)
|
|
198
198
|
)
|
|
199
199
|
|
|
200
|
-
if config.
|
|
200
|
+
if config.tracker_ignore_tag:
|
|
201
201
|
choices.append(
|
|
202
202
|
Choice(
|
|
203
|
-
value=config.
|
|
204
|
-
name=f"{config.
|
|
203
|
+
value=config.tracker_ignore_tag,
|
|
204
|
+
name=f"{config.tracker_ignore_tag} (sets wheter anipy-cli will ignore a particular anime)",
|
|
205
205
|
)
|
|
206
206
|
)
|
|
207
207
|
|
|
@@ -275,7 +275,7 @@ class MALMenu(MenuBase):
|
|
|
275
275
|
)
|
|
276
276
|
DownloadComponent.serve_download_errors(errors)
|
|
277
277
|
|
|
278
|
-
self.print_options(
|
|
278
|
+
self.print_options(should_clear_screen=len(errors) == 0)
|
|
279
279
|
|
|
280
280
|
def binge_latest(self):
|
|
281
281
|
picked = self._choose_latest()
|
|
@@ -320,12 +320,12 @@ class MALMenu(MenuBase):
|
|
|
320
320
|
with DotSpinner("Syncing Seasonals into MyAnimeList") as s:
|
|
321
321
|
for k, v in mappings.items():
|
|
322
322
|
tags = set()
|
|
323
|
-
if config.
|
|
323
|
+
if config.tracker_dub_tag:
|
|
324
324
|
if k.language == LanguageTypeEnum.DUB:
|
|
325
|
-
tags.add(config.
|
|
325
|
+
tags.add(config.tracker_dub_tag)
|
|
326
326
|
|
|
327
327
|
if v.my_list_status:
|
|
328
|
-
if config.
|
|
328
|
+
if config.tracker_ignore_tag in v.my_list_status.tags:
|
|
329
329
|
continue
|
|
330
330
|
tags |= set(v.my_list_status.tags)
|
|
331
331
|
|
|
@@ -343,8 +343,8 @@ class MALMenu(MenuBase):
|
|
|
343
343
|
mappings = self._create_maps_mal(mylist)
|
|
344
344
|
with DotSpinner("Syncing MyAnimeList into Seasonals") as s:
|
|
345
345
|
for k, v in mappings.items():
|
|
346
|
-
if config.
|
|
347
|
-
if k.my_list_status and config.
|
|
346
|
+
if config.tracker_dub_tag:
|
|
347
|
+
if k.my_list_status and config.tracker_dub_tag in k.my_list_status.tags:
|
|
348
348
|
pref_lang = LanguageTypeEnum.DUB
|
|
349
349
|
else:
|
|
350
350
|
pref_lang = LanguageTypeEnum.SUB
|
|
@@ -444,8 +444,8 @@ class MALMenu(MenuBase):
|
|
|
444
444
|
)
|
|
445
445
|
continue
|
|
446
446
|
|
|
447
|
-
if config.
|
|
448
|
-
if e.my_list_status and config.
|
|
447
|
+
if config.tracker_dub_tag:
|
|
448
|
+
if e.my_list_status and config.tracker_dub_tag in e.my_list_status.tags:
|
|
449
449
|
pref_lang = LanguageTypeEnum.DUB
|
|
450
450
|
else:
|
|
451
451
|
pref_lang = LanguageTypeEnum.SUB
|
|
@@ -629,7 +629,7 @@ class MALMenu(MenuBase):
|
|
|
629
629
|
def _format_mal_anime(anime: MALAnime) -> str:
|
|
630
630
|
config = Config()
|
|
631
631
|
dub = (
|
|
632
|
-
config.
|
|
632
|
+
config.tracker_dub_tag in anime.my_list_status.tags
|
|
633
633
|
if anime.my_list_status
|
|
634
634
|
else False
|
|
635
635
|
)
|
anipy_cli/menus/menu.py
CHANGED
|
@@ -6,6 +6,7 @@ from InquirerPy.base.control import Choice
|
|
|
6
6
|
from anipy_api.download import Downloader
|
|
7
7
|
from anipy_api.provider import LanguageTypeEnum, ProviderStream
|
|
8
8
|
from anipy_api.locallist import LocalList
|
|
9
|
+
import anipy_cli.logger as logger
|
|
9
10
|
|
|
10
11
|
from anipy_cli.colors import colors, cprint
|
|
11
12
|
from anipy_cli.config import Config
|
|
@@ -221,10 +222,12 @@ class Menu(MenuBase):
|
|
|
221
222
|
def progress_indicator(percentage: float):
|
|
222
223
|
s.set_text(f"Downloading ({percentage:.1f}%)")
|
|
223
224
|
|
|
224
|
-
def info_display(message: str):
|
|
225
|
+
def info_display(message: str, exc_info: BaseException | None = None):
|
|
226
|
+
logger.info(message, exc_info, exc_info is not None)
|
|
225
227
|
s.write(f"> {message}")
|
|
226
228
|
|
|
227
|
-
def error_display(message: str):
|
|
229
|
+
def error_display(message: str, exc_info: BaseException | None = None):
|
|
230
|
+
logger.error(message, exc_info)
|
|
228
231
|
s.write(f"{colors.RED}! {message}{colors.END}")
|
|
229
232
|
|
|
230
233
|
downloader = Downloader(progress_indicator, info_display, error_display)
|
anipy_cli/menus/seasonal_menu.py
CHANGED
|
@@ -8,7 +8,7 @@ from anipy_api.anime import Anime
|
|
|
8
8
|
from anipy_api.provider import LanguageTypeEnum
|
|
9
9
|
from anipy_api.provider.base import Episode
|
|
10
10
|
from anipy_api.locallist import LocalList, LocalListEntry
|
|
11
|
-
from anipy_api.error import
|
|
11
|
+
from anipy_api.error import ProviderNotAvailableError
|
|
12
12
|
from InquirerPy import inquirer
|
|
13
13
|
from InquirerPy.base.control import Choice
|
|
14
14
|
from InquirerPy.utils import get_style
|
|
@@ -67,7 +67,7 @@ class SeasonalMenu(MenuBase):
|
|
|
67
67
|
for s in self.seasonal_list.get_all():
|
|
68
68
|
try:
|
|
69
69
|
anime = Anime.from_local_list_entry(s)
|
|
70
|
-
except
|
|
70
|
+
except ProviderNotAvailableError:
|
|
71
71
|
error(
|
|
72
72
|
f"Can not load '{s.name}' because the configured provider"
|
|
73
73
|
f" '{s.provider}' was not found, maybe try to migrate"
|
|
@@ -212,7 +212,7 @@ class SeasonalMenu(MenuBase):
|
|
|
212
212
|
|
|
213
213
|
def migrate_provider(self):
|
|
214
214
|
migrate_provider("seasonal", self.seasonal_list)
|
|
215
|
-
self.print_options(
|
|
215
|
+
self.print_options(should_clear_screen=True)
|
|
216
216
|
|
|
217
217
|
def download_latest(self):
|
|
218
218
|
picked = self._choose_latest()
|
|
@@ -232,7 +232,7 @@ class SeasonalMenu(MenuBase):
|
|
|
232
232
|
|
|
233
233
|
if not self.options.auto_update:
|
|
234
234
|
# Clear screen only if there were no issues
|
|
235
|
-
self.print_options(
|
|
235
|
+
self.print_options(should_clear_screen=len(failed_series) == 0)
|
|
236
236
|
|
|
237
237
|
def binge_latest(self):
|
|
238
238
|
picked = self._choose_latest()
|
anipy_cli/util.py
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import os
|
|
1
3
|
import sys
|
|
2
4
|
import subprocess as sp
|
|
3
5
|
from pathlib import Path
|
|
4
6
|
from typing import (
|
|
5
7
|
TYPE_CHECKING,
|
|
8
|
+
Any,
|
|
6
9
|
Iterator,
|
|
7
10
|
List,
|
|
8
11
|
Literal,
|
|
@@ -12,6 +15,8 @@ from typing import (
|
|
|
12
15
|
overload,
|
|
13
16
|
)
|
|
14
17
|
|
|
18
|
+
import anipy_cli.logger as logger
|
|
19
|
+
|
|
15
20
|
from anipy_api.anime import Anime
|
|
16
21
|
from anipy_api.download import Downloader, PostDownloadCallback
|
|
17
22
|
from anipy_api.locallist import LocalListData
|
|
@@ -31,7 +36,7 @@ if TYPE_CHECKING:
|
|
|
31
36
|
|
|
32
37
|
|
|
33
38
|
class DotSpinner(Yaspin):
|
|
34
|
-
def __init__(self, *text_and_colors, **spinner_args):
|
|
39
|
+
def __init__(self, *text_and_colors: Any, **spinner_args: Any):
|
|
35
40
|
super().__init__(
|
|
36
41
|
text=color(*text_and_colors),
|
|
37
42
|
color="cyan",
|
|
@@ -43,21 +48,26 @@ class DotSpinner(Yaspin):
|
|
|
43
48
|
self.start()
|
|
44
49
|
return self
|
|
45
50
|
|
|
46
|
-
def set_text(self, *text_and_colors):
|
|
51
|
+
def set_text(self, *text_and_colors: Any):
|
|
47
52
|
self.text = color(*text_and_colors)
|
|
48
53
|
|
|
49
54
|
|
|
50
55
|
@overload
|
|
51
56
|
def error(error: str, fatal: Literal[True]) -> NoReturn: ...
|
|
52
57
|
@overload
|
|
53
|
-
def error(
|
|
58
|
+
def error(
|
|
59
|
+
error: str, fatal: Literal[False] = ..., log_level: int = logging.INFO
|
|
60
|
+
) -> None: ...
|
|
54
61
|
|
|
55
62
|
|
|
56
|
-
def error(
|
|
63
|
+
def error(
|
|
64
|
+
error: str, fatal: bool = False, log_level: int = logging.INFO
|
|
65
|
+
) -> Union[NoReturn, None]:
|
|
57
66
|
if not fatal:
|
|
58
67
|
sys.stderr.write(
|
|
59
68
|
color(colors.RED, "anipy-cli: error: ", colors.END, f"{error}\n")
|
|
60
69
|
)
|
|
70
|
+
logger.log(log_level, error)
|
|
61
71
|
return
|
|
62
72
|
|
|
63
73
|
sys.stderr.write(
|
|
@@ -68,9 +78,16 @@ def error(error: str, fatal: bool = False) -> Union[NoReturn, None]:
|
|
|
68
78
|
f"{error}, exiting\n",
|
|
69
79
|
)
|
|
70
80
|
)
|
|
81
|
+
logger.warn(error)
|
|
71
82
|
sys.exit(1)
|
|
72
83
|
|
|
73
84
|
|
|
85
|
+
def clear_screen():
|
|
86
|
+
if logger.get_console_log_level() < 60:
|
|
87
|
+
return
|
|
88
|
+
os.system("cls" if os.name == "nt" else "clear")
|
|
89
|
+
|
|
90
|
+
|
|
74
91
|
def get_prefered_providers(mode: str) -> Iterator["BaseProvider"]:
|
|
75
92
|
config = Config()
|
|
76
93
|
preferred_providers = config.providers[mode]
|
|
@@ -206,7 +223,7 @@ def get_configured_player(player_override: Optional[str] = None) -> "PlayerBase"
|
|
|
206
223
|
return get_player(player, args, discord_cb)
|
|
207
224
|
|
|
208
225
|
|
|
209
|
-
def get_anime_season(month):
|
|
226
|
+
def get_anime_season(month: int):
|
|
210
227
|
if 1 <= month <= 3:
|
|
211
228
|
return "Winter"
|
|
212
229
|
elif 4 <= month <= 6:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: anipy-cli
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.7.0
|
|
4
4
|
Summary: Watch and Download anime from the comfort of your Terminal
|
|
5
5
|
License: GPL-3.0
|
|
6
6
|
Keywords: anime,cli
|
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
-
Requires-Dist: anipy-api (>=3.
|
|
17
|
+
Requires-Dist: anipy-api (>=3.7.0,<4.0.0)
|
|
18
18
|
Requires-Dist: appdirs (>=1.4.4,<2.0.0)
|
|
19
19
|
Requires-Dist: inquirerpy (>=0.3.4,<0.4.0)
|
|
20
20
|
Requires-Dist: pypresence (>=4.3.0,<5.0.0)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
anipy_cli/__init__.py,sha256=EL0yP7gZXBY46LGldGizAg2y65A4G__8xgoFACNgKns,48
|
|
2
|
+
anipy_cli/anilist_proxy.py,sha256=Uc1fyiz6wOGNMZgBvt312qfVElkAWPkzz4RV8PQH_mw,7293
|
|
3
|
+
anipy_cli/arg_parser.py,sha256=eWoWZCtjMBCj-VY7Nc_Qd1tm4JKE0e4CO5K-yXY96bQ,7496
|
|
4
|
+
anipy_cli/cli.py,sha256=XHWIwjCRxRhzrwOB8sjaA7pf8UzJUH1DWMHucxYbhJ8,2902
|
|
5
|
+
anipy_cli/clis/__init__.py,sha256=zJrVQnb9E1sDsZKdFT1aoD9zNKrWxa291ZR0sPjBbRY,479
|
|
6
|
+
anipy_cli/clis/anilist_cli.py,sha256=XuDmEnAwOpXn3AtH2M3I7SHH_o0btOmEIaGh_jDHa3A,1857
|
|
7
|
+
anipy_cli/clis/base_cli.py,sha256=JfS7mnxNgTK4_Pqeg4IyjHluhfVyO_YLL_TqdyTtyiQ,803
|
|
8
|
+
anipy_cli/clis/binge_cli.py,sha256=ioZ-V0WfGYBqETFkd8epGrT9dPHwsRJ1qvIdqf4waIs,2551
|
|
9
|
+
anipy_cli/clis/default_cli.py,sha256=aJrJwtwdD7l-Z3dMjSHlvMvgTVnwA3_OXwS-9DZQIy8,3078
|
|
10
|
+
anipy_cli/clis/download_cli.py,sha256=sREoLhgiPk5nQ7eFzbbGznyt80_uaE4VhiOCxrg4ce0,2400
|
|
11
|
+
anipy_cli/clis/history_cli.py,sha256=2ccv6BpQQpUhY4K-KM7lO9qxVLXBrmCY5lec6czipSE,2863
|
|
12
|
+
anipy_cli/clis/mal_cli.py,sha256=_tSLgDUOa6GOZNyCncSSzaVj088y5GAKkHVRSndLLxk,2258
|
|
13
|
+
anipy_cli/clis/seasonal_cli.py,sha256=GV2TQNm9UotG1cxfYbrFFgg7Jmy8SFa7w_GlFtPdRVE,616
|
|
14
|
+
anipy_cli/colors.py,sha256=l4KJoAMnkie6guktKMnYcfAHajPTMamTsPHiUIxF92c,974
|
|
15
|
+
anipy_cli/config.py,sha256=lIs1eEwFWdmY_dAvY4AspHUQwUxp8kMBmiXanyuYFAo,18328
|
|
16
|
+
anipy_cli/discord.py,sha256=c6mdqnEdblzZBYs3cGP66oDeS4ySm59OfTRP-R-Duls,1160
|
|
17
|
+
anipy_cli/download_component.py,sha256=8W_AMeT1pIdA18uaMQosf6W7V9QhF-hf5nipZ0UwGvw,6216
|
|
18
|
+
anipy_cli/logger.py,sha256=beLn_fr4iRFU_AuUvhuA6Y25X4kheK7Hr6mQmugvXi0,5194
|
|
19
|
+
anipy_cli/mal_proxy.py,sha256=qlV-sLE_ergyM4zPjFSvTdCLvjzwdfIJZlwJNKTTHlY,7134
|
|
20
|
+
anipy_cli/menus/__init__.py,sha256=U9RLQ61ulY3MpHvz3Q02my_q61LoM3KY1SLd9v3JhnY,253
|
|
21
|
+
anipy_cli/menus/anilist_menu.py,sha256=54OHxBCqxME40227fhar4n685NQlFZPIqmpvGT8rtlc,24134
|
|
22
|
+
anipy_cli/menus/base_menu.py,sha256=vDvPI36grmk0Dklthj3d_3yE_vG9oyHWNrWwVvJLxpg,1132
|
|
23
|
+
anipy_cli/menus/mal_menu.py,sha256=9z8FbwLH8py6TY0pq7Llk3cNPRCVgKUnmBvcTbItQDk,23760
|
|
24
|
+
anipy_cli/menus/menu.py,sha256=BasA7VOLS8ajlAJ2pFANiHm9BeBiRDSdyThWBcA4AjE,8645
|
|
25
|
+
anipy_cli/menus/seasonal_menu.py,sha256=CdtK1Z98z31et0q18MeVqdsIrP3IWOxX9CALOyTRCDE,8949
|
|
26
|
+
anipy_cli/prompts.py,sha256=fegNqV7mPxY2bG6OjrB23hjFce9GvOyLisA3eHrJegs,11909
|
|
27
|
+
anipy_cli/util.py,sha256=D-eSkUakEk6WMT-eHfTdzfM8THdIrdQUV8z-wnEMtq8,7102
|
|
28
|
+
anipy_cli-3.7.0.dist-info/METADATA,sha256=iGLLRp1HMXMlT8Rc4APSUUUaCz2lJSbiJe0TH-Nqqm8,3481
|
|
29
|
+
anipy_cli-3.7.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
30
|
+
anipy_cli-3.7.0.dist-info/entry_points.txt,sha256=86iXpcm_ECFndrt0JAI2mqYfXC2Ar7mGi0iOaxCrNP0,51
|
|
31
|
+
anipy_cli-3.7.0.dist-info/RECORD,,
|
anipy_cli-3.5.9.dist-info/RECORD
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
anipy_cli/__init__.py,sha256=3dreDxFAFg1K_OCOBdPxVErQrRu-mCB5jbEa3bN2sVI,48
|
|
2
|
-
anipy_cli/arg_parser.py,sha256=efUOHrMcKkEELbkxsudSzHC0FF2Z_tSFDTmDBqirVGY,6459
|
|
3
|
-
anipy_cli/cli.py,sha256=Bk2H15VRF34yKLbGgKVq0A2vdByMJj-JTyx7Ep-JbH0,2238
|
|
4
|
-
anipy_cli/clis/__init__.py,sha256=Y00uiPWiMvvRImxJMvfLA55BOkMUOrrx5vJUNvquNsY,411
|
|
5
|
-
anipy_cli/clis/base_cli.py,sha256=JfS7mnxNgTK4_Pqeg4IyjHluhfVyO_YLL_TqdyTtyiQ,803
|
|
6
|
-
anipy_cli/clis/binge_cli.py,sha256=ioZ-V0WfGYBqETFkd8epGrT9dPHwsRJ1qvIdqf4waIs,2551
|
|
7
|
-
anipy_cli/clis/default_cli.py,sha256=aJrJwtwdD7l-Z3dMjSHlvMvgTVnwA3_OXwS-9DZQIy8,3078
|
|
8
|
-
anipy_cli/clis/download_cli.py,sha256=sREoLhgiPk5nQ7eFzbbGznyt80_uaE4VhiOCxrg4ce0,2400
|
|
9
|
-
anipy_cli/clis/history_cli.py,sha256=2ccv6BpQQpUhY4K-KM7lO9qxVLXBrmCY5lec6czipSE,2863
|
|
10
|
-
anipy_cli/clis/mal_cli.py,sha256=_tSLgDUOa6GOZNyCncSSzaVj088y5GAKkHVRSndLLxk,2258
|
|
11
|
-
anipy_cli/clis/seasonal_cli.py,sha256=GV2TQNm9UotG1cxfYbrFFgg7Jmy8SFa7w_GlFtPdRVE,616
|
|
12
|
-
anipy_cli/colors.py,sha256=voXC7z1Fs9tHg4zzNTNMIrt9k-EVgJ3_xEf5KiW2xgo,916
|
|
13
|
-
anipy_cli/config.py,sha256=Vc2KlfbZddQw7Jb8GNUAiUSAGjKVgdRo4h8icClW75k,17975
|
|
14
|
-
anipy_cli/discord.py,sha256=c6mdqnEdblzZBYs3cGP66oDeS4ySm59OfTRP-R-Duls,1160
|
|
15
|
-
anipy_cli/download_component.py,sha256=5TxlipuaN0tHZkysOmGJB8kd9CxJBXuD_CGnYzU4r-Q,5590
|
|
16
|
-
anipy_cli/mal_proxy.py,sha256=me2ESB442pYeNEpHY8mqrOEb477UA0uAg2LprKcp8sM,7098
|
|
17
|
-
anipy_cli/menus/__init__.py,sha256=aIzbphxAW-QGfZwR1DIegFZuTJp1O3tSUnai0f0f4lY,185
|
|
18
|
-
anipy_cli/menus/base_menu.py,sha256=g5b9Z7SpvCxcq_vqObcPzxLwcXeGPltLgSwa0sEzyfk,1140
|
|
19
|
-
anipy_cli/menus/mal_menu.py,sha256=jAVJh7K5d0BCnoT4qUIZ7CavrnrctXj-eg9k8E90ulE,23697
|
|
20
|
-
anipy_cli/menus/menu.py,sha256=QEZfUr_9Epc9ghuZDZGxJxBkmcQK86ZXJaMChzzygko,8416
|
|
21
|
-
anipy_cli/menus/seasonal_menu.py,sha256=rH_6XRKN_2DvMAo5LHuzoO8aATkHgz66dO3kGATnGLs,8925
|
|
22
|
-
anipy_cli/prompts.py,sha256=fegNqV7mPxY2bG6OjrB23hjFce9GvOyLisA3eHrJegs,11909
|
|
23
|
-
anipy_cli/util.py,sha256=Omoq_OtfyxUYvaWyjsinDv50xNVHtDEDVb2cQAGVwu8,6745
|
|
24
|
-
anipy_cli-3.5.9.dist-info/METADATA,sha256=Qm19pWu5D4ZqqCUs0DC-QGnSBsVTWRHPPhJG_4JUfK8,3481
|
|
25
|
-
anipy_cli-3.5.9.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
26
|
-
anipy_cli-3.5.9.dist-info/entry_points.txt,sha256=86iXpcm_ECFndrt0JAI2mqYfXC2Ar7mGi0iOaxCrNP0,51
|
|
27
|
-
anipy_cli-3.5.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|