Files
OpenBB/openbb_terminal/core/log/generation/settings.py
James Maslek 707ae7e317 Release 2.5.0 (#4355)
* Rename SDK folder

* Fixing all the tests I hope

* Depreciate the sia menu

* Fix routine script

* Update SDK generation scripts

* This needed fixing anyways

* Regenerate SDK files

* Update paths in sdk helpers

* Regenerate the remains of the SDK

* Fix candle not working with symbol via the sdk

* Fix pydocstyle errors

* deps

* Add in Docstrings

* Push to website since I need to upload images

* typos

* Add in Fixed Income Guide

* Tests : fix cassette

* changes to layout and adding more content

* trailmap

* poetry

* updates to requirements files

* add `_try_to_login` to sdk generation, fix `_chart` in `about()` url

* sentiment analysis

* refactor

* changing to base model default

* rounding

* renewing poetry

* fixed poetry

* spacing

* black

* adds selectable models for realized volatility calculations

* fixes line too long

* Add intro guides to Fixed Income

* Fix some missing docstrings

* Fix website not working

* missed a few

* fix /economy/test_yfinance_view tests

* fix etf/test_stockanalysis_model.py

* fix etf/test_stockanalysis_view.py

* fix test_stocks_controller

* deprecating non used function

* update financedatabase to 2.0.4

* Delete SIA from OpenBB Docs and SDK

* Searching was not done properly for short name and index

* changes the default data source for crypto.load

* Fix tests I broke

* Little fixy fix to remove duplicates

* Fix tests

* typo

* adds check for empty dataframe

* Patch Equity Report

* Update so that image links to website

* linting v2

* silly imports

* adding tempfile

* add imap unordered

* reordering imports

* Adding databento as a source (#4293)

* First commit

* Baby steps

* Keys and sdk

* Fix import for api key

* Add SDK endpoints

* Test + api checks

* tests

* roque print of api key

* Changes

* minor

* custom timeout

* improve timeouts

---------

Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>

* Tests

* Integration test

* frozendict remove

* update spec

* rename sdk faq to troubleshooting

* add hidden import

* add hidden imports

* imports again

* valid url check

* new lines and prompt

* split imports

* more spec

* adds cones to the crypto-ta menu

* Fix tests

* Update code to reflect new changes to FinanceDatabase

* Small bugfix for DCF if you have no ticker loaded

* remove yfinance from news

* add reverse fx choices

* black

* ruff

* Add options greeks to the SDK

* Linting

* Delete rogue file and update test and add fixedincome to en.yml

* fix for options screener

* ruff

* updates tests for options screener

* reqs

* updates more test files

* rewrite for test_github_model

* rewrite test for test_syncretism_view

* removes test_view_available_presets[]

* black

* coverage

* adds option screener preset

* Update directories.py

* len & set

* set all list

* adds unit testing for cones

* ruff

* pylint

* adds options screener endpoint to SDK

* test markers

* Testing draft PR mode

* Update package to v2.0.7

* Remove etf/screener and tests

* Updated

* Merge reqs

* Updated readme

* hook test for pyinstaller

* Little fixy fix

* Remove etf/scr from SDK

* Update tests

* Update hook-whisper.py

* oops lol

* Update sdk

* update

* Etf

* removed old trailmap csv's

* Update fixedincome text

* add greeks to trail

* rouge file

* merge killed it

* fix test

* fix build failure

* catch for error message

* fix for frozendict

* caching search and prompting on hub

* whisper model prompts

* Fix long/short issue and fix transform issue

* separates volatility models from cones function

* Introduce CPI functionality

* improves error handling for volatility models when window length is too small

* ur welcome <3

* additional sanity check for volatility_view

* updates volatility_model test

* black

* Fix linting

* Make cpi a little bit more robust

* Add in missing value

* sdk updates

* update dep files

* Update trail_map_forecasting.csv

* import ordering pylint?

* fix trailing comma

* sorted trailmaps

* remove one test artifact

* rewrite test

* Adds the missing pieces.

* adds clickable URL in keys + Databento

* adds databento images

* adds images for Databento

* update deps

* req files

* swap order in databento

* ruff

* mypy

* lint

* sdk

* makes requested changes

* ruff v2..

* replaces screenshot.

* Removed because it shouldn't have been in this PR.

* ruff v3

* Minor edit, move installation to position 2 instead of last

* util linting changes

* linting for controller

* fix test

* test

* Revert some tests

* Guess not

* see if this sticks

* fixes

* Fix linters.  Add --video if not provided

* Checkout develop tests for keys

* Release time

* Revert papermill and update gh pages action

* Fix shortname (#4356)

* uninstall brotli on conda test

* Fix issue 4316 (#4357)

* Fix issue 4316

* Updating polygon_model + options_controller

* Tests : FRED

* ruff

---------

Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com>
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
Co-authored-by: teh_coderer <me@tehcoderer.com>
Co-authored-by: martinb-bb <105685594+martinb-bb@users.noreply.github.com>
Co-authored-by: Diogo Sousa <montezdesousa@gmail.com>
Co-authored-by: northern-64bit <75195383+northern-64bit@users.noreply.github.com>
Co-authored-by: luqazino@gmail.com <luqazino@gmail.com>
Co-authored-by: colin99d <colin99delahunty@gmail.com>
Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com>
2023-03-01 08:47:12 -05:00

155 lines
4.1 KiB
Python

# IMPORTATION STANDARD
from copy import deepcopy
from pathlib import Path
# IMPORTATION THIRDPARTY
# IMPORTATION INTERNAL
class AWSSettings:
@property
def aws_access_key_id(self) -> str:
return self.__aws_access_key_id
@property
def aws_secret_access_key(self) -> str:
return self.__aws_secret_access_key
def __init__(
self,
aws_access_key_id: str,
aws_secret_access_key: str,
):
self.__aws_access_key_id = aws_access_key_id
self.__aws_secret_access_key = aws_secret_access_key
class AppSettings:
@property
def name(self) -> str:
return self.__name
@property
def commit_hash(self) -> str:
return self.__commit_hash
@property
def identifier(self) -> str:
return self.__identifier
@property
def session_id(self) -> str:
return self.__session_id
@property
def user_id(self) -> str:
return self.__user_id
@user_id.setter
def user_id(self, value: str):
self.__user_id = value
def __init__(
self,
name: str,
commit_hash: str,
session_id: str,
identifier: str,
user_id: str,
):
"""
Args:
name (str): Source of the application.
commit_hash (str): Commit hash of the current running code.
identifier (str): Unique key identifying a particular installation.
session_id (str): Key identifying a particular running session.
user_id (str): Hash identifying a particular user.
"""
self.__name = name
self.__commit_hash = commit_hash
self.__identifier = identifier
self.__session_id = session_id
self.__user_id = user_id
class LogSettings:
@property
def directory(self) -> Path:
return self.__directory
@property
def frequency(self) -> str:
return self.__frequency
@property
def handler_list(self) -> str:
return self.__handler_list
@property
def rolling_clock(self) -> bool:
return self.__rolling_clock
@property
def verbosity(self) -> int:
return self.__verbosity
def __init__(
self,
directory: Path,
frequency: str,
handler_list: str,
rolling_clock: bool,
verbosity: int,
):
"""
Args:
directory (Path): Directory used to store log files.
frequency (str): Frequency of the log files rotation.
handler_list (str) : Comma separated list of handlers : stdout,stderr,noop,file.
rolling_clock (bool): Whether or not to start a Thread to rotate logs even when inactive.
verbosity (str): Verbosity level as defined in Python `logging` module.
"""
self.__directory = directory
self.__frequency = frequency
self.__handler_list = handler_list
self.__rolling_clock = rolling_clock
self.__verbosity = verbosity
class Settings:
@property
def app_settings(self) -> AppSettings:
return deepcopy(self.__app_settings)
@property
def log_settings(self) -> LogSettings:
return deepcopy(self.__log_settings)
@property
def aws_settings(self) -> AWSSettings:
return deepcopy(self.__aws_settings)
def __init__(
self,
app_settings: AppSettings,
aws_settings: AWSSettings,
log_settings: LogSettings,
):
"""This model regroups all configurations used by these classes instance :
- openbb_terminal.core.log.collection.log_sender.LogSender
- openbb_terminal.core.log.generation.formatter_with_exceptions.FormatterWithExceptions
- openbb_terminal.core.log.generation.path_tracking_file_handler.PathTrackingFileHandler
Args:
app_name (str): Instance of AppSettings.
log_settings (str): Instance of LogSettings.
aws_settings (str): Instance of AWSSettings.
"""
self.__app_settings = app_settings
self.__log_settings = log_settings
self.__aws_settings = aws_settings