Source code for analysis_engine.indicators.get_category_as_int

"""
Algo data helper for mapping indicator category
to an integer label value for downstream dataset predictions
"""

import analysis_engine.consts as ae_consts
import spylunking.log.setup_logging as log_utils

log = log_utils.build_colorized_logger(name=__name__)


[docs]def get_category_as_int( node, label=None): """get_category_as_int Helper for converting feature labels to numeric values :param node: convert the dictionary's ``category`` string to the integer mapped value """ if not label: label = 'get_category_as_int' ind_category_str = node.get( 'category', 'momentum') if not ind_category_str: return ae_consts.INDICATOR_CATEGORY_UNKNOWN elif ind_category_str == 'momentum': return ae_consts.INDICATOR_CATEGORY_MOMENTUM elif ind_category_str == 'overlap': return ae_consts.INDICATOR_CATEGORY_OVERLAP elif ind_category_str == 'price': return ae_consts.INDICATOR_CATEGORY_PRICE elif ind_category_str == 'volume': return ae_consts.INDICATOR_CATEGORY_VOLUME elif ind_category_str == 'volatility': return ae_consts.INDICATOR_CATEGORY_VOLATILITY elif ind_category_str == 'single_call': return ae_consts.INDICATOR_CATEGORY_SINGLE_CALL elif ind_category_str == 'single_put': return ae_consts.INDICATOR_CATEGORY_SINGLE_PUT elif ind_category_str == 'bull_call': return ae_consts.INDICATOR_CATEGORY_BULL_CALL elif ind_category_str == 'bear_put': return ae_consts.INDICATOR_CATEGORY_BEAR_PUT elif ind_category_str == 'quarterly': return ae_consts.INDICATOR_CATEGORY_QUARTERLY elif ind_category_str == 'yearly': return ae_consts.INDICATOR_CATEGORY_YEARLY elif ind_category_str == 'income_statement': return ae_consts.INDICATOR_CATEGORY_INCOME_STMT elif ind_category_str == 'cash_flow': return ae_consts.INDICATOR_CATEGORY_CASH_FLOW elif ind_category_str == 'balance_sheet': return ae_consts.INDICATOR_CATEGORY_BALANCE_SHEET elif ind_category_str == 'press_release': return ae_consts.INDICATOR_CATEGORY_PRESS_RELEASE elif ind_category_str == 'news': return ae_consts.INDICATOR_CATEGORY_NEWS elif ind_category_str == 'earnings': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'splits': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'reverse_splits': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'distributions': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'spinoffs': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'merger_acq': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'exchange_inclusion': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'exchange_exclusion': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'clinical_trial_positive': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'clinical_trial_negative': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'short_sellers': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'custom': return ae_consts.INDICATOR_CATEGORY_CUSTOM elif ind_category_str == 'news': return ae_consts.INDICATOR_CATEGORY_NEWS elif ind_category_str == 'earnings': return ae_consts.INDICATOR_CATEGORY_EARNINGS elif ind_category_str == 'csuite': return ae_consts.INDICATOR_CATEGORY_CSUITE elif ind_category_str == 'splits': return ae_consts.INDICATOR_CATEGORY_SPLITS elif ind_category_str == 'reverse_splits': return ae_consts.INDICATOR_CATEGORY_REVERSE_SPLITS elif ind_category_str == 'distributions': return ae_consts.INDICATOR_CATEGORY_DISTRIBUTIONS elif ind_category_str == 'spinoffs': return ae_consts.INDICATOR_CATEGORY_SPINOFFS elif ind_category_str == 'merger_acq': return ae_consts.INDICATOR_CATEGORY_MERGER_ACQ elif ind_category_str == 'exchange_inclusion': return ae_consts.INDICATOR_CATEGORY_EXCHANGE_INCLUSION elif ind_category_str == 'exchange_exclusion': return ae_consts.INDICATOR_CATEGORY_EXCHANGE_EXCLUSION elif ind_category_str == 'trial_positive': return ae_consts.INDICATOR_CATEGORY_TRIAL_POSITIVE elif ind_category_str == 'trial_negative': return ae_consts.INDICATOR_CATEGORY_TRIAL_NEGATIVE elif ind_category_str == 'short_sellers': return ae_consts.INDICATOR_CATEGORY_SHORT_SELLERS elif ind_category_str == 'real_estate': return ae_consts.INDICATOR_CATEGORY_REAL_ESTATE elif ind_category_str == 'housing': return ae_consts.INDICATOR_CATEGORY_HOUSING elif ind_category_str == 'pipeline': return ae_consts.INDICATOR_CATEGORY_PIPELINE elif ind_category_str == 'construction': return ae_consts.INDICATOR_CATEGORY_CONSTRUCTION elif ind_category_str == 'fed': return ae_consts.INDICATOR_CATEGORY_FED else: if label: log.error( f'{label} - unsupported indicator ' f'uses_dataset={ind_category_str} defaulting to "unknown"') else: log.error( 'unsupported indicator ' f'uses_dataset={ind_category_str} defaulting to "unknown"') return ae_consts.INDICATOR_CATEGORY_UNKNOWN
# end of supported indicator dataset types # end of get_category_as_int