Skip to content

Commit 4491290

Browse files
Uses snakesay in all the places it was used inside core package and removed in the new version.
1 parent 1df997d commit 4491290

19 files changed

+146
-13
lines changed

cli/django.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def autoconfigure(
4747
"""
4848
domain = ensure_domain(domain_name)
4949
project = DjangoProject(domain, python_version)
50+
typer.echo(snakesay("Running sanity checks"))
5051
project.sanity_checks(nuke=nuke)
5152
project.download_repo(repo_url, nuke=nuke),
5253
project.ensure_branch(branch),
@@ -94,6 +95,7 @@ def start(
9495
"""
9596
domain = ensure_domain(domain_name)
9697
project = DjangoProject(domain, python_version)
98+
typer.echo(snakesay("Running sanity checks"))
9799
project.sanity_checks(nuke=nuke)
98100
project.create_virtualenv(django_version, nuke=nuke)
99101
project.run_startproject(nuke=nuke)

cli/webapp.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
from pathlib import Path
55

66
import typer
7+
from pythonanywhere_core.exceptions import MissingCNAMEException
78
from pythonanywhere_core.webapp import Webapp
89
from snakesay import snakesay
910
from tabulate import tabulate
1011

1112
from pythonanywhere.project import Project
12-
from pythonanywhere.utils import ensure_domain
13+
from pythonanywhere.utils import ensure_domain, format_log_deletion_message
1314

1415
app = typer.Typer(no_args_is_help=True)
1516

@@ -73,6 +74,7 @@ def create(
7374
"""Create a new webapp with virtualenv and project setup"""
7475
domain = ensure_domain(domain_name)
7576
project = Project(domain, python_version)
77+
typer.echo(snakesay("Running sanity checks"))
7678
project.sanity_checks(nuke=nuke)
7779
project.virtualenv.create(nuke=nuke)
7880
project.create_webapp(nuke=nuke)
@@ -102,7 +104,10 @@ def reload(
102104
domain_name = ensure_domain(domain_name)
103105
webapp = Webapp(domain_name)
104106
typer.echo(snakesay(f"Reloading {domain_name} via API"))
105-
webapp.reload()
107+
try:
108+
webapp.reload()
109+
except MissingCNAMEException as e:
110+
typer.echo(snakesay(str(e)))
106111
typer.echo(snakesay(f"{domain_name} has been reloaded"))
107112

108113

@@ -146,7 +151,10 @@ def install_ssl(
146151
webapp = Webapp(domain_name)
147152
webapp.set_ssl(certificate, private_key)
148153
if not suppress_reload:
149-
webapp.reload()
154+
try:
155+
webapp.reload()
156+
except MissingCNAMEException as e:
157+
typer.echo(snakesay(str(e)))
150158

151159
ssl_details = webapp.get_ssl_info()
152160
typer.echo(
@@ -197,20 +205,25 @@ def delete_logs(
197205
),
198206
):
199207
"""Delete webapp log files (access, error, server logs)"""
200-
webapp = Webapp(ensure_domain(domain_name))
208+
domain = ensure_domain(domain_name)
209+
webapp = Webapp(domain)
201210
log_types = ["access", "error", "server"]
202211
logs = webapp.get_log_info()
203212
if log_type == "all" and log_index == "all":
204213
for key in log_types:
205214
for log in logs[key]:
215+
typer.echo(snakesay(format_log_deletion_message(domain, key, log)))
206216
webapp.delete_log(key, log)
207217
elif log_type == "all":
208218
for key in log_types:
219+
typer.echo(snakesay(format_log_deletion_message(domain, key, int(log_index))))
209220
webapp.delete_log(key, int(log_index))
210221
elif log_index == "all":
211222
for i in logs[log_type]:
223+
typer.echo(snakesay(format_log_deletion_message(domain, log_type.value, i)))
212224
webapp.delete_log(log_type, int(i))
213225
else:
226+
typer.echo(snakesay(format_log_deletion_message(domain, log_type.value, int(log_index))))
214227
webapp.delete_log(log_type, int(log_index))
215228
typer.echo(snakesay("All done!"))
216229

pythonanywhere/project.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from pathlib import Path
22
import uuid
33

4+
from pythonanywhere_core.exceptions import MissingCNAMEException
45
from pythonanywhere_core.webapp import Webapp
56
from snakesay import snakesay
67

@@ -45,7 +46,10 @@ def create_webapp(self, nuke):
4546

4647
def reload_webapp(self):
4748
print(snakesay(f"Reloading web app on {self.domain}"))
48-
self.webapp.reload()
49+
try:
50+
self.webapp.reload()
51+
except MissingCNAMEException as e:
52+
print(snakesay(str(e)))
4953

5054
def add_static_file_mappings(self):
5155
print(snakesay("Adding static files mappings for /static/ and /media/"))

pythonanywhere/utils.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,19 @@ def ensure_domain(domain):
99
return f"{username}.{pa_domain}"
1010
else:
1111
return domain
12+
13+
14+
def format_log_deletion_message(domain, log_type, log_index):
15+
"""Generate message describing log deletion.
16+
17+
Args:
18+
domain: Domain name (e.g., 'www.example.com')
19+
log_type: Log type string ('access', 'error', or 'server')
20+
log_index: 0 for current log, >0 for archived log
21+
22+
Returns:
23+
Formatted message string
24+
"""
25+
if log_index:
26+
return f"Deleting old (archive number {log_index}) {log_type} log file for {domain} via API"
27+
return f"Deleting current {log_type} log file for {domain} via API"

pythonanywhere/utils.pyi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
def ensure_domain(domain: str) -> str: ...
2+
3+
def format_log_deletion_message(domain: str, log_type: str, log_index: int) -> str: ...

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ pytest==8.4.2
88
pytest-cov==7.0.0
99
pytest-mock==3.15.1
1010
pytest-mypy==1.0.1
11-
pythonanywhere_core==0.2.8
11+
pythonanywhere_core==0.2.9
1212
requests==2.32.5
1313
responses==0.25.8
1414
schema==0.7.2

scripts/pa_autoconfigure_django.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
def main(repo_url, branch, domain, python_version, nuke):
2828
domain = ensure_domain(domain)
2929
project = DjangoProject(domain, python_version)
30+
print(snakesay("Running sanity checks"))
3031
project.sanity_checks(nuke=nuke)
3132
project.download_repo(repo_url, nuke=nuke),
3233
project.ensure_branch(branch),

scripts/pa_create_webapp_with_virtualenv.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
def main(domain, python_version, nuke):
2929
domain = ensure_domain(domain)
3030
project = Project(domain, python_version)
31+
print(snakesay("Running sanity checks"))
3132
project.sanity_checks(nuke=nuke)
3233
project.virtualenv.create(nuke=nuke)
3334
project.create_webapp(nuke=nuke)

scripts/pa_delete_webapp_logs.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,29 @@
1717
from pythonanywhere_core.webapp import Webapp
1818
from snakesay import snakesay
1919

20-
from pythonanywhere.utils import ensure_domain
20+
from pythonanywhere.utils import ensure_domain, format_log_deletion_message
2121

2222

2323
def main(domain, log_type, log_index):
24-
webapp = Webapp(ensure_domain(domain))
24+
domain = ensure_domain(domain)
25+
webapp = Webapp(domain)
2526
log_types = ["access", "error", "server"]
2627
logs = webapp.get_log_info()
2728
if log_type == "all" and log_index == "all":
2829
for key in log_types:
2930
for log in logs[key]:
31+
print(snakesay(format_log_deletion_message(domain, key, log)))
3032
webapp.delete_log(key, log)
3133
elif log_type == "all":
3234
for key in log_types:
35+
print(snakesay(format_log_deletion_message(domain, key, int(log_index))))
3336
webapp.delete_log(key, int(log_index))
3437
elif log_index == "all":
3538
for i in logs[log_type]:
39+
print(snakesay(format_log_deletion_message(domain, log_type, i)))
3640
webapp.delete_log(log_type, int(i))
3741
else:
42+
print(snakesay(format_log_deletion_message(domain, log_type, int(log_index))))
3843
webapp.delete_log(log_type, int(log_index))
3944
print(snakesay('All Done!'))
4045

scripts/pa_install_webapp_letsencrypt_ssl.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import os
1818
import sys
1919

20+
from pythonanywhere_core.exceptions import MissingCNAMEException
2021
from pythonanywhere_core.webapp import Webapp
2122
from snakesay import snakesay
2223

@@ -40,7 +41,10 @@ def main(domain_name, suppress_reload):
4041
webapp = Webapp(domain_name)
4142
webapp.set_ssl(certificate, private_key)
4243
if not suppress_reload:
43-
webapp.reload()
44+
try:
45+
webapp.reload()
46+
except MissingCNAMEException as e:
47+
print(snakesay(str(e)))
4448

4549
ssl_details = webapp.get_ssl_info()
4650
print(

0 commit comments

Comments
 (0)