Skip to main content

Dependency Management

High-Level Overview

  • Core: Serves as the main infrastructure. All extensions and providers have openbb-core as a dependency.
  • Extensions: Utility packages that leverage Core's infrastructure. Each extension is its own package.
  • Providers: Utility packages extending functionality to different providers, where each provider is its own package.

This page assumes that the OpenBB GitHub repo has been cloned.

Core Dependency Management

Installation

warning

Do not run these commands in an already-installed OpenBB Platform environment. Do not run both pip and poetry.

  • pip: pip install -e OpenBBTerminal/openbb_platform/platform/core

or

  • poetry: poetry install OpenBBTerminal/openbb_platform/platform/core

Using Poetry

Ensure you're in a fresh conda environment before adjusting dependencies.

  • Add a Dependency: poetry add <my-dependency>
  • Update Dependencies:
    • All: poetry update
    • Specific: poetry update <my-dependency>
  • Remove a Dependency: poetry remove <my-dependency>

Core and Extensions

Dev Installation

For development setup, use the provided script to install all extensions and their dependencies:

  • python dev_install.py [-e|--extras]

Note: If developing an extension, avoid installing all extensions to prevent unnecessary overhead.

Dependency Management with Poetry

  • Add Platform Extension: poetry add openbb-extension-name [--dev]
  • Resolve Conflicts: Adjust versions in pyproject.toml if notified by Poetry.
  • Lock Dependencies: poetry lock
  • Update Platform: poetry update openbb-platform
  • Documentation: Maintain pyproject.toml and poetry.lock for a clear record of dependencies.