Download config.py from Quant0/AFI: direct link, hf CLI and curl.
- Browser
- Download file 4.51 kB
-
https://huggingface.co/spaces/Quant0/AFI/resolve/main/config.py
- Command line
-
hf download hf://spaces/Quant0/AFI/config.py
-
curl -L -o config.py https://huggingface.co/spaces/Quant0/AFI/resolve/main/config.py
4.51 kB
| # ============================================================ | |
| # config.py — Configuración centralizada + constantes del proyecto | |
| # ------------------------------------------------------------ | |
| # NOTA PARA AUDITORÍA: | |
| # - Este módulo NO tiene efectos secundarios al importarlo. | |
| # - Carga valores desde variables de entorno (con defaults seguros) | |
| # y define constantes compartidas por los demás módulos. | |
| # - Incluye el mapeo TICKERS_TO_IDS utilizado para los iframes | |
| # de bitcointreasuries.net (tal cual el código original). | |
| # ============================================================ | |
| from __future__ import annotations | |
| import os | |
| from typing import Dict | |
| # ------------------------------------------------------------ | |
| # Helpers de entorno | |
| # ------------------------------------------------------------ | |
| def _get_bool(env_var: str, default: bool = True) -> bool: | |
| """ | |
| Interpreta variables de entorno tipo booleano (e.g., "true", "1", "yes"). | |
| """ | |
| val = os.getenv(env_var, str(default)).strip().lower() | |
| return val in {"1", "true", "t", "yes", "y", "on"} | |
| # ------------------------------------------------------------ | |
| # Variables de entorno (claves y opciones) | |
| # ------------------------------------------------------------ | |
| SCRAPERAPI_KEY: str = os.getenv("SCRAPERAPI_KEY", "") | |
| CRYPTOCOMPARE_API_KEY: str = os.getenv("CRYPTOCOMPARE_API_KEY", "") | |
| TIMEZONE_TARGET: str = os.getenv("TIMEZONE_TARGET", "America/New_York") | |
| GRADIO_SHARE: bool = _get_bool("GRADIO_SHARE", True) | |
| # ------------------------------------------------------------ | |
| # Endpoints y URLs comunes | |
| # ------------------------------------------------------------ | |
| CRYPTOCOMPARE_BASE_URL: str = "https://min-api.cryptocompare.com/data/v2/histohour" | |
| BITCOINTREASURIES_STOCKS_URL: str = "https://bitcointreasuries.net/" | |
| BITCOINTREASURIES_ETFS_URL: str = "https://bitcointreasuries.net/etfs-and-exchanges" | |
| YF_SEARCH_ENDPOINT: str = "https://query1.finance.yahoo.com/v1/finance/search" | |
| # ------------------------------------------------------------ | |
| # Mapeo estático para iframes de Bitcointreasuries | |
| # (equivalente a `tickers_to_ids` en tu app original) | |
| # ------------------------------------------------------------ | |
| TICKERS_TO_IDS: Dict[str, int] = { | |
| "MSTR": 1, "MARA": 4, "CEP": 436, "BSTR": 674, "RIOT": 7, "DJT": 671, "3350.T": 176, | |
| "GLXY": 10, "CLSK": 28, "TSLA": 2, "HUT": 6, "COIN": 8, "XYZ": 5, "NXTT": 473, | |
| "CCCM": 595, "SMLR": 194, "GME": 517, "CANG": 337, "ADE.DE": 11, "0434.HK": 238, | |
| "HOLO": 508, "SQNS": 644, "HIVE": 9, "EXOD": 168, "ALTBG.PA": 295, "3659.T": 14, | |
| "FUFU": 325, "BTDR": 324, "SWC.AQ": 440, "FLD": 256, "CAN": 111, "BITF": 12, | |
| "CIFR": 82, "3825.T": 301, "KULR": 341, "NA": 331, "CORZ": 3, "MSW": 356, "SOS": 426, | |
| "BTCT.V": 608, "AKER.OL": 15, "GS9": 491, "CASH3.SA": 395, "MELI": 182, "SRAG.DU": 279, | |
| "JAS.BK": 307, "DCC.AX": 24, "ARLP": 425, "377030.KQ": 401, "BTBT": 18, "NDA.V": 32, | |
| "DDC": 500, "NTHOL.IS": 40, "DMGI.V": 23, "NCTY": 442, "VLCN": 679, "PNIX.AQ": 582, | |
| "ABT.DU": 21, "LQWD.V": 29, "CS.ST": 288, "VIRT": 472, "112040.KQ": 403, "RUM": 402, | |
| "DEFI.NE": 254, "GNS": 294, "PRE": 573, "3189.T": 445, "BTCB.SE": 636, "LMFA": 91, | |
| "BMNR": 550, "SIX.CN": 597, "BNXAF": 30, "PHX.AD": 449, "HKHC": 480, "042420.KQ": 406, | |
| "BTC.BK": 31, "K33.ST": 538, "COIN.AQ": 483, "BIGG.V": 17, "BTM": 372, "KWM": 643, | |
| "BTC.L": 292, "8005.HK": 342, "MATA.V": 357, "VANA.MC": 535, "V3TC.AQ": 586, "SBC": 380, | |
| "FRMO": 35, "ATAI": 479, "CBIT.V": 27, "MLGO": 511, "MOGO": 36, "8267.HK": 239, | |
| "WNDR.TO": 242, "SATO.V": 240, "9238.T": 434, "1723.HK": 384, "PXI.CN": 634, | |
| "SATS.L": 666, "ALBDM.PA": 580, "IREN": 12, "WULF": 15, "GREE": 21, "EBON": 14, | |
| "DGHI": 25, "SDIG": 17, "MIGI": 16, "SLNH": 24, "ANY": 23, "APLD": 20, "BTCS": 19, | |
| "RVYL": 30, "ICG": 29, "HOOD": 35, "PYPL": 2, "NVDA": 22, "CME": 26, "DEFI": 31, | |
| "IBIT": 119, "BTF": 33, "SQ": 34, "BKKT": 37, "BTCM": 38, "MA": 39, "IBM": 40, | |
| "GBTC": 50, "BITO": 41, "BITB": 117, "BTC-USD": 0, "MTPLF": 176 | |
| } | |
| # ------------------------------------------------------------ | |
| # Export público del módulo | |
| # ------------------------------------------------------------ | |
| __all__ = [ | |
| # claves / opciones | |
| "SCRAPERAPI_KEY", "CRYPTOCOMPARE_API_KEY", "TIMEZONE_TARGET", "GRADIO_SHARE", | |
| # endpoints y urls | |
| "CRYPTOCOMPARE_BASE_URL", "BITCOINTREASURIES_STOCKS_URL", "BITCOINTREASURIES_ETFS_URL", | |
| "YF_SEARCH_ENDPOINT", | |
| # constantes de negocio | |
| "TICKERS_TO_IDS", | |
| ] | |