Skip to main content

shields badge pypi

Bunnet

The logo is generated by WOMBO Dream

Overview

Bunnet - is a Python object-document mapper (ODM) for MongoDB. It is a synchronous fork of Beanie ODM.

When using Bunnet each database collection has a corresponding Document that is used to interact with that collection. In addition to retrieving data, Bunnet allows you to add, update, or delete documents from the collection as well.

Bunnet saves you time by removing boilerplate code, and it helps you focus on the parts of your app that actually matter.

Installation

PIP

pip install bunnet

Poetry

poetry add bunnet

Example

from typing import Optional

from pymongo import MongoClient
from pydantic import BaseModel

from bunnet import Document, Indexed, init_bunnet


class Category(BaseModel):
    name: str
    description: str


class Product(Document):
    name: str                          # You can use normal types just like in pydantic
    description: Optional[str] = None
    price: Indexed(float)              # You can also specify that a field should correspond to an index
    category: Category                 # You can include pydantic models as well



# Bunnet uses Pymongo client under the hood 
client = MongoClient("mongodb://user:pass@host:27017")

# Initialize bunnet with the Product document class
init_bunnet(database=client.db_name, document_models=[Product])

chocolate = Category(name="Chocolate", description="A preparation of roasted and ground cacao seeds.")
# Bunnet documents work just like pydantic models
tonybar = Product(name="Tony's", price=5.95, category=chocolate)
# And can be inserted into the database
tonybar.insert() 

# You can find documents with pythonic syntax
product = Product.find_one(Product.price < 10).run()

# And update them
product.set({Product.name:"Gold bar"})

Links

Documentation

  • Doc - Tutorial, API documentation, and development guidelines.

Resources

  • GitHub - GitHub page of the project
  • Changelog - list of all the valuable changes
  • Discord - ask your questions, share ideas or just say Hello!!

Supported by JetBrains

JetBrains

Metadata

Release files for bunnet 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bunnet 1.3.0
File Size Uploaded
bunnet-1.3.0.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for bunnet 1.3.0
File Interpreter ABI Platform
bunnet-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / bunnet-1.3.0.tar.gz

Download URL bunnet-1.3.0.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
5e4aeee9c30ac7fe3968ad057398349d8c3fb886c5b568980266fc4e061c3a8f
BLAKE2b-256 checksum
How to use checksums
081de80a90d024e9f340d253cbffbff2cd98821045fe8a1ddc6c404bd6b6c9d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Release files / bunnet-1.3.0-py3-none-any.whl

Download URL bunnet-1.3.0-py3-none-any.whl
Size 80.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
feaf0e3a061e98411110bcc02a5f4fbf7e7483f575dddda748888e293fb3c1a1
BLAKE2b-256 checksum
How to use checksums
c91940ff7d514d09429909b26034c001d4e315f13dc42826a40e9d5796a30e7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page