API for the Tangerine Bank
Project description
```
_____ _
|_ _|_ _ _ __ __ _ ___ _ __(_)_ __ ___
| |/ _` | '_ \ / _` |/ _ \ '__| | '_ \ / _ \
| | (_| | | | | (_| | __/ | | | | | | __/
|_|\__,_|_| |_|\__, |\___|_| |_|_| |_|\___|
|___/
```
[![Latest PyPI version](https://img.shields.io/pypi/v/tangerine.svg)](https://pypi.python.org/pypi/tangerine)
[![CircleCI](https://circleci.com/gh/kevinjqiu/tangerine.svg?style=svg)](https://circleci.com/gh/kevinjqiu/tangerine)
[![codecov](https://codecov.io/gh/kevinjqiu/tangerine/branch/master/graph/badge.svg)](https://codecov.io/gh/kevinjqiu/tangerine)
API and scraper for the Tangerine Bank (Canada).
Install
=======
pip install tangerine
Usage
=====
Authentication
--------------
```python
from tangerine import InteractiveSecretProvider, TangerineClient
secret_provider = InteractiveSecretProvider()
client = TangerineClient(secret_provider)
with client.login():
...
```
Using `InteractiveSecretProvider` will prompt user for username/account #, security challenge questions and PIN number.
The call to `client.login()` will initiate the login process. After the login is successful, subsequent calls to the API will be authenticated.
If `client.login()` is used as a context manager (i.e., `with client.login():`), logout will be automatically initiated after the code block exits
or any exception is raised.
List accounts
-------------
With an active session, use `client.list_accounts()`:
```python
with client.login():
accounts = client.list_accounts()
```
List transactions
-----------------
```python
with client.login():
accounts = client.list_accounts()
start_date = datetime.date(2017, 10, 1)
end_date = datetime.date(2017, 11, 1)
client.list_transactions([acct['number'] for acct in accounts], start_date, end_date)
```
Download statements
-------------------
```python
with client.login():
accounts = client.list_accounts()
start_date = datetime.date(2017, 10, 1)
end_date = datetime.date(2017, 11, 1)
client.download_ofx(account[0], start_date, end_date)
```
Contribution
============
Requirements:
* Python 3
* [pipenv](https://github.com/kennethreitz/pipenv)
* basic knowledge of Python and git
To contribute to the development, fork this repo to your github account, and clone it.
```
$ git clone https://YOUR-CLONE-URL tangerine
$ cd tangerine
$ pipenv install # this creates the virtualenv and installs the dependencies
$ pipenv shell # this activates the virtualenv
$ git checkout -b branch-for-feature-or-bug-fix
HACK...HACK...HACK
$ git commit ...
$ git push
```
and send a PR :)
Licence
=======
MIT
Changelog
=========
See [CHANGELOG.md](CHANGELOG.md)
Authors
=======
tangerine was written by Kevin J. Qiu <kevin@idempotent.ca> with [contributors](https://github.com/kevinjqiu/tangerine/graphs/contributors).
_____ _
|_ _|_ _ _ __ __ _ ___ _ __(_)_ __ ___
| |/ _` | '_ \ / _` |/ _ \ '__| | '_ \ / _ \
| | (_| | | | | (_| | __/ | | | | | | __/
|_|\__,_|_| |_|\__, |\___|_| |_|_| |_|\___|
|___/
```
[![Latest PyPI version](https://img.shields.io/pypi/v/tangerine.svg)](https://pypi.python.org/pypi/tangerine)
[![CircleCI](https://circleci.com/gh/kevinjqiu/tangerine.svg?style=svg)](https://circleci.com/gh/kevinjqiu/tangerine)
[![codecov](https://codecov.io/gh/kevinjqiu/tangerine/branch/master/graph/badge.svg)](https://codecov.io/gh/kevinjqiu/tangerine)
API and scraper for the Tangerine Bank (Canada).
Install
=======
pip install tangerine
Usage
=====
Authentication
--------------
```python
from tangerine import InteractiveSecretProvider, TangerineClient
secret_provider = InteractiveSecretProvider()
client = TangerineClient(secret_provider)
with client.login():
...
```
Using `InteractiveSecretProvider` will prompt user for username/account #, security challenge questions and PIN number.
The call to `client.login()` will initiate the login process. After the login is successful, subsequent calls to the API will be authenticated.
If `client.login()` is used as a context manager (i.e., `with client.login():`), logout will be automatically initiated after the code block exits
or any exception is raised.
List accounts
-------------
With an active session, use `client.list_accounts()`:
```python
with client.login():
accounts = client.list_accounts()
```
List transactions
-----------------
```python
with client.login():
accounts = client.list_accounts()
start_date = datetime.date(2017, 10, 1)
end_date = datetime.date(2017, 11, 1)
client.list_transactions([acct['number'] for acct in accounts], start_date, end_date)
```
Download statements
-------------------
```python
with client.login():
accounts = client.list_accounts()
start_date = datetime.date(2017, 10, 1)
end_date = datetime.date(2017, 11, 1)
client.download_ofx(account[0], start_date, end_date)
```
Contribution
============
Requirements:
* Python 3
* [pipenv](https://github.com/kennethreitz/pipenv)
* basic knowledge of Python and git
To contribute to the development, fork this repo to your github account, and clone it.
```
$ git clone https://YOUR-CLONE-URL tangerine
$ cd tangerine
$ pipenv install # this creates the virtualenv and installs the dependencies
$ pipenv shell # this activates the virtualenv
$ git checkout -b branch-for-feature-or-bug-fix
HACK...HACK...HACK
$ git commit ...
$ git push
```
and send a PR :)
Licence
=======
MIT
Changelog
=========
See [CHANGELOG.md](CHANGELOG.md)
Authors
=======
tangerine was written by Kevin J. Qiu <kevin@idempotent.ca> with [contributors](https://github.com/kevinjqiu/tangerine/graphs/contributors).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file tangerine-0.3.9-py3-none-any.whl
.
File metadata
- Download URL: tangerine-0.3.9-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e52232429222e78c7d38073d3efae031595ebe8051d97d1a5e73cff29c8ee0e |
|
MD5 | 1fb78f243888c6932675e54ae3b677bc |
|
BLAKE2b-256 | 484ce6138e1c04e9b4b0d1082ab7c6e348665f44c19a674e8077e9fc4d4e6638 |