def _load(data_loc: Union[str, PathLike, Connection, Engine], multiindex=True, table_name: Optional[str] = None): """Load existing data from CSV or SQL.""" try: if isinstance(data_loc, (Engine, Connection)): if multiindex is True: previous_data = sqlutil.read(con=data_loc, table_name=table_name) else: previous_data = pd.read_sql(sql=table_name, con=data_loc, index_col="index", parse_dates="index") else: if multiindex is True: previous_data = pd.read_csv(data_loc, index_col=0, parse_dates=True, header=list(range(9)), float_precision="high") metadata._set(previous_data) else: previous_data = pd.read_csv(data_loc, index_col=0, parse_dates=True, float_precision="high") except (ProgrammingError, OperationalError, FileNotFoundError): print("Data does not exist. No data will be updated") previous_data = pd.DataFrame() return previous_data
def indicator_options(table): if not table: raise PreventUpdate df = sqlutil.read(con=db.engine, table_name=table) columns = df.columns.get_level_values(0) return ( [{"label": "Todos los indicadores", "value": "*"}] + [{"label": v, "value": v} for v in columns] ), False
def test_sqlutil(): remove_clutter() sqlutil.read(con=TEST_CON, command='SELECT * FROM nxr_daily') sqlutil.read(con=TEST_CON, table_name="nxr_daily", start_date="2011-01-14", end_date="2012-01-15") sqlutil.read(con=TEST_CON, table_name="nxr_daily", start_date="2011-01-14") sqlutil.read(con=TEST_CON, table_name="reserves_changes", end_date="2012-01-01", cols=["1. Compras netas de moneda extranjera"])
def store_query_data(table, indicator): if not table or not indicator: return {}, {} if "*" in indicator: indicator = "*" data = sqlutil.read(con=db.engine, table_name=table, cols=indicator) metadata = data.columns.to_frame() data.columns = data.columns.get_level_values(0) data.reset_index(inplace=True) return data.to_dict("records"), metadata.to_dict("records")
def build_labor_rates(start, end): p = Pipeline(location=db.engine, download=False) p.get("labor_rates_people") nsa = p.dataset nsa.columns = nsa.columns.get_level_values(0) trends = sqlutil.read(con=db.engine, table_name="labor_rates_people_seas") trends.columns = trends.columns.get_level_values(0) + [ " (tendencia-ciclo)" ] data = pd.concat([nsa, trends], axis=1) activity_employment_plot = build_chart( data, title="Actividad y empleo", subtitle="Tasa", kind="line", start=start, end=end, y=[ "Tasa de actividad", "Tasa de actividad (tendencia-ciclo)", "Tasa de empleo", "Tasa de empleo (tendencia-ciclo)", ], height=460, ) unemployment_plot = build_chart( data, title="Desempleo", subtitle="Tasa", kind="line", start=start, end=end, y=["Tasa de desempleo", "Tasa de desempleo (tendencia-ciclo)"], ) return activity_employment_plot, unemployment_plot