def test_long_reconcile(us_capitals): df = pd.DataFrame.from_dict(us_capitals, orient="index", columns=["Capital"]) results = reconcile(df["Capital"], type_id="Q515") assert results.shape == (51, 7)
def test_reconcile_against_triple(gene_data): results = reconcile( gene_data["gene"], type_id="Q7187", has_property=("P703", "Q15978631") ) assert results["id"][0] == "Q227339"
def test_reconcile_against_triple(gene_data): results = reconcile( gene_data["gene"], property_mapping={"P703": gene_data["species"]} ) assert results["id"][0] == "Q227339"
def test_basic_reconcile(city_data): expected_last_column = pd.Series(city_data["City"].unique()) results = reconcile(city_data["City"], type_id="Q515") assert results.shape == (4, 7) pd.testing.assert_series_equal( expected_last_column, results["input_value"], check_names=False )
def test_reconcile_without_type(city_data): results = reconcile(city_data["City"]) expected_names = ["Rio de Janeiro", "São Paulo", "Christmas"] retrieved = results["name"].to_list()[0:3] assert retrieved == expected_names
def main(): parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(dest='command') # import import_parser = subparsers.add_parser('import') sources = ["checking", "credit", "gnucash"] import_parser.add_argument("--source", choices=sources, dest="source", required=True) import_parser.add_argument("--file", dest="fname", required=True) import_parser.add_argument("--startdate", dest="start_date", required=True) import_parser.add_argument("--enddate", dest="end_date", required=True) # db setup setup_parser = subparsers.add_parser('create-tables') setup_parser.add_argument("--drop", action="store_true", dest="drop") # reconcile reconcile_parser = subparsers.add_parser('reconcile') reconcile_parser.add_argument("--exact-only", action="store_true", dest="exact_only") reconcile_parser.add_argument("--reset-transactions", action="store_true", dest="reset_transactions") # remove remove_parser = subparsers.add_parser('remove') remove_parser.add_argument("--batch-id", dest="batchid", required=True) args = parser.parse_args() if args.command == "create-tables": db_setup.create_tables(args.drop) elif args.command == "import": importer.import_file(args.fname, args.source, args.start_date, args.end_date) elif args.command == "reconcile": reconciler.reconcile(args.exact_only, args.reset_transactions) elif args.command == "remove": remover.remove_batch(args.batchid)
def test_long_reconcile(us_capitals): df = pd.DataFrame.from_dict( us_capitals, orient="index", columns=["Capital"] ).reset_index() results = reconcile( df["Capital"], type_id="Q515", property_mapping={"P1376": df["index"]} ) assert results.shape == (51, 7)
def test_no_results(): """Tests if parsing with absent results still works""" test_series = pd.Series(["Querula rubricollis", "Querula rubricollis"]) reconciled = reconcile(test_series, type_id="Q16521") expected_results = pd.DataFrame( { "id": [np.NaN], "match": [False], "input_value": ["Querula rubricollis"], } ) pd.testing.assert_frame_equal(expected_results, reconciled)
def reconcile_profs(): profs = pd.read_csv("results/profs.csv") reconciled_profs = reconcile(profs["professor"], type_id="Q5") best_matches = reconciled_profs.loc[ (reconciled_profs["score"].eq(100.0)) & (reconciled_profs["match"].eq(True))][["id", "input_value"]] merged_profs = best_matches.merge(profs, left_on="input_value", right_on="professor", how="left").drop("input_value", axis=1) merged_profs["lattes_id"] = merged_profs["lattes"].str.replace( "http://lattes.cnpq.br/", "", regex=True) return merged_profs
def test_fake_top_res(city_data): with raises(ValueError): reconcile(city_data["City"], type_id="Q515", top_res="I'm such a fake argument")
def main(): parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(dest='command') # import import_parser = subparsers.add_parser('import') sources = ["Gnucash", "Institution"] import_parser.add_argument("-s", "--source", choices=sources, dest="source", required=True) import_parser.add_argument("-a", "--account", dest="account", required=False, help="target account description or ID") import_parser.add_argument("-f", "--file", dest="fname", required=True) import_parser.add_argument( "-i", "--infer", action='store_true', dest="infer", help= "infer dates from filename, format: file-name_{{startdate}}_{{enddate}}.csv dates YYYYMMDD" ) import_parser.add_argument("--startdate", dest="start_date", required=False, help="start date formatted as YYYY-MM-DD") import_parser.add_argument("--enddate", dest="end_date", required=False, help="end date formatted as YYYY-MM-DD") # db setup setup_parser = subparsers.add_parser('create-tables') setup_parser.add_argument("--drop", action="store_true", dest="drop", help="drop existing tables") setup_parser.add_argument("--force", action="store_true", dest="force", help="force dropping tables without prompt") # reconcile reconcile_parser = subparsers.add_parser('reconcile') reconcile_parser.add_argument("--exact-only", action="store_true", dest="exact_only") reconcile_parser.add_argument("--reset-transactions", action="store_true", dest="reset_transactions") # remove remove_parser = subparsers.add_parser('remove') remove_parser.add_argument("--batch-id", dest="batchid", required=True) args = parser.parse_args() if args.command == "create-tables": db_setup.create_tables(args.drop, args.force) elif args.command == "import": importer.import_file(args.fname, args.source, args.account, args.infer, args.start_date, args.end_date) elif args.command == "reconcile": reconciler.reconcile(args.exact_only, args.reset_transactions) elif args.command == "remove": remover.remove_batch(args.batchid)