mirror of
				https://github.com/hwchase17/langchain.git
				synced 2025-10-31 07:41:40 +00:00 
			
		
		
		
	Thank you for contributing to LangChain! When run command langchain app new my-app, i get this error: File "/home/mauricio/.local/lib/python3.8/site-packages/langchain_cli/utils/pyproject.py", line 15, in <module> pyproject_toml: Path, local_editable_dependencies: Iterable[tuple[str, Path]] TypeError: 'type' object is not subscriptable This PR fix the error.
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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)
 |