Esempio n. 1
0
def fundamentals(identifier, type='FY', statement='calculations'):
    """
    Get available periods with standardized fundamental data for a company.

    Args:
        identifier: stock market ticker symbol associated with the company's
            common stock. If the company is foreign, use the stock exchange
            code, followed by a colon, then the ticker.
        type: Period type: FY (default) | QTR | TTM | YTD
        statement: Type of fundamental data: calculations (default) |
            income_statement | balance_sheet | cash_flow_statement

    Returns:
        Dataset as a Pandas DataFrame
    """
    return get('fundamentals/standardized',
               identifier=identifier.upper(),
               statement=statement.lower(),
               type=type.upper())
Esempio n. 2
0
def securities(identifier=None, query=None, exch_symbol=None):
    """
    Get securities with optional filtering using parameters.

    Args:
        identifier: Identifier for the legal entity or a security associated
            with the company: TICKER SYMBOL | FIGI | OTHER IDENTIFIER
        query: Search of security name or ticker symbol
        exch_symbol: Exchange symbol

    Returns:
        Dataset as a Pandas DataFrame
    """
    if identifier is not None:
        identifier = str.upper(identifier)

    return get('securities',
               identifier=identifier,
               query=query,
               exch_symbol=exch_symbol)
Esempio n. 3
0
def prices(identifier, start_date=None, end_date=None, frequency='daily',
           sort_order='desc'):
    """
    Get historical stock market prices or indices.

    Args:
        identifier: Stock market symbol or index
        start_date: Start date of prices (default no filter)
        end_date: Last date (default today)
        frequency: Frequency of prices: daily (default) | weekly | monthly |
            quarterly | yearly
        sort_order: Order of prices: asc | desc (default)

    Returns:
        Dataset as a Pandas DataFrame
    """
    if identifier is not None:
        identifier = str.upper(identifier)

    df = get('prices', identifier=identifier, start_date=start_date,
             end_date=end_date, frequency=frequency, sort_order=sort_order)
    df.index = pd.DatetimeIndex(df.date)
    df.drop('date', axis=1, inplace=True)
    return df
Esempio n. 4
0
def test_get_companies_data_with_query():
    companies = get('companies', query='Cola')
    assert len(companies) > 1
    assert companies.name.str.contains('Cola').any()
Esempio n. 5
0
def test_get_missing_endpoint():
    with pytest.raises(HTTPError):
        get('missing_endpoint')
Esempio n. 6
0
def test_get_companies_data_with_query_that_returns_many_pages():
    companies = get('companies', query='Corp')
    assert len(companies) > get_page_size('companies')
    assert len(companies) > 300
    assert companies.name.str.contains('Corp').any()