Metadata-Version: 2.1
Name: lunchable
Version: 0.9.1
Summary: A simple Python SDK around the Lunch Money Developer API
Project-URL: Changelog, https://github.com/juftin/lunchable/releases
Project-URL: Discussions, https://github.com/juftin/lunchable/discussions
Project-URL: Docker, https://hub.docker.com/r/juftin/lunchable
Project-URL: Documentation, https://github.com/juftin/lunchable#readme
Project-URL: Issues, https://github.com/juftin/lunchable/issues
Project-URL: Source, https://github.com/juftin/lunchable
Author-email: Justin Flannery <justin.flannery@juftin.com>
License-Expression: MIT
License-File: LICENSE
Keywords: api-client,lunchmoney,pydantic,python
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: <4,>=3.8
Requires-Dist: click>=8.0.1
Requires-Dist: pydantic<2.0.0,>=1.2.0
Requires-Dist: requests<3.0.0,>=2.0.0
Requires-Dist: rich>=10.0.0
Provides-Extra: all
Requires-Dist: pandas<2.0.0,>=1.5.0; extra == 'all'
Requires-Dist: python-dateutil~=2.8.2; extra == 'all'
Requires-Dist: splitwise<3.0.0,>=2.3.0; extra == 'all'
Provides-Extra: apps
Requires-Dist: pandas<2.0.0,>=1.5.0; extra == 'apps'
Provides-Extra: primelunch
Requires-Dist: pandas<2.0.0,>=1.5.0; extra == 'primelunch'
Provides-Extra: splitlunch
Requires-Dist: python-dateutil~=2.8.2; extra == 'splitlunch'
Requires-Dist: splitwise<3.0.0,>=2.3.0; extra == 'splitlunch'
Description-Content-Type: text/markdown

# lunchable

<div align="center">
<a href="https://github.com/juftin/lunchable">
  <img src=https://i.imgur.com/FyKDsG3.png
    width="400" alt="lunchable">
</a>
</div>

[![Lunchable Version](https://img.shields.io/pypi/v/lunchable?color=blue&label=lunchable)](https://github.com/juftin/lunchable)
[![PyPI](https://img.shields.io/pypi/pyversions/lunchable)](https://pypi.python.org/pypi/lunchable/)
[![Docker Image Version](https://img.shields.io/docker/v/juftin/lunchable?color=blue&label=docker&logo=docker)](https://hub.docker.com/r/juftin/lunchable)
[![Testing Status](https://github.com/juftin/lunchable/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/juftin/lunchable/actions/workflows/tests.yaml?query=branch%3Amain)
[![GitHub License](https://img.shields.io/github/license/juftin/lunchable?color=blue&label=License)](https://github.com/juftin/lunchable/blob/main/LICENSE)

**lunchable** is a Python Client for the [Lunch Money Developer API](https://lunchmoney.dev). It's
built on top of [pydantic](https://github.com/samuelcolvin/pydantic), it offers an _intuitive_ API,
a _simple_ CLI, complete coverage of all endpoints, and _plugins_ to other external services.

### Installation

```shell
pip install lunchable
```

### Usage

```python
from typing import Any, Dict, List

from lunchable import LunchMoney
from lunchable.models import TransactionObject

lunch = LunchMoney(access_token="xxxxxxxxxxx")
transactions: List[TransactionObject] = lunch.get_transactions()

first_transaction: TransactionObject = transactions[0]
transaction_as_dict: Dict[str, Any] = first_transaction.dict()
```

```shell
export LUNCHMONEY_ACCESS_TOKEN="xxxxxxxxxxx"
lunchable transactions get --limit 5
lunchable http -X GET https://dev.lunchmoney.app/v1/assets
```

### Check out the [**Docs**](https://juftin.com/lunchable/)

### Looking to contribute? See the [Contributing Guide](docs/source/contributing.md)

### See the [Changelog](https://github.com/juftin/lunchable/releases)

---

---

<br/>

[<p align="center" ><img src="https://raw.githubusercontent.com/juftin/juftin/main/static/juftin.png" width="60" height="60"  alt="juftin logo"> </p>](https://github.com/juftin)
