-
-
Notifications
You must be signed in to change notification settings - Fork 653
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add autopep8 configuration and integrate into workflows for code form…
…atting
- Loading branch information
1 parent
838569e
commit 225ab67
Showing
9 changed files
with
156 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
[tool.autopep8] | ||
max_line_length = 120 | ||
ignore = "E501,W6" # or ["E501", "W6"] | ||
recursive = true | ||
aggressive = 3 | ||
indent_size = 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
autopep8==2.3.1 | ||
click==8.1.8 | ||
mypy-extensions==1.0.0 | ||
packaging==24.2 | ||
pathspec==0.12.1 | ||
platformdirs==4.3.6 | ||
pycodestyle==2.12.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,61 +1,76 @@ | ||
import json | ||
import os | ||
import sys | ||
import requests | ||
from typing import Optional | ||
|
||
RESPONSE_FILENAME = 'rc-response.json' | ||
METADATA_FILENAME = 'surfer.json' | ||
RESPONSE_FILENAME = "rc-response.json" | ||
METADATA_FILENAME = "surfer.json" | ||
|
||
|
||
def get_current_version() -> Optional[str]: | ||
"""Retrieve the current version from the metadata file.""" | ||
try: | ||
with open(METADATA_FILENAME) as f: | ||
metadata = json.load(f) | ||
return metadata['version']['candidate'] | ||
except (FileNotFoundError, json.JSONDecodeError) as e: | ||
print(f"Error reading current version: {e}") | ||
return None | ||
"""Retrieve the current version from the metadata file.""" | ||
try: | ||
with open(METADATA_FILENAME) as f: | ||
metadata = json.load(f) | ||
return metadata["version"]["candidate"] | ||
except (FileNotFoundError, json.JSONDecodeError) as e: | ||
print(f"Error reading current version: {e}") | ||
return None | ||
|
||
|
||
def get_rc_response() -> Optional[str]: | ||
"""Get the release candidate response from the response file.""" | ||
try: | ||
with open(RESPONSE_FILENAME) as f: | ||
data = json.load(f) | ||
for tag_dict in data['tags']: | ||
tag = tag_dict['tag'] | ||
if (tag.startswith('FIREFOX') and tag.endswith('_BUILD1') | ||
and 'ESR' not in tag and 'b' not in tag): | ||
return tag.replace('FIREFOX_', '').replace('_BUILD1', '').replace('_', '.') | ||
except (FileNotFoundError, json.JSONDecodeError) as e: | ||
print(f"Error reading RC response: {e}") | ||
return None | ||
"""Get the release candidate response from the response file.""" | ||
try: | ||
with open(RESPONSE_FILENAME) as f: | ||
data = json.load(f) | ||
for tag_dict in data["tags"]: | ||
tag = tag_dict["tag"] | ||
if (tag.startswith("FIREFOX") and tag.endswith("_BUILD1") | ||
and "ESR" not in tag and "b" not in tag): | ||
return (tag.replace("FIREFOX_", "").replace("_BUILD1", | ||
"").replace("_", ".")) | ||
except (FileNotFoundError, json.JSONDecodeError) as e: | ||
print(f"Error reading RC response: {e}") | ||
return None | ||
|
||
|
||
def get_pings() -> str: | ||
"""Build a string of Discord user IDs for mentions.""" | ||
ping_ids = os.getenv('DISCORD_PING_IDS', '') | ||
return ' '.join(f"<@{ping.strip()}>" for ping in ping_ids.split(',') if ping.strip()) | ||
"""Build a string of Discord user IDs for mentions.""" | ||
ping_ids = os.getenv("DISCORD_PING_IDS", "") | ||
return " ".join(f"<@{ping.strip()}>" for ping in ping_ids.split(",") | ||
if ping.strip()) | ||
|
||
|
||
def send_webhook(rc: str) -> None: | ||
"""Send a message to the Discord webhook.""" | ||
text = f"||{get_pings()}|| New Firefox RC version is available: **{rc}**" | ||
webhook_url = os.getenv('DISCORD_WEBHOOK_URL') | ||
|
||
if webhook_url: | ||
message = { | ||
"content": text, | ||
"username": "Firefox RC Checker", | ||
} | ||
try: | ||
response = requests.post(webhook_url, json=message) | ||
response.raise_for_status() # Raise an error for bad responses | ||
except requests.RequestException as e: | ||
print(f"Error sending webhook: {e}") | ||
else: | ||
print("Webhook URL not set.") | ||
"""Send a message to the Discord webhook.""" | ||
text = f"||{get_pings()}|| New Firefox RC version is available: **{rc}**" | ||
webhook_url = os.getenv("DISCORD_WEBHOOK_URL") | ||
|
||
if webhook_url: | ||
message = { | ||
"content": text, | ||
"username": "Firefox RC Checker", | ||
} | ||
try: | ||
response = requests.post(webhook_url, json=message) | ||
response.raise_for_status() # Raise an error for bad responses | ||
except requests.RequestException as e: | ||
print(f"Error sending webhook: {e}") | ||
else: | ||
print("Webhook URL not set.") | ||
|
||
|
||
def main() -> int: | ||
current_version = get_current_version() | ||
rc_response = get_rc_response() | ||
|
||
if rc_response and rc_response != current_version: | ||
send_webhook(rc_response) | ||
return 0 | ||
|
||
print(f"Current version: {current_version}, RC version: {rc_response}") | ||
return 1 | ||
|
||
if __name__ == "__main__": | ||
current_version = get_current_version() | ||
rc_response = get_rc_response() | ||
|
||
if rc_response and rc_response != current_version: | ||
send_webhook(rc_response) | ||
sys.exit(main()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,35 +6,36 @@ | |
logging.basicConfig(level=logging.INFO) | ||
|
||
# Constants for paths | ||
NEW_TAB_DIR = './engine/browser/components/newtab' | ||
ENGINE_DIR = './engine' | ||
NPM_INSTALL_COMMANDS = [ | ||
"npm install", | ||
"npm install [email protected]" | ||
] | ||
NEW_TAB_DIR = "./engine/browser/components/newtab" | ||
ENGINE_DIR = "./engine" | ||
NPM_INSTALL_COMMANDS = ["npm install", "npm install [email protected]"] | ||
BUNDLE_COMMAND = "npm run bundle --prefix=browser/components/newtab" | ||
|
||
|
||
def install_dependencies(): | ||
"""Install necessary npm packages for the newtab component.""" | ||
for command in NPM_INSTALL_COMMANDS: | ||
logging.info(f"Running command: {command} in {NEW_TAB_DIR}") | ||
subprocess.run(command.split(), cwd=NEW_TAB_DIR, check=True) | ||
|
||
|
||
def bundle_newtab_components(): | ||
"""Bundle the newtab components.""" | ||
logging.info(f"Bundling newtab components in {ENGINE_DIR}") | ||
subprocess.run(BUNDLE_COMMAND.split(), cwd=ENGINE_DIR, check=True) | ||
|
||
|
||
def update_newtab(init: bool = True): | ||
"""Update the newtab components, optionally initializing dependencies.""" | ||
try: | ||
if init: | ||
install_dependencies() | ||
|
||
bundle_newtab_components() | ||
except subprocess.CalledProcessError as e: | ||
logging.error(f"An error occurred: {e}") | ||
raise | ||
|
||
|
||
if __name__ == "__main__": | ||
update_newtab(init=False) |
Oops, something went wrong.