Взаимодествие с API (например, при разработке ботов или получении информации) часто подразумевает использование всевозможных токенов. Хранить их прямо в коде - не лучшая идея со всех точек зрения: это неудобно, непрактично, а главное, небезопасно.
Один из очевидных спосбов избежать этой проблемы - использовать переменные окружения для их хранения. Для Python существует достаточно большое количество библиотек, позволяющих использовать этот прием. Одна из таких библиотек - python-dotenv. Она позволяет в пару строчек кода вытаскивать все нужные ключи из предварительно созданного .env-файла.
Испробуем все на практике.
Подготовка
Допустим, нам необходимо получить информацию о финансовых рынках с помощью удобного и бесплатного API Alpaca Trading. Допустим, мы хотим узнать, как дела у Яндекса на бирже NASDAQ.
Для этого нам понадобиться:
1) установить необходимые для работы библиотеки:
pip3 install python-dotenv
pip3 install alpaca-trade-api
2) зарегистрироваться на Alpaca trading и получить токен и секретный ключ
3) создать .env-файл в папке, в которой будет размещаться код и сохранить в нем ключи из пункта 2.
Пишем код
Импортируем все необходимое:
import os
import alpaca_trade_api as alpaca
import mplfinance as mpf
import pandas as pd
from dotenv import load_dotenv, find_dotenv
Получаем наши ключики из переменных окружения:
load_dotenv(find_dotenv())
API_KEY = os.environ.get('ALP_TOKEN')
API_SECRET = os.environ.get('ALP_KEY')
Присоединяемся к API и получаем нужные нам данные:
api = alpaca.REST(API_KEY, API_SECRET, 'https://paper-api.alpaca.markets')
df = api.get_barset('YNDX', 'day', limit=42).df['YNDX']
Чтобы построить график на основе получившихся данных с помощью mplfinance, нужно поменять названия столбцов (иначе программа завершится с ошибкой KeyError):
df.rename(columns={'open': 'Open',
'high': 'High',
'low': 'Low',
'close': 'Close',
'volume': 'Volume'},
inplace=True)
Ну и построим график (как строить графики mplfinance):
mpf.plot(df, type='candle',
title='YNDX - 42 days',
ylabel='Index Level',
style='nightclouds')
Подробнее об использовании переменных окружения можно почитать, например, на Хабре, а посмотреть примеры реализации - в книге Personal Finance with Python, из которой я собственно и узнал об этой замечательной библиотеке.
Как всегда, код на github.