Welcome to cad_tickers’s documentation!

https://badge.fury.io/py/cad-tickers.svg https://codecov.io/gh/FriendlyUser/cad_tickers/branch/master/graph/badge.svg

Canadian Securities Exchange

Functions to download tickers from the cse

cad_tickers.exchanges.cse.add_descriptions_to_df(df: pandas.core.frame.DataFrame, max_workers: int = 16) → pandas.core.frame.DataFrame
Parameters:
df - dataframe with urls to stock listings max_workers - maximum number of thread workers to have
Returns:
df: updated dataframe with descriptions in a column
cad_tickers.exchanges.cse.clean_cse_data(raw_df: pandas.core.frame.DataFrame) → pandas.core.frame.DataFrame

Removes bad data from cse dataframe.

Parameters:
raw_df: data from cse, read in from xlsx sheet so it is messy.
Returns:
df: clean df with no empty rows, proper column titles and removed needed rows.
cad_tickers.exchanges.cse.get_cse_files(filename: str = 'cse.xlsx', filetype: str = 'xlsx') → str

Gets excel spreadsheet from api.tsx using requests

Parameters:
filename: Name of the file to be saved filetype: Save as pdf or xlsx
Returns:
filePath returns path to file

See ://stackoverflow.com/questions/13567507/passing-csrftoken-with-python-requests

cad_tickers.exchanges.cse.get_cse_tickers_df() → pandas.core.frame.DataFrame

Grab cse dataframe from exported xlsx sheet

Returns:
clean_df: cleaned dataframe with urls to download more data on ticker.
cad_tickers.exchanges.cse.get_description_for_url(url: str) → str
Parameters:
url - link to ticker can be empty string
Returns:
description - details of what the ticker does, can be empty string

TSX Functions

Set of functions to scrap ticker data from the toronto stock exchange.

Will definitely split into smaller files once the graphql api becomes the main api.

cad_tickers.exchanges.tsx.add_descriptions_to_df(df) → pandas.core.frame.DataFrame

Description: single process solution to fetching descriptions

Input:
df: dataframe containing tickers
Returns:
df: updated dataframe with a descriptions if available
cad_tickers.exchanges.tsx.add_descriptions_to_df_pp(df: pandas.core.frame.DataFrame, max_workers: int = 16) → pandas.core.frame.DataFrame

Description: fetch descriptions for tickers in parallel noticable speedup uses thread pool which should be faster

Input:
df: dataframe containing tickers
Returns:
df: updated dataframe with a descriptions if available
cad_tickers.exchanges.tsx.add_descriptions_to_df_pp_legacy(df: pandas.core.frame.DataFrame) → pandas.core.frame.DataFrame

Description: fetch descriptions for tickers in parallel noticable speedup, keeping this to verify speed increase

Input:
df: dataframe containing tickers
Returns:
df: updated dataframe with a descriptions if available
cad_tickers.exchanges.tsx.company_description_by_ticker(ticker) → str

Description: Grabs searchable ticker from quotemedia using tmx ticker

Input:
ticker: string
Returns:
df: updated dataframe with a descriptions if available
cad_tickers.exchanges.tsx.dl_tsx_xlsx(filename: str = '', **kwargs) → str

Description: Gets excel spreadsheet from the tsx api using programatically

Note

Replicates api calls in TSX discover tool with all parameters. See migreport search Note that not all parameters are documented and/or limited validation

Parameters:
filename: Name of the file to be saved
Kwargs:
  • exchanges (string): TSX, TSXV
  • marketcap (string): values from 0 to specified value
  • sectors (string): cpc, clean-technology, closed-end-funds, technology
Returns:
data: returns path to file or pandas dataframe

See passing csrftoken

cad_tickers.exchanges.tsx.get_description_for_ticker(ticker: str) → str

set of functionality

cad_tickers.exchanges.tsx.get_mig_report(filename: str = '', exchange: str = 'TSX', return_df: bool = False) → str
Description:
Gets excel spreadsheet from tsx api programatically. See for more flexibility dl_tsx_xlsx
Parameters:
filename: Name of the file to be saved exchanges: TSX, TSXV return_df: Return a pandas dataframe
Returns:
filePath: returns path to file or dataframe

See ://stackoverflow.com/questions/13567507/passing-csrftoken-with-python-requests

cad_tickers.exchanges.tsx.grab_symbol_for_ticker(ticker: str) → str
Description:
Grabs the first symbol from ticker data all symbols should lead to valid webpages for data scrapping.
Parameters:
ticker: string representing the stock ticker
Returns:
symbol: string - searchable string in the quotemedia api or empty string
cad_tickers.exchanges.tsx.lookup_symbol_by_ticker(ticker: str) → list

Description: Returns search array dictionary for tickers

Note

sometimes the name of the ticker in the xlsx sheet is off slightly and we need to find the “real ticker”. Uses standard api (not graphql) to grab tickers

Example searchpoint is https://app.quotemedia.com/lookup?callback=tmxtickers&q=zmd&limit=5&webmasterId=101020

See Tmx Graphql and the new tmx site

Input:
ticker: tmx ticker
Output:
quote_data: list of ticker metadata

Examples

Grab Descriptions for all tsx tickers

from cad_tickers.exchanges.tsx import dl_tsx_xlsx, add_descriptions_to_df_pp
from datetime import datetime
start_time = datetime.now()
df = dl_tsx_xlsx()
# df = add_descriptions_to_df(df)
df = add_descriptions_to_df_pp(df)
end_time = datetime.now()
df.to_csv('tsx_all_descriptions.csv')
print(end_time - start_time)

Indices and tables