# Poetry Commands for Folio Project This document provides a reference for common Poetry commands used in the Folio project. ## Installation ```bash # Install Poetry curl -sSL https://install.python-poetry.org | python3 - # Configure Poetry to create virtual environments in the project directory poetry config virtualenvs.in-project true ``` ## Basic Commands ### Environment Management ```bash # Create/initialize a virtual environment poetry env use python3 # Activate the virtual environment poetry shell # Exit the virtual environment exit # or Ctrl+D ``` ### Dependency Management ```bash # Install all dependencies from pyproject.toml poetry install # Add a new dependency poetry add package-name # Add a development dependency poetry add --group dev package-name # Note: The dev group includes both development tools (linting, testing) # and CLI tools (focli interactive shell) # Update all dependencies poetry update # Update a specific dependency poetry update package-name # Show installed packages poetry show # Show dependency tree poetry show --tree ``` ## Running Commands ```bash # Run a command within the virtual environment poetry run python -m src.folio.app # Run the linter poetry run ruff check --fix --unsafe-fixes . # Run tests poetry run pytest tests/ # Run end-to-end tests poetry run pytest tests/e2e/ ``` ## Project Commands These commands replace the traditional Make commands: ```bash # Start the portfolio dashboard poetry run python -m src.folio.app --port 8051 --debug # Start the portfolio dashboard with sample portfolio poetry run python -m src.folio.app --port 8051 --debug --portfolio src/folio/assets/sample-portfolio.csv # Run the SPY simulator poetry run python ./scripts/folio-simulator.py # Start the Folio CLI interactive shell poetry run python src/!focli/focli.py ``` ## Advanced Commands ```bash # Export dependencies to requirements.txt poetry export -f requirements.txt --output requirements.txt # Export development dependencies poetry export --with dev -f requirements.txt --output requirements-dev.txt # Build the project poetry build # Check for dependency conflicts poetry check ``` ## Troubleshooting ```bash # Clear Poetry's cache poetry cache clear --all pypi # Update Poetry itself poetry self update # Get Poetry version poetry --version # Get detailed environment info (useful for debugging) poetry env info ``` ## Make Integration The Folio project has integrated Poetry into its Makefile, so you can continue to use familiar Make commands: ```bash # Set up Poetry and create a virtual environment make env # Install dependencies using Poetry make install # Run linter using Poetry make lint # Run tests using Poetry make test # Run the application using Poetry make folio ``` All these Make commands now use Poetry under the hood, providing a seamless transition to the new dependency management system.