Spaces:
Runtime error
Runtime error
from pathlib import Path | |
from typing import Any, Dict, Iterable, Tuple | |
from tomlkit import dump, inline_table, load | |
from tomlkit.items import InlineTable | |
def _get_dep_inline_table(path: Path) -> InlineTable: | |
dep = inline_table() | |
dep.update({"path": str(path), "develop": True}) | |
return dep | |
def add_dependencies_to_pyproject_toml( | |
pyproject_toml: Path, local_editable_dependencies: Iterable[Tuple[str, Path]] | |
) -> None: | |
"""Add dependencies to pyproject.toml.""" | |
with open(pyproject_toml, encoding="utf-8") as f: | |
# tomlkit types aren't amazing - treat as Dict instead | |
pyproject: Dict[str, Any] = load(f) | |
pyproject["tool"]["poetry"]["dependencies"].update( | |
{ | |
name: _get_dep_inline_table(loc.relative_to(pyproject_toml.parent)) | |
for name, loc in local_editable_dependencies | |
} | |
) | |
with open(pyproject_toml, "w", encoding="utf-8") as f: | |
dump(pyproject, f) | |
def remove_dependencies_from_pyproject_toml( | |
pyproject_toml: Path, local_editable_dependencies: Iterable[str] | |
) -> None: | |
"""Remove dependencies from pyproject.toml.""" | |
with open(pyproject_toml, encoding="utf-8") as f: | |
pyproject: Dict[str, Any] = load(f) | |
# tomlkit types aren't amazing - treat as Dict instead | |
dependencies = pyproject["tool"]["poetry"]["dependencies"] | |
for name in local_editable_dependencies: | |
try: | |
del dependencies[name] | |
except KeyError: | |
pass | |
with open(pyproject_toml, "w", encoding="utf-8") as f: | |
dump(pyproject, f) | |