From 660b30991215554028461e7846fbe4f2f58a2477 Mon Sep 17 00:00:00 2001 From: zevav Date: Fri, 9 Jun 2017 22:41:06 -0400 Subject: [PATCH] renamed get_some_transactions modules --- ...sactions_v2.py => get_some_transactions.py | 11 +++++++-- get_some_transactions_simple.py | 23 +++++++++++++++++++ get_some_transactions_v1.py | 12 ---------- requirements.txt | 16 +++++-------- send_summary.py | 4 +++- 5 files changed, 41 insertions(+), 25 deletions(-) rename get_some_transactions_v2.py => get_some_transactions.py (78%) create mode 100644 get_some_transactions_simple.py delete mode 100644 get_some_transactions_v1.py diff --git a/get_some_transactions_v2.py b/get_some_transactions.py similarity index 78% rename from get_some_transactions_v2.py rename to get_some_transactions.py index 48aa145..811a9d4 100644 --- a/get_some_transactions_v2.py +++ b/get_some_transactions.py @@ -1,5 +1,6 @@ import math import os +from pprint import pprint from typing import List # twilio.rest has a Client too, so let's avoid a namespace collision @@ -11,12 +12,13 @@ plaid_client = PlaidClient(client_id=os.getenv('PLAID_CLIENT_ID'), secret=os.get # https://plaid.com/docs/api/#transactions MAX_TRANSACTIONS_PER_PAGE = 500 -OMIT_CATEGORIES = ["Transfer", "Credit Card", "Deposit"] +OMIT_CATEGORIES = ["Transfer", "Credit Card", "Deposit", "Payment"] +OMIT_ACCOUNT_SUBTYPES = ['cd', 'savings'] def get_some_transactions(access_token: str, start_date: str, end_date: str) -> List[dict]: account_ids = [account['account_id'] for account in plaid_client.Accounts.get(access_token)['accounts'] - if account['subtype'] not in ['cd', 'savings']] + if account['subtype'] not in OMIT_ACCOUNT_SUBTYPES] num_available_transactions = plaid_client.Transactions.get(access_token, start_date, end_date, account_ids=account_ids)['total_transactions'] @@ -34,3 +36,8 @@ def get_some_transactions(access_token: str, start_date: str, end_date: str) -> for category in transaction['category'])] return transactions + +some_transactions = get_some_transactions(os.getenv('CHASE_ACCESS_TOKEN'), '1972-01-01', '2017-05-26') +print(f"there are {len(some_transactions)} transactions") +pprint([transaction for transaction in some_transactions if transaction['amount'] < 0]) + diff --git a/get_some_transactions_simple.py b/get_some_transactions_simple.py new file mode 100644 index 0000000..4db93ec --- /dev/null +++ b/get_some_transactions_simple.py @@ -0,0 +1,23 @@ +import os +from pprint import pprint +from typing import List + +# twilio.rest has a Client too, so let's avoid a namespace collision +from plaid import Client as PlaidClient + +plaid_client = PlaidClient(client_id=os.getenv('PLAID_CLIENT_ID'), secret=os.getenv('PLAID_SECRET'), + public_key=os.getenv('PLAID_PUBLIC_KEY'), environment=os.getenv('PLAID_ENV')) + + +def get_some_transactions(access_token: str, start_date: str, end_date: str) -> List[dict]: + return plaid_client.Transactions.get(access_token, start_date, end_date) + +some_transactions = get_some_transactions(os.getenv('CHASE_ACCESS_TOKEN'), '1972-01-01', '2017-05-26') + +print(f'there are {some_transactions["total_transactions"]} total transactions between those dates.') +print(f'get_some_transactions returned {len(some_transactions["transactions"])} transactions.') +pprint(some_transactions['transactions'][0].keys()) +print({category + for transaction in some_transactions['transactions'] if transaction['category'] is not None + for category in transaction['category']}) +pprint(some_transactions['accounts']) diff --git a/get_some_transactions_v1.py b/get_some_transactions_v1.py deleted file mode 100644 index 4f1ebd0..0000000 --- a/get_some_transactions_v1.py +++ /dev/null @@ -1,12 +0,0 @@ -import os -from typing import List - -# twilio.rest has a Client too, so let's avoid a namespace collision -from plaid import Client as PlaidClient - -plaid_client = PlaidClient(client_id=os.getenv('PLAID_CLIENT_ID'), secret=os.getenv('PLAID_SECRET'), - public_key=os.getenv('PLAID_PUBLIC_KEY'), environment=os.getenv('PLAID_ENV')) - - -def get_some_transactions(access_token: str, start_date: str, end_date: str) -> List[dict]: - return plaid_client.Transactions.get(access_token, start_date, end_date) diff --git a/requirements.txt b/requirements.txt index 42b9ae4..e129dee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,11 @@ -click==6.7 -flake8==3.3.0 -Jinja2==2.9.6 -MarkupSafe==1.0 -mccabe==0.6.1 -plaid==0.1.7 -pycodestyle==2.3.1 -pyflakes==1.5.0 +certifi==2017.4.17 +chardet==3.0.3 +idna==2.5 +plaid-python==2.0.2 PyJWT==1.5.0 PySocks==1.6.7 pytz==2017.2 -PyYAML==3.12 -requests==2.14.2 +requests==2.17.3 six==1.10.0 twilio==6.3.0 +urllib3==1.21.1 diff --git a/send_summary.py b/send_summary.py index f727d9c..2f7ee49 100644 --- a/send_summary.py +++ b/send_summary.py @@ -3,6 +3,8 @@ from typing import List from twilio.rest import Client as TwilioClient +from get_yesterdays import get_yesterdays_transactions + twilio_client = TwilioClient(os.getenv('TWILIO_SID'), os.getenv('TWILIO_TOKEN')) @@ -13,4 +15,4 @@ def send_summary(transactions: List[dict]) -> None: if __name__ == "__main__": - send_summary(get_yesterdays()) + send_summary(get_yesterdays_transactions())