Open-AutoTools 0.0.3rc2__py3-none-any.whl → 0.0.3rc3__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.
- {Open_AutoTools-0.0.3rc2.dist-info → Open_AutoTools-0.0.3rc3.dist-info}/METADATA +58 -67
- {Open_AutoTools-0.0.3rc2.dist-info → Open_AutoTools-0.0.3rc3.dist-info}/RECORD +22 -9
- autotools/autocaps/commands.py +17 -0
- autotools/autodownload/commands.py +38 -0
- autotools/autodownload/core.py +138 -44
- autotools/autoip/commands.py +29 -0
- autotools/autolower/commands.py +17 -0
- autotools/autopassword/commands.py +76 -0
- autotools/autopassword/core.py +1 -0
- autotools/autospell/commands.py +123 -0
- autotools/autotranslate/commands.py +42 -0
- autotools/cli.py +30 -493
- autotools/test/__init__.py +3 -0
- autotools/test/commands.py +120 -0
- autotools/utils/__init__.py +5 -0
- autotools/utils/loading.py +16 -0
- autotools/utils/updates.py +30 -0
- autotools/utils/version.py +74 -0
- {Open_AutoTools-0.0.3rc2.dist-info → Open_AutoTools-0.0.3rc3.dist-info}/LICENSE +0 -0
- {Open_AutoTools-0.0.3rc2.dist-info → Open_AutoTools-0.0.3rc3.dist-info}/WHEEL +0 -0
- {Open_AutoTools-0.0.3rc2.dist-info → Open_AutoTools-0.0.3rc3.dist-info}/entry_points.txt +0 -0
- {Open_AutoTools-0.0.3rc2.dist-info → Open_AutoTools-0.0.3rc3.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from halo import Halo
|
|
2
|
+
|
|
3
|
+
class LoadingAnimation:
|
|
4
|
+
"""A CONTEXT MANAGER FOR DISPLAYING A LOADING ANIMATION"""
|
|
5
|
+
def __init__(self):
|
|
6
|
+
self._spinner = Halo(spinner={
|
|
7
|
+
'interval': 200,
|
|
8
|
+
'frames': [' ', '. ', '.. ', '...'],
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
def __enter__(self):
|
|
12
|
+
self._spinner.start()
|
|
13
|
+
return self
|
|
14
|
+
|
|
15
|
+
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
16
|
+
self._spinner.stop()
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import click
|
|
2
|
+
import requests
|
|
3
|
+
from importlib.metadata import version as get_version
|
|
4
|
+
from packaging.version import parse as parse_version
|
|
5
|
+
import pkg_resources
|
|
6
|
+
|
|
7
|
+
def check_for_updates():
|
|
8
|
+
"""CHECK IF AN UPDATE IS AVAILABLE AND RETURN UPDATE MESSAGE IF NEEDED"""
|
|
9
|
+
try:
|
|
10
|
+
dist = pkg_resources.get_distribution("Open-AutoTools")
|
|
11
|
+
current_version = parse_version(dist.version)
|
|
12
|
+
|
|
13
|
+
pypi_url = "https://pypi.org/pypi/Open-AutoTools/json"
|
|
14
|
+
response = requests.get(pypi_url)
|
|
15
|
+
|
|
16
|
+
if response.status_code == 200:
|
|
17
|
+
data = response.json()
|
|
18
|
+
latest_version = data["info"]["version"]
|
|
19
|
+
latest_parsed = parse_version(latest_version)
|
|
20
|
+
|
|
21
|
+
if latest_parsed > current_version:
|
|
22
|
+
update_cmd = "pip install --upgrade Open-AutoTools"
|
|
23
|
+
return (
|
|
24
|
+
click.style(f"\nUpdate available: v{latest_version}", fg='red', bold=True) + "\n" +
|
|
25
|
+
click.style(f"Run '{update_cmd}' to update", fg='red')
|
|
26
|
+
)
|
|
27
|
+
except Exception as e:
|
|
28
|
+
print(f"Error checking updates: {str(e)}")
|
|
29
|
+
|
|
30
|
+
return None
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import click
|
|
2
|
+
from importlib.metadata import version as get_version, PackageNotFoundError
|
|
3
|
+
import pkg_resources
|
|
4
|
+
import requests
|
|
5
|
+
from packaging.version import parse as parse_version
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
|
|
8
|
+
# VERSION CALLBACK
|
|
9
|
+
def print_version(ctx, param, value):
|
|
10
|
+
"""PRINT VERSION AND CHECK FOR UPDATES"""
|
|
11
|
+
if not value or ctx.resilient_parsing:
|
|
12
|
+
return
|
|
13
|
+
|
|
14
|
+
try:
|
|
15
|
+
# GET CURRENT VERSION
|
|
16
|
+
pkg_version = get_version('Open-AutoTools')
|
|
17
|
+
click.echo(f"Open-AutoTools version {pkg_version}")
|
|
18
|
+
|
|
19
|
+
# GET DISTRIBUTION INFO
|
|
20
|
+
dist = pkg_resources.get_distribution("Open-AutoTools")
|
|
21
|
+
current_version = parse_version(dist.version)
|
|
22
|
+
|
|
23
|
+
# GET LATEST VERSION FROM PYPI
|
|
24
|
+
pypi_url = "https://pypi.org/pypi/Open-AutoTools/json"
|
|
25
|
+
response = requests.get(pypi_url)
|
|
26
|
+
|
|
27
|
+
# CHECK IF RESPONSE IS SUCCESSFUL
|
|
28
|
+
if response.status_code == 200:
|
|
29
|
+
data = response.json()
|
|
30
|
+
latest_version = data["info"]["version"]
|
|
31
|
+
releases = data["releases"]
|
|
32
|
+
|
|
33
|
+
# GET RELEASE DATE
|
|
34
|
+
if pkg_version in releases and releases[pkg_version]:
|
|
35
|
+
try:
|
|
36
|
+
upload_time = releases[pkg_version][0]["upload_time"]
|
|
37
|
+
for date_format in [
|
|
38
|
+
"%Y-%m-%dT%H:%M:%S",
|
|
39
|
+
"%Y-%m-%dT%H:%M:%S.%fZ",
|
|
40
|
+
"%Y-%m-%d %H:%M:%S"
|
|
41
|
+
]:
|
|
42
|
+
# TRY TO PARSE DATE
|
|
43
|
+
try:
|
|
44
|
+
published_date = datetime.strptime(upload_time, date_format)
|
|
45
|
+
formatted_date = published_date.strftime("%d %B %Y at %H:%M:%S")
|
|
46
|
+
# CHECK IF VERSION IS RC
|
|
47
|
+
if "rc" in pkg_version.lower():
|
|
48
|
+
click.echo(f"Pre-Released: {formatted_date}")
|
|
49
|
+
else:
|
|
50
|
+
click.echo(f"Released: {formatted_date}")
|
|
51
|
+
break
|
|
52
|
+
except ValueError:
|
|
53
|
+
continue
|
|
54
|
+
except Exception:
|
|
55
|
+
pass # SKIP DATE IF PARSING FAILS
|
|
56
|
+
|
|
57
|
+
# CHECK FOR UPDATES
|
|
58
|
+
latest_parsed = parse_version(latest_version)
|
|
59
|
+
|
|
60
|
+
# COMPARE VERSIONS AND PRINT UPDATE MESSAGE IF NEEDED
|
|
61
|
+
if latest_parsed > current_version:
|
|
62
|
+
update_cmd = "pip install --upgrade Open-AutoTools"
|
|
63
|
+
click.echo(click.style(f"\nUpdate available: v{latest_version}", fg='red', bold=True))
|
|
64
|
+
click.echo(click.style(f"Run '{update_cmd}' to update", fg='red'))
|
|
65
|
+
|
|
66
|
+
# EXCEPTIONS FOR ERRORS
|
|
67
|
+
except pkg_resources.DistributionNotFound:
|
|
68
|
+
click.echo("Package distribution not found")
|
|
69
|
+
except PackageNotFoundError:
|
|
70
|
+
click.echo("Open-AutoTools version information not available")
|
|
71
|
+
except Exception as e:
|
|
72
|
+
click.echo(f"Error checking updates: {str(e)}")
|
|
73
|
+
|
|
74
|
+
ctx.exit()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|