In [1]:
import datetime as dt
from collections import OrderedDict
from pathlib import Path
import sys
import os
from dotenv import load_dotenv, find_dotenv
ROOT = Path('../')
DATA_DIR = ROOT/'tests'/'data'
OUT_DIR = ROOT/'output'
sys.path.append(str(ROOT))
%load_ext autoreload
%autoreload 2
import countdowner as cd
load_dotenv(find_dotenv())
Out[1]:
In [2]:
# Read a watchlist
w = cd.read_watchlist(DATA_DIR/'watchlist.yaml')
w
Out[2]:
In [4]:
# Get and parse a product
code = w['products']['stock_code'].iat[0]
r = cd.get_product(32467)
cd.parse_product(r)
Out[4]:
In [5]:
# Get and parse many products
codes = w['products']['stock_code'].values
%time f = cd.collect_products(codes)
f
Out[5]:
In [8]:
# Filter sales
cd.filter_sales(f)
Out[8]:
In [ ]:
# Email sales
print(f"Emailing to {w['email_addresses']}")
username = os.getenv('GMAIL_USERNAME') # Replace with your GMail username
password = os.getenv('GMAIL_PASSWORD') # Replace with your GMail password
cd.email(f, w['email_addresses'], "Hello from Countdowner", username, password)
In [ ]:
# Get products in bulk
cd.run_pipeline(DATA_DIR/'watchlist.yaml')
In [ ]:
# Run pipeline again: read watchlist, collect products, write products to file,
# filter sales, and email results
cd.run_pipeline(DATA_DIR/'watchlist.yaml', out_path=OUT_DIR/'products.csv')
%less {OUT_DIR/'products.csv'}
In [ ]: