Skip to main content

No project description provided

Project description

hammad-python

Happily Accelerated Micro-Modules (for) Application Development

Introduction

The hammad-python library, is a mix of a love letter and collection of mixed resources for developing Python applications. This library is meant to be used for rapid prototyping and development, and is focused on providing styled placeholder tools for common patterns, tasks and workflows.

The package is currently built into the following structures:

  • hammad-python : Contains most core functionality and resources.
  • hammad-python[ai] : Contains easy to use resources for Generative AI related tasks such as generating completions with language models, or creating embeddings.
  • hammad-python[serve] : Contains FastAPI / Uvicorn based resources for serving and running applications.

Installation

You can install the package using pip or uv:

pip install hammad-python

# or install the `ai` extension
# pip install 'hammad-python[ai]'

# or install the `serve` extension
# pip install 'hammad-python[serve]'
uv pip install hammad-python

# or install the `ai` extension
# uv pip install 'hammad-python[ai]'

# or install the `serve` extension
# uv pip install 'hammad-python[serve]'

Basic Usage

Data Structures, Databases and Other Data Related Resources

Collections

Using hammad.data.collections is a simple way to create searchable collections of data using both bm25 and vector based search.

from hammad.data.collections import create_collection

# Create either a `vector` or `searchable` collection
col = create_collection(type = "searchable")

# add anything to the collection
col.add("This is some text")
col.add(5)
col.add({'text' : "this is a dictionary"})

# search the collection
print(col.query("text"))

Databases

Any collection can be either used as a standalone database, or can be added as one of the collections within a database. Databases provide a unified interface for handling both Searchable and Vector based collections.

from hammad.data.collections import create_collection
from hammad.data.databases import Database

# Create either a `vector` or `searchable` collection
col = create_collection(type = "searchable")

col.add("This is some text")

# Databases can either be created on memory or using a path
db = Database(location = "memory")

db.add_collection(col)

# search globally or within a single collection
print(db.query("text"))

Styling / Introspection Resources

The hammad-python package contains a variety of components that can be used to easily style, or run introspection (logging) on your code.

from hammad.cli import print, input, animate

# Use extended `rich` styling easily
print("Hello, World", bg_settings = {"title" : "This is a title"})

# Easily collect various forms of input in a single function
class User(BaseModel):
    name : str
    age : int

# TIP:
# you can style this the same way with `print`
user = input("Enter some information about yourself: ", schema = User)

# easily run a collection of prebuilt animations
animate("This is a rainbow!", type = "rainbow", duration = 2, refresh_rate = 20)

Using the various hammad.logging resources, you can both create custom & styled loggers, as well as easily inspect various aspects of your code during runtime.

from hammad.logging import Logger

# create standard / file based loggers easily
logger = Logger("hammad", level = "info", rich = Trues)

file_logger = Logger("hammad-file", level = "info", file = "hammad.log")

# log to the console
logger.info("This is an info message")

# Use the various `trace_` methods to run various introspection tasks
from hammad.logging import (
   trace,
   trace_cls,
   trace_function,
   trace_http
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hammad_python-0.0.24.tar.gz (372.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hammad_python-0.0.24-py3-none-any.whl (274.5 kB view details)

Uploaded Python 3

File details

Details for the file hammad_python-0.0.24.tar.gz.

File metadata

  • Download URL: hammad_python-0.0.24.tar.gz
  • Upload date:
  • Size: 372.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for hammad_python-0.0.24.tar.gz
Algorithm Hash digest
SHA256 26a51cebe682e85565735f23cd7c94814155fdb69a4f28f5c1386122faec20d0
MD5 46e642db659c18eb62aaa69dc3429e64
BLAKE2b-256 a3fe5bf88543bfba4f7ed76501f93be6a8023a6ab8d69a51ec5f068d0cf39688

See more details on using hashes here.

File details

Details for the file hammad_python-0.0.24-py3-none-any.whl.

File metadata

  • Download URL: hammad_python-0.0.24-py3-none-any.whl
  • Upload date:
  • Size: 274.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for hammad_python-0.0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 c8c1e403c608feb50d894fdedb3155c36db6e6a31c88e76d61b90115eb603a8b
MD5 75a505507f8f9577032b4e7b3ef4dc9e
BLAKE2b-256 349e594e4f82c09eb89266c6d2d54a7a7f056fab836a69fa1d69286e2d46bc22

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page