2024-07-16 21:48:15 +00:00
|
|
|
import sys
|
|
|
|
import tomllib
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
# Get the TOML file path from the command line argument
|
|
|
|
toml_file = sys.argv[1]
|
|
|
|
|
|
|
|
# read toml file
|
2024-07-16 22:13:41 +00:00
|
|
|
with open(toml_file, "rb") as file:
|
2024-07-16 21:48:15 +00:00
|
|
|
toml_data = tomllib.load(file)
|
|
|
|
|
|
|
|
# see if we're releasing an rc
|
|
|
|
version = toml_data["tool"]["poetry"]["version"]
|
|
|
|
releasing_rc = "rc" in version
|
|
|
|
|
|
|
|
# if not, iterate through dependencies and make sure none allow prereleases
|
|
|
|
if not releasing_rc:
|
|
|
|
dependencies = toml_data["tool"]["poetry"]["dependencies"]
|
|
|
|
for lib in dependencies:
|
|
|
|
dep_version = dependencies[lib]
|
|
|
|
dep_version_string = (
|
|
|
|
dep_version["version"] if isinstance(dep_version, dict) else dep_version
|
|
|
|
)
|
|
|
|
|
|
|
|
if "rc" in dep_version_string:
|
|
|
|
raise ValueError(
|
|
|
|
f"Dependency {lib} has a prerelease version. Please remove this."
|
|
|
|
)
|
|
|
|
|
|
|
|
if isinstance(dep_version, dict) and dep_version.get(
|
|
|
|
"allow-prereleases", False
|
|
|
|
):
|
|
|
|
raise ValueError(
|
|
|
|
f"Dependency {lib} has allow-prereleases set to true. Please remove this."
|
|
|
|
)
|