Skip to content

Commit

Permalink
Merge pull request tkp-archive#245 from iexcloud/ric-isin
Browse files Browse the repository at this point in the history
Add ric lookup, separate into own files
  • Loading branch information
timkpaine committed Apr 29, 2021
2 parents 776492c + 5d5c426 commit 8d8047c
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 32 deletions.
4 changes: 4 additions & 0 deletions pyEX/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,8 @@
otcSymbolsList,
refDividends,
refDividendsDF,
ricLookup,
ricLookupDF,
search,
searchDF,
sectors,
Expand Down Expand Up @@ -841,6 +843,8 @@
("cryptoSymbolsList", cryptoSymbolsList),
("isinLookup", isinLookup),
("isinLookupDF", isinLookupDF),
("ricLookup", ricLookup),
("ricLookupDF", ricLookupDF),
("corporateActions", corporateActions),
("corporateActionsDF", corporateActionsDF),
("refDividends", refDividends),
Expand Down
5 changes: 3 additions & 2 deletions pyEX/refdata/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@
internationalExchangesDF,
)
from .figi import figi, figiDF
from .isin import isinLookup, isinLookupDF
from .refdata import corporateActions, corporateActionsDF, directory, directoryDF
from .refdata import dividends as refDividends
from .refdata import dividendsDF as refDividendsDF
from .refdata import nextDayExtDate, nextDayExtDateDF
from .ric import ricLookup, ricLookupDF

from .search import search, searchDF
from .sectors import sectors, sectorsDF, tags, tagsDF
from .symbols import (
Expand All @@ -32,8 +35,6 @@
internationalSymbols,
internationalSymbolsDF,
internationalSymbolsList,
isinLookup,
isinLookupDF,
mutualFundSymbols,
mutualFundSymbolsDF,
mutualFundSymbolsList,
Expand Down
42 changes: 42 additions & 0 deletions pyEX/refdata/isin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# *****************************************************************************
#
# Copyright (c) 2021, the pyEX authors.
#
# This file is part of the pyEX library, distributed under the terms of
# the Apache License 2.0. The full license can be found in the LICENSE file.
#
from functools import wraps

import pandas as pd

from ..common import _get


def isinLookup(isin, token="", version="stable", filter="", format="json"):
"""This call converts an ISIN to an iex symbol
https://iexcloud.io/docs/api/#isin-mapping
8am, 9am, 12pm, 1pm UTC daily
Args:
isin (str): isin to lookup
token (str): Access token
version (str): API version
filter (str): filters: https://iexcloud.io/docs/api/#filter-results
format (str): return format, defaults to json
Returns:
dict or DataFrame or list: result
"""
return _get(
"ref-data/isin?isin={}".format(isin),
token=token,
version=version,
filter=filter,
format=format,
)


@wraps(isinLookup)
def isinLookupDF(*args, **kwargs):
return pd.DataFrame(isinLookup(*args, **kwargs))
42 changes: 42 additions & 0 deletions pyEX/refdata/ric.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# *****************************************************************************
#
# Copyright (c) 2021, the pyEX authors.
#
# This file is part of the pyEX library, distributed under the terms of
# the Apache License 2.0. The full license can be found in the LICENSE file.
#
from functools import wraps

import pandas as pd

from ..common import _get


def ricLookup(ric, token="", version="stable", filter="", format="json"):
"""This call converts a RIC to an iex symbol
https://iexcloud.io/docs/api/#ric-mapping
8am, 9am, 12pm, 1pm UTC daily
Args:
ric (str): ric to lookup
token (str): Access token
version (str): API version
filter (str): filters: https://iexcloud.io/docs/api/#filter-results
format (str): return format, defaults to json
Returns:
dict or DataFrame or list: result
"""
return _get(
"ref-data/ric?ric={}".format(ric),
token=token,
version=version,
filter=filter,
format=format,
)


@wraps(ricLookup)
def ricLookupDF(*args, **kwargs):
return pd.DataFrame(ricLookup(*args, **kwargs))
30 changes: 0 additions & 30 deletions pyEX/refdata/symbols.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,33 +358,3 @@ def optionsSymbolsList(*args, **kwargs):
def cryptoSymbolsList(*args, **kwargs):
kwargs["filter"] = "symbol"
return sorted([x["symbol"] for x in cryptoSymbols(*args, **kwargs)])


def isinLookup(isin, token="", version="stable", filter="", format="json"):
"""This call returns an array of symbols that IEX Cloud supports for API calls.
https://iexcloud.io/docs/api/#isin-mapping
8am, 9am, 12pm, 1pm UTC daily
Args:
isin (str): isin to lookup
token (str): Access token
version (str): API version
filter (str): filters: https://iexcloud.io/docs/api/#filter-results
format (str): return format, defaults to json
Returns:
dict or DataFrame or list: result
"""
return _get(
"ref-data/isin?isin={}".format(isin),
token=token,
version=version,
filter=filter,
format=format,
)


@wraps(isinLookup)
def isinLookupDF(*args, **kwargs):
return pd.DataFrame(isinLookup(*args, **kwargs))
2 changes: 2 additions & 0 deletions pyEX/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,8 @@ def test_all(self):
"returnOfCapital",
"returnOfCapitalDF",
"returns",
"ricLookup",
"ricLookupDF",
"rightToPurchase",
"rightToPurchaseDF",
"rightsIssue",
Expand Down
2 changes: 2 additions & 0 deletions pyEX/tests/test_api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ def test_all_refdata(self):
"cryptoSymbolsList",
"isinLookup",
"isinLookupDF",
"ricLookup",
"ricLookupDF",
"corporateActions",
"corporateActionsDF",
"refDividends",
Expand Down

0 comments on commit 8d8047c

Please sign in to comment.