def build_debt(start, end): p = Pipeline(location=db.engine, download=False) p.get("net_public_debt") p.convert(flavor="gdp") debt = p.dataset debt.columns = debt.columns.get_level_values(0) debt_plot = build_chart( debt, title="Deuda neta del sector público global", subtitle="% del PBI", kind="area", start=start, end=end, ) return debt_plot
def build_cpi(start, end): p = Pipeline(location=db.engine, download=False) p.get("cpi") p.chg_diff(period="inter") cpi = p.dataset cpi.columns = cpi.columns.get_level_values(0) cpi_plot = build_chart( cpi, title="IPC", subtitle="Variación interanual", kind="line", start=start, end=end, ) return cpi_plot
def build_industrial(start, end): p = Pipeline(location=db.engine, download=False) p.get("core_industrial") p.chg_diff(period="inter") industrial = p.dataset industrial.columns = industrial.columns.get_level_values(0) industrial_plot = build_chart( industrial, title="Producción industrial", subtitle="Variación interanual", kind="line", start=start, end=end, ) return industrial_plot
def build_gdp(start, end): p = Pipeline(location=db.engine, download=False) p.get("gdp_con_idx_sa_long") p.chg_diff(period="last") gdp = p.dataset gdp.columns = gdp.columns.get_level_values(0) gdp_plot = build_chart( gdp, title="PBI real", subtitle="Desestacionalizado, variación trimestral", kind="bar", start=start, end=end, ) return gdp_plot
def build_rxr(start, end): p = Pipeline(location=db.engine, download=False) p.get("rxr_custom") p.rebase(start_date=p.dataset.index.min(), end_date=p.dataset.index.max()) rxr = p.dataset rxr.columns = rxr.columns.get_level_values(0) rxr_plot = build_chart( rxr, title=f"Tipo de cambio real", subtitle=f"1980-{dt.date.today().year}=100", kind="line", start=start, end=end, ) return rxr_plot
def build_cpi_measures(start, end): p = Pipeline(location=db.engine, download=False) p.get("cpi_measures") p.chg_diff(period="inter") cpi_measures = p.dataset cpi_measures.columns = cpi_measures.columns.get_level_values(0) cpi_measures_plot = build_chart( cpi_measures, title="IPC transable, no transable y subyacente", subtitle="Variación interanual", kind="line", y=cpi_measures.columns[:-2], start=start, end=end, height=460, ) return cpi_measures_plot
def build_fiscal_balance(start, end): p = Pipeline(location=db.engine, download=False) p.get("balance_summary") p.convert(flavor="gdp") balance = p.dataset balance.columns = balance.columns.get_level_values(0) balance_plot = build_chart( balance, title="Resultado fiscal del sector público consolidado", subtitle="% del PBI", kind="line", start=start, end=end, y=[ "Resultado: Primario SPC ex FSS", "Resultado: Primario SPC", "Resultado: Global SPC ex FSS", "Resultado: Global SPC", ], ) balance_sectors_plot = build_chart( balance, title="Resultado global por sector", subtitle="% del PBI", kind="bar", start=start, end=end, y=[ "Resultado: Global GC-BPS ex FSS", "Resultado: Global EEPP", "Resultado: Global intendencias", "Resultado: Global BSE", "Resultado: Global BCU", ], ) return balance_plot, balance_sectors_plot
def store_transformed_data( real_start, real_end, resample_freq, resample_operation, rolling_periods, rolling_operation, chg_diff_operation, chg_diff_period, rebase_start, rebase_end, rebase_base, decompose_method, decompose_component, order, query_data, query_metadata, ): if not order: return query_data, query_metadata if not query_data: return {}, {} if ( ("resample" in order and (not resample_freq or not resample_operation)) or ("rolling" in order and (not rolling_periods or not rolling_operation)) or ("chg-diff" in order and (not chg_diff_operation or not chg_diff_period)) or ("rebase" in order and (not rebase_start or not rebase_base)) or ( "decompose" in order and (not decompose_method or not decompose_component) ) ): raise PreventUpdate data = pd.DataFrame.from_records(query_data, coerce_float=True, index="index") data.index = pd.to_datetime(data.index) metadata = pd.DataFrame.from_records(query_metadata) data.columns = pd.MultiIndex.from_frame(metadata) p = Pipeline(location=db.engine, download=False) transformations = { "usd": lambda x: convert_usd(x, pipeline=p, errors="ignore"), "real": lambda x: convert_real( x, start_date=real_start, end_date=real_end, pipeline=p, errors="ignore" ), "gdp": lambda x: convert_gdp(x, pipeline=p, errors="ignore"), "resample": lambda x: resample( x, rule=resample_freq, operation=resample_operation ), "rolling": lambda x: rolling( x, window=rolling_periods, operation=rolling_operation ), "chg-diff": lambda x: chg_diff( x, operation=chg_diff_operation, period=chg_diff_period ), "rebase": lambda x: rebase( x, start_date=rebase_start, end_date=rebase_end, base=rebase_base ), "decompose": lambda x: decompose( x, component=decompose_component, method=decompose_method, force_x13=True, errors="ignore", ), } transformed_data = data.copy() for t in order: transformed_data = transformations[t](transformed_data) transformed_metadata = transformed_data.columns.to_frame() transformed_data.columns = transformed_data.columns.get_level_values(0) transformed_data.reset_index(inplace=True) return transformed_data.to_dict("records"), transformed_metadata.to_dict( "records" )