Spaces:
Sleeping
Sleeping
import pkg_resources | |
import toml | |
def update_pyproject_versions(pyproject_path): | |
try: | |
with open(pyproject_path) as file: | |
data = toml.load(file) | |
except FileNotFoundError: | |
print(f"Error: The file '{pyproject_path}' was not found.") | |
return | |
except toml.TomlDecodeError: | |
print( | |
f"Error: The file '{pyproject_path}' is not a valid TOML" | |
" file." | |
) | |
return | |
dependencies = ( | |
data.get("tool", {}).get("poetry", {}).get("dependencies", {}) | |
) | |
for package in dependencies: | |
if package.lower() == "python": | |
continue # Skip the Python version dependency | |
try: | |
version = pkg_resources.get_distribution(package).version | |
dependencies[package] = version | |
except pkg_resources.DistributionNotFound: | |
print(f"Warning: Package '{package}' not installed.") | |
with open(pyproject_path, "w") as file: | |
toml.dump(data, file) | |
print(f"Updated versions written to {pyproject_path}") | |
# Usage | |
update_pyproject_versions("pyproject.toml") | |