Exemple #1
0
    def success(result):
        df = lpt.to_df(
            result,
            ["identifier_type", "is_unique_identifier_type", "property_key"])
        df.columns = ["Id", "Unique", "Key"]

        return lpt.trim_df(df, args.limit, sort="Id")
    def success(result):
        colmap = {"P:" + p: p[10:] for p in args.properties}
        df = lpt.to_df(
            result.content,
            ["id.code", "display_name", "created", "parent_portfolio_id"] +
            list(colmap.keys()),
        ).rename(columns=colmap)

        return lpt.trim_df(df, args.limit, sort="id.code")
    def success(result):
        idents = [f"identifiers.KEY:{v}" for v in args.identifiers]
        columns = ["lusid_instrument_id", "name"]
        columns.extend(idents)
        if args.properties:
            columns.extend(["P:" + v for v in args.properties])

        df = lpt.to_df(result.content.values.values(), columns)
        return df.rename(columns=dict(zip(idents, args.identifiers)))
 def success(result):
     return lpt.trim_df(
         lpt.to_df(
             result,
             ["scope", "domain", "code", "type", "display_name"],
         ),
         args.limit,
         sort=["scope", "domain", "code"],
     )
 def list_success(result):
     return lpt.trim_df(
         lpt.to_df(
             result,
             [
                 "effective_at", "unmatched_holding_method",
                 "version.as_at_date"
             ],
         ),
         args.limit,
         sort="effective_at",
     )
 def got_page(result):
     return lpt.to_df(
         result.content,
         [
             ID_CODE,
             "display_name",
             "base_currency",
             "description",
             "created",
             "parent_portfolio_id",
         ] + list(colmap.keys()),
     ).rename(columns=colmap)
Exemple #7
0
 def success(result):
     flat = [i for r in result.content for i in r.mastered_instruments]
     if len(flat) > 0:
         identifiers = sorted(
             set.union(*[set(i.identifiers.keys()) for i in flat]))
         df = lpt.to_df(
             flat,
             ["name"] +
             ["identifiers.KEY:" + i + ".value" for i in identifiers],
         )
         df.columns = ["Name"] + identifiers
         return df
     else:
         return "No Matches"
Exemple #8
0
    def success(result):
        shkeys = [
            "SHK:" + shk for hld in result.content.values[:1]
            for shk in hld.sub_holding_keys.keys()
        ]

        properties = ["P:" + p for p in args.properties]

        df = lpt.to_df(result, [c[0] for c in columns] + shkeys + properties)
        df.columns = ([c[1]
                       for c in columns] + [k.split("/")[2] for k in shkeys] +
                      [p[8:] for p in args.properties])

        return (result.stats, df)
    def make_holding(adj):
        lots = lpt.to_df(adj.tax_lots, taxlot_fields)
        lots["instrument_uid"] = adj.instrument_uid
        identifiers.update(adj.instrument_identifiers.keys())

        # TODO: sub-holding-keys and properties
        for k, v in adj.instrument_identifiers.items():
            lots[k] = v

        if adj.sub_holding_keys is not None:
            for k, v in adj.sub_holding_keys.items():
                lots[f"SHK:{k}"] = v.value.label_value

        return lots
Exemple #10
0
 def success(result):
     columns = [
         ("quote_id.effective_at", "Date"),
         ("quote_id.quote_series_id.instrument_id_type", "Instrument Type"),
         ("quote_id.quote_series_id.instrument_id", "Instrument"),
         ("metric_value.value", "Quote"),
         ("metric_value.unit", "Unit"),
         ("quote_id.quote_series_id.quote_type", "Type"),
         ("quote_id.quote_series_id.price_source", "Source"),
         ("quote_id.quote_series_id.provider", "Provider"),
         ("as_at", "AsAt"),
     ]
     df = lpt.to_df(list(result.content.values.values()),
                    [c[0] for c in columns])
     return lpt.trim_df(df.rename(columns=dict(columns)), args.limit)
 def got_page(result):
     if args.portfolios:
         df = lpt.to_df(
             result,
             ["id.scope", "id.code", "is_derived", "type", "parent_portfolio_id"],
         )
         df.columns = ["Scope", "Portfolio", "Derived", "Type", "Parent"]
     else:
         df = (
             pd.DataFrame({"Scopes": [v.id.scope for v in result.content.values]})
             .groupby("Scopes")
             .size()
             .reset_index()
         )
     return df
Exemple #12
0
        def got_page(result):
            columns = ["lusid_instrument_id", "name"]
            columns.extend(sorted(id_columns.keys()))
            columns.extend(f"P:{c}" for c in args.properties)
            df = lpt.to_df(result, columns).dropna(axis=1, how="all")
            df.rename(columns=id_columns, inplace=True)

            results.append(df)

            links = [l for l in result.content.links if l.relation == "NextPage"]

            if len(links) > 0:
                match = rexp.match(links[0].href)
                if match:
                    print("{} {}".format(len(results), match.group(1)))
                    return urllib.parse.unquote(match.group(1))
            return None
Exemple #13
0
    def success(txns):
        available_columns = [
            ("C", "transaction_status", "Status"),
            ("B", "transaction_id", "TxnId"),
            ("B", "type", "Type"),
            ("B", "P:Instrument/default/Name", "Instrument"),
            ("B", "instrument_uid", "LUID"),
            ("B", "transaction_date", "TradeDate"),
            ("A", "settlement_date", "SettleDate"),
            ("B", "units", "Units"),
            ("A", "transaction_price.price", "Price"),
            ("A", "transaction_currency", "TradeCcy"),
            ("A", "total_consideration.currency", "SettleCcy"),
            ("A", "total_consideration.amount", "SettleAmt"),
            ("A", "exchange_rate", "ExchRate"),
            ("A", "P:Trade/default/TradeToPortfolioRate", "PortRate"),
            ("C", "entry_date_time", "EntryDate"),
            ("C", "cancel_date_time", "CancelDate"),
        ]

        # Pick appropriate set of columns based on arguments

        col_subset = "B" if args.brief else "AB"

        if args.cancels:
            col_subset += "C"

        columns = [c for c in available_columns if c[0] in col_subset]
        columns.extend(
            [
                ("X", "P:" + v, v.replace("Instrument/default/", ""))
                for v in args.properties or []
            ]
        )

        df = lpt.to_df(txns, [c[1] for c in columns])

        # Rename the column headings
        df.columns = [c[2] for c in columns]

        return lpt.trim_df(df, args.limit)
Exemple #14
0
    def got_page(result):
        if args.portfolios:
            df = lpt.to_df(
                result,
                [
                    "id.scope", "id.code", "is_derived", "type",
                    "parent_portfolio_id"
                ],
            )
            df.columns = ["Scope", "Portfolio", "Derived", "Type", "Parent"]
        else:
            df = (pd.DataFrame({
                "Scopes": [v.id.scope for v in result.content.values]
            }).groupby("Scopes").size().reset_index())
        results.append(df)

        links = [l for l in result.content.links if l.relation == "NextPage"]

        if len(links) > 0:
            match = rexp.match(links[0].href)
            if match:
                return urllib.parse.unquote(match.group(1))
        return None
Exemple #15
0
 def success_list_groups(result):
     df = lpt.to_df(result.content,
                    ["id.code", "display_name", "description"])
     return lpt.trim_df(df, args.limit, sort="id.code")
Exemple #16
0
 def success(r):
     df = lpt.to_df([err[1] for err in r.content.failed.items()],
                    ["id", "detail"])
     df.columns = ["FAILED-INSTRUMENT", "ERROR"]
     return lpt.trim_df(df, args.limit, sort="FAILED-INSTRUMENT")
Exemple #17
0
 def success(r):
     df = lpt.to_df(r.content, ["id"])
     return lpt.trim_df(df, args.limit)
Exemple #18
0
 def success_get_group(result):
     df = lpt.to_df(result.content.portfolios, [
         "scope",
         "code",
     ])
     return lpt.trim_df(df, args.limit, sort=["scope", "code"])
    def success(constituents):
        print(constituents.content)
        exit()
        df = lpt.to_df(constituents, [])

        return lpt.trim_df(df, args.limit)