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>
- All:
- 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
andpoetry.lock
for a clear record of dependencies.