Skip to content

Instantly share code, notes, and snippets.

@semick-dev
Last active July 10, 2024 18:40
Show Gist options
  • Save semick-dev/5f8dfaeda908135b0d78de64f23338fc to your computer and use it in GitHub Desktop.
Save semick-dev/5f8dfaeda908135b0d78de64f23338fc to your computer and use it in GitHub Desktop.
Update the management packages pyproject.toml (or create one if one doesn't exist) with a name/value pair.
import argparse
from ci_tools.functions import discover_targeted_packages
from ci_tools.parsing import ParsedSetup, update_build_config
from ci_tools.functions import omit_mgmt
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="")
parser.add_argument(
"-t",
"--target",
dest="target_folder",
help="Folder beneath which pyproject.tomls will be discovered and modified.",
)
parser.add_argument(
"--check_name",
dest="check_name",
help="The name of the new check being added to the azure sdk tools portion of the pyproject.toml of discovered packages. If the check exists, it will be overridden.",
)
parser.add_argument(
"--check_value",
dest="check_value",
help="The value we will set in the toml setting being added/updated.",
)
args = parser.parse_args()
discovered_packages = [
ParsedSetup.from_path(pkg)
for pkg in discover_targeted_packages("azure*", args.target_folder)
if not omit_mgmt(pkg)
]
no_pyproject_packages = []
new_config_dict = {}
for pkg in discovered_packages:
config = pkg.get_build_config()
if config:
config[args.check_name] = args.check_value
update_build_config(pkg.folder, config)
else:
new_config = {}
new_config[args.check_name] = args.check_value
update_build_config(pkg.folder, new_config)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment