Metadata-Version: 2.4
Name: getpantry.py
Version: 1.1.0.post1
Summary: Pantry Cloud API Wrapper written in Python
Author: maxie
License-Expression: MIT
Project-URL: Homepage, https://codeberg.org/maxeepy/pantry-cloud-wrapper
Project-URL: Issues, https://codeberg.org/maxeepy/pantry-cloud-wrapper/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.30
Provides-Extra: asynchronous
Requires-Dist: httpx; extra == "asynchronous"
Dynamic: license-file

# getpantry.py

A [getpantry.cloud](https://getpantry.cloud/) API Wrapper written in Python

## Example

```py
from pantry_cloud import Pantry

pantry = Pantry("pantry_id")
# you could also optionally add "wait_for_ratelimits = True"
# so the code would wait if there is a ratelimit, which WILL SLOW DOWN your program

# create a basket
bask = pantry.create_basket("basket_name", {"key": "value"}) # returns a Basket object

# get a basket
bask2 = pantry.get_basket("another_basket") # also returns a Basket object

# update a basket
pantry.update_basket("another_basket", {"key": 123, "hello": "world"}) # also returns a Basket object
# --- or ---
basket = pantry.get_basket("basket_to_update")
with basket:
  basket["testkey"] = "testvalue" # it updates the basket automatically on context exit

# delete a basket
pantry.delete_basket("basket_to_delete")

# get a basket's public id
public_id = pantry.get_basket_public_id("public_basket") # returns a string
# get a public basket
public_bask = Pantry.get_public_basket(public_id) # returns a PublicBasket object

# get pantry info
pantry.get_info() # returns PantryInformation object
# --- or ---
pantry.me # returns PantryInformation object

# update pantry info
pantry.update_info("new name", "new description") # also returns a PantryInformation object
```

## Asynchronous example

`pip install getpantry.py[asynchronnous]`

```py
from pantry_cloud import AsyncPantry
import async

pantry = AsyncPantry("pantry_id")
# this version has wait_for_ratelimits always on, so you should
# probably put the updates on background

async def main():
  # create a basket
  bask = await pantry.create_basket("basket_name", {"key": "value"}) # returns a Basket object

  # get a basket
  bask2 = await pantry.get_basket("basket_two") # returns a Basket object

  # update a basket
  await pantry.update_basket("another_basket", {"hello": [1,2,3]}) # also returns a Basket object
  # --- or ---
  basket = await pantry.get_basket("test_basket")
  async with basket:
    basket["test"] = [1, 2, 3 ,4] # it updates the basket automatically on context exit

  # delete basket
  await pantry.delete_basket("basket_begone")

  # get a basket's public id
  public_id = await pantry.get_basket_public_id("pretend_this_is_a_public_basket") # returns a string
  # get a public basket
  public_bask = await pantry.get_public_basket(public_id) # returns a PublicBasket object

  # get pantry info
  await pantry.get_info() # returns a PantryInformation object  
    
asyncio.run(main())

```
