Example #1
0
 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
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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
Example #8
0
    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"
        )