Files
OpenBB/website/content/platform/extensions/toolkit_extensions.md
Henrique Joaquim 2f01e954d1 Feature/charting obbject (#5938)
* fix circular import issues on the obbject extension framework

* settings available on the obbject

* extension init

* charting assets and code

* introduce to_chart functionality

* removes the to_chart method from obbject in detriment of the one from the obbject extension

* Update openbb_platform/obbject_extensions/charting/charting/__init__.py

Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>

* fix on the show method

* adding the example to the to_chart docstring

* copying the exsting README from charting extension - needs to be revamped

* moving to openbb_charting instead

* update the pyproject.toml file

* pydocstyle

* versions

* better docstrings

* making accessors public

* removing unnecessary credentials variable cc @montezdesousa

* removing access to extra/metadata and use designated private attrs instead

* Fixes linting for the logging service (#5992)

* lints

* typing.Type instead

* deprecating ChartingService to use the new extension instead - adding function discovery capabilities using it

* tests for the obbject charting extension

* removing charting service from command runner

* filter functions not implemented in the module

* remove charting service tests

* removing charting service on the tests for int tests

* charting integration tests

* removing charting service file

* removing old charting extension code

* revamp builder

* fix obbject tests

* fix command_runner tests

* removing openbb_figure_table

* better website docs

* reviewed readme

* unsetting api key for posthog (pywry) windows

* added debug_mode to the system settings

* removing api key

* update nightly script

* fix tests

* black

* black

* Revert "black"

This reverts commit 21d76ad689.

* Revert "black"

This reverts commit 0904653fd7.

* black for henrique

* returning a list instead

* better docstrings

* removing unnecessary indicators docstring

* typo

* black

* intentional access to protected member

* changes to publish script

* filtering deleted files

* black

* adding render argument

* fixing the df_to_basemodel function: it should include the index in the columns either if flagged or if the index is named

* adding the hability to add you own data to to_chart method

* tests

* black

* disable protected access

* accept kwargs to eg. save image

* adjustment cc Igor

* add if statement for protection

* remove unused return typing

* fix technical charting views

* better error message cc @IgorWounds

* better structure and fix test

* Revert "better structure and fix test"

This reverts commit 612ea6117c.

* Revert "better error message cc @IgorWounds"

This reverts commit 3d7ee53878.

---------

Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com>
Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
2024-02-14 15:19:27 +00:00

5.9 KiB
Vendored

title, sidebar_position, description, keywords
title sidebar_position description keywords
Toolkits 1 This page describes the toolkit extensios available for the OpenBB Platform.
OpenBB Platform
Python client
Fast API
getting started
extensions
data providers
data extensions
toolkit extensions
toolkits
endpoints
community
technical analysis
quantitative analysis
charting libraries
Plotly
OpenBBFigure
PyWry

import HeadTitle from '@site/src/components/General/HeadTitle.tsx';

OpenBB Toolkit Extensions expand the Platform with functions for manipulating data and preparing it for display. The Core Platform installation does not install any toolkit extensions. The table below is the current list of toolkit extensions.

Extension Name Description Installation Command Core/Community Router Path
openbb-charting Rest API charting service and Plotly library. pip install openbb-charting Community N/A
openbb-devtools Aggregates dependencies that facilitate a nice development experience for OpenBB. pip install openbb-devtools N/A
openbb-econometrics Econometrics models for the Python interface only. pip install openbb-econometrics Community obb.econometrics
openbb-quantitative Functions for performing quantitative analysis. pip install openbb-quantitative Community obb.quantitative
openbb-technical Functions for performing technical analysis. pip install openbb-technical Community obb.technical

The sections below outline any specific installation considerations for the extension.

Charting

The OpenBB Charting Extension supplies charting infrastructure and services to the OpenBB Platform. Figure objects are served via REST API or Python Client. It utilizes PyWry for handling the display of interactive charts and tables in a separate window, with a Plotly library. The extension framework allows developers to easily insert other Python charting libraries into the router pipeline.

Functions with charting enabled return figures to a field (chart) in the OBBject response object. They are displayed with the class method, show().

Additional Python libraries are installed with this extension: aiohttp, nbformat, pandas-ta, plotly, pywry, reportlab, scipy, statsmodels, and svglib.

:::tip The openbb-charting is in fact an OBBject extension which means you'll have the functionality it exposes on every command result. :::

Installation

To install the extension, run the following command in this folder:

pip install openbb-charting

Find the latest version on PyPI.

To install from source in editable mode, navigate into the folder, ~/openbb_platform/extensions/charting, and enter:

pip install -e .

After installation, the Python interface will automatically rebuild on initialization. This process can also be triggered manually with:

import openbb
openbb.build()

The Python interpreter may require a restart.

PyWry dependency in Linux

When using Linux distributions, the PyWry dependency requires certain dependencies to be installed first.

  • Debian-based / Ubuntu / Mint: sudo apt install libwebkit2gtk-4.0-dev

  • Arch Linux / Manjaro: sudo pacman -S webkit2gtk

  • Fedora: sudo dnf install gtk3-devel webkit2gtk3-devel

Devtools

This extension aggregates the dependencies that facilitate a nice development experience for OpenBB. It does not contain any code itself, but rather pulls in the following dependencies:

  • bandit
  • black
  • ipykernel
  • mypy
  • poetry
  • pre-commit
  • pydocstyle
  • pylint
  • pytest
  • pytest-cov
  • ruff
  • tox
  • types-python-dateutil
  • types-toml

Installation

The extension is included in the dev_install.py script.

Standalone installation:

pip install openbb-devtools

Econometrics

The openbb-econometrics extension installs a new router path (obb.econometrics) and additional Python libraries:

  • scipy
  • statsmodels
  • arch
  • linearmodels

:::note

Statsmodels requires a C compiler be present on the system. Follow the instructions here for system-specific methods.

This extension is not accessible via REST API because statsmodels is not serializable. :::

Installation

Install from PyPI with:

pip install openbb-econometrics

To install from source in editable mode, navigate into the folder, ~/openbb_platform/extensions/econometrics, and enter:

pip install -e .

After installation, the Python interface will automatically rebuild on initialization.

Quantitative

The openbb-quantitative extension installs a new router path (obb.quantitative) and a few additional Python libraries:

  • pandas-ta
  • scipy
  • statsmodels

Installation

Install from PyPI with:

pip install openbb-quantitative

To install from source in editable mode, navigate into the folder, ~/openbb_platform/extensions/quantitative, and enter:

pip install -e .

After installation, the Python interface will automatically rebuild on initialization.

Technical

The openbb-technical extension is for performing technical analysis on time series data. It installs a new router path (obb.technical) and some additional Python libraries:

  • pandas-ta
  • scikit-learn
  • scipy
  • statsmodels

Installation

Install from PyPI with:

pip install openbb-technical

To install from source in editable mode, navigate into the folder, ~/openbb_platform/extensions/technical, and enter:

pip install -e .

After installation, the Python interface will automatically rebuild on initialization.