Files
OpenBB/openbb_platform/openbb/__init__.py
montezdesousa bcb1f50b05 Refactor package builder (#5880)
* breakdown builder + remove black

* rebuild

* rebuild

* rebuild

* rename method

* format built code without black

* we still lint if it's available

* fix existing tests

* add linter tests

* add black to dev deps

* auto_build as instance method

* reorder methods

* typing

---------

Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt>
2023-12-13 12:13:43 +00:00

48 lines
1.3 KiB
Python

"""OpenBB Platform."""
# flake8: noqa
from pathlib import Path
from typing import List, Optional, Union
from openbb_core.app.static.app_factory import (
BaseApp as _BaseApp,
create_app as _create_app,
)
from openbb_core.app.static.package_builder import PackageBuilder as _PackageBuilder
_this_dir = Path(__file__).parent.resolve()
def build(
modules: Optional[Union[str, List[str]]] = None,
lint: bool = True,
verbose: bool = False,
) -> None:
"""Build extension modules.
Parameters
----------
modules : Optional[List[str]], optional
The modules to rebuild, by default None
For example: "/news" or ["/news", "/crypto"]
If None, all modules are rebuilt.
lint : bool, optional
Whether to lint the code, by default True
verbose : bool, optional
Enable/disable verbose mode
"""
_PackageBuilder(_this_dir, lint, verbose).build(modules)
_PackageBuilder(_this_dir).auto_build()
try:
# pylint: disable=import-outside-toplevel
from openbb.package.__extensions__ import Extensions as _Extensions
obb: Union[_BaseApp, _Extensions] = _create_app(_Extensions) # type: ignore
sdk = obb
except (ImportError, ModuleNotFoundError):
print("Failed to import extensions.")
obb = sdk = _create_app() # type: ignore