избегать локального кеша при извлечении финансовых данных Yahoo из matplotlib.finance в python

Я получаю финансовые данные Yahoo в Python через этот интерфейс:

matplotlib.finance.quotes_historical_yahoo_ohlc (тикер, start_date, end_date)

Я нахожу этот интерфейс очень удобным, так как цены корректируются автоматически, а данные доступны в удобной структуре данных.

Однако недавно я обнаружил, что matplotlib.finance использует локальный кеш (matplotlib.get_cachedir() говорит мне, что мой кеш находится в ~/.matplotlib). Я хотел бы избежать использования какого-либо локального кеша, поскольку я хочу гарантировать, что любые данные, которые я запрашиваю, не устарели. Но я не могу найти возможность отключить локальное кэширование. По крайней мере, я хотел бы понять элементы управления, которые сбрасывают этот локальный кеш в ~/.matplotlib.


person Ashwin    schedule 02.10.2015    source источник


Ответы (1)


Я обнаружил в исходном коде matplotlib, что если get_cachedir возвращает None, этот кеш не будет использоваться (https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/finance.py). Таким образом, вы можете использовать метод monkeypatch get_cachedir следующим образом:

import matplotlib 

def empty_get_cachedir(*args, **kwargs):
    return None

matplotlib.get_cachedir = empty_get_cachedir
person akozin    schedule 02.10.2015
comment
Да, я вижу этот код - ‹code›, если cachename имеет значение None, а cachedir не None‹/code›. Меня беспокоит прямая совместимость — что, если в будущем get_cachedir будет использоваться этим модулем для других целей? - person Ashwin; 02.10.2015