Skip to main content

🚀 Neonize

WhatsApp Automation Made Simple for Python

Python Go License WhatsApp Release

A powerful Python library built on top of Whatsmeow - enabling seamless WhatsApp automation with enterprise-grade performance


Getting StartedFeaturesExamplesDocumentationContributing

Neonize

✨ What is Neonize?

Neonize is a cutting-edge Python library that transforms WhatsApp automation from complex to simple. Built on top of the robust Whatsmeow Go library, it delivers enterprise-grade performance with Python's ease of use and developer-friendly API.

🎯 Why Choose Neonize?

  • 🔥 High Performance - Built with Go backend for maximum speed and efficiency
  • 🐍 Python Native - Seamless integration with your existing Python ecosystem
  • 🛡️ Enterprise Ready - Production-tested with robust error handling and reliability
  • ⚡ Real-time - Handle messages, media, and events in real-time with async support
  • 🔧 Easy Integration - Simple, intuitive API design for rapid development
  • 📚 Well Documented - Comprehensive documentation with practical examples

🌟 Features

Core Messaging

  • ✅ Send and receive text messages
  • ✅ Handle media files (images, videos, documents, audio)
  • ✅ Group management and operations
  • ✅ Real-time message events
  • ✅ Message receipts and status tracking

Advanced Capabilities

  • 🔐 End-to-end encryption support
  • 🎯 Contact and user information retrieval
  • 📞 Call event handling
  • 🔔 Presence and typing indicators
  • 📊 Polls and interactive messages
  • 🚫 Blocklist management

Developer Experience

  • 🔄 Event-driven architecture
  • 📊 Built-in logging and debugging
  • 🗄️ SQLite and PostgreSQL database support
  • ⚡ Both synchronous and asynchronous APIs
  • 🧪 Comprehensive examples and documentation

💎 Sponsors

We are grateful to our sponsors who help make Neonize possible. Their support enables us to continue developing and maintaining this open-source project for the community.

User avatar: Fernando Leon Franco

🤝 Become a Sponsor

Your sponsorship helps us:

  • ⚡ Maintain and improve Neonize
  • 🐛 Fix bugs and add new features
  • 📚 Create better documentation
  • 🔧 Provide community support
  • 🚀 Keep the project free and open-source

Become a Sponsor →

Thank you to all our sponsors for believing in Neonize and supporting open-source development! 🙏

🚀 Getting Started

Prerequisites

  • Python 3.8 or higher
  • Go 1.19+ (for building from source)

Installation

pip install neonize

Quick Start

from neonize.client import NewClient
from neonize.events import MessageEv, ConnectedEv, event

# Initialize client
client = NewClient("your_bot_name")

@client.event(ConnectedEv)
def on_connected(client: NewClient, event: ConnectedEv):
    print("🎉 Bot connected successfully!")

@client.event(MessageEv)
def on_message(client: NewClient, event: MessageEv):
    if event.message.conversation == "hi":
        client.reply_message("Hello! 👋", event.message)

# Start the bot
client.connect()
event.wait()  # Keep running

Async Version

import asyncio
from neonize.aioze.client import NewAClient
from neonize.aioze.events import MessageEv, ConnectedEv

client = NewAClient("async_bot")

@client.event(MessageEv)
async def on_message(client: NewAClient, event: MessageEv):
    if event.Message.conversation == "ping":
        await client.reply_message("pong! 🏓", event)

async def main():
    await client.connect()
    await client.idle()  # Keep receiving events

asyncio.run(main())

!!! important "Python 3.10+ Event Loop" Neonize uses asyncio.run() as the standard entry point. The event loop is automatically obtained via asyncio.get_running_loop() inside connect(). Do not use the deprecated asyncio.get_event_loop() or loop.run_until_complete() — these raise errors on Python 3.12+.

💡 Examples

📱 Basic Client Setup

from neonize.client import NewClient
from neonize.events import MessageEv, ConnectedEv, event
import logging

# Enable logging for debugging
logging.basicConfig(level=logging.INFO)

# Initialize the WhatsApp client
client = NewClient(
    name="my-whatsapp-bot",
    database="./neonize.db"
)

# Handle successful connection
@client.event(ConnectedEv)
def on_connected(client: NewClient, event: ConnectedEv):
    print("🎉 Successfully connected to WhatsApp!")
    print(f"📱 Device: {event.device}")

# Start the client
client.connect()
event.wait()

💬 Sending Messages

from neonize.utils import build_jid

# Send simple text message
jid = build_jid("1234567890")
client.send_message(jid, text="Hello from Neonize! 🚀")

# Send image with caption
with open("image.jpg", "rb") as f:
    image_data = f.read()

image_msg = client.build_image_message(
    image_data,
    caption="Check out this amazing image! 📸",
    mime_type="image/jpeg"
)
client.send_message(jid, message=image_msg)

# Send document file
with open("document.pdf", "rb") as f:
    doc_data = f.read()

doc_msg = client.build_document_message(
    doc_data,
    filename="document.pdf",
    caption="Here is the document you requested",
    mime_type="application/pdf"
)
client.send_message(jid, message=doc_msg)

🎭 Message Event Handling

from neonize.events import MessageEv, ReceiptEv, PresenceEv
from datetime import datetime

# Handle incoming text messages
@client.event(MessageEv)
def on_message(client: NewClient, event: MessageEv):
    message_text = event.message.conversation
    sender_jid = event.info.message_source.sender
    chat_jid = event.info.message_source.chat
    
    print(f"📨 Received from {sender_jid}: {message_text}")
    
    # Auto-reply functionality
    if message_text and message_text.lower() == "hello":
        client.send_message(chat_jid, text="Hello there! 👋")
    elif message_text and message_text.lower() == "help":
        help_text = """
🤖 *Bot Commands:*
• hello - Get a greeting
• help - Show this help message
• time - Get current time
• joke - Get a random joke
"""
        client.send_message(chat_jid, text=help_text)
    elif message_text and message_text.lower() == "time":
        current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        client.send_message(chat_jid, text=f"🕐 Current time: {current_time}")

# Handle message receipts (delivery status)
@client.event(ReceiptEv)
def on_receipt(client: NewClient, event: ReceiptEv):
    print(f"📧 Message {event.receipt.type}: {event.message_ids}")

# Handle typing indicators
@client.event(PresenceEv)
def on_presence(client: NewClient, event: PresenceEv):
    chat = event.message_source.chat
    participant = event.message_source.sender
    print(f"💬 {participant} is {event.presence} in {chat}")

👥 Group Management

from neonize.utils import build_jid

# Create a new group
participants = [
    build_jid("1234567890"),
    build_jid("0987654321"),
]

group_info = client.create_group(
    "My Awesome Group 🚀",
    participants
)
print(f"🎉 Group created: {group_info.jid}")

# Get group information
group_info = client.get_group_info(group_jid)
print(f"📋 Group Name: {group_info.group_name}")
print(f"📝 Description: {group_info.group_desc}")
print(f"👥 Participants: {len(group_info.participants)}")

# Add participants to group
client.update_group_participants(
    group_jid,
    [user_jid],
    "add"
)

# Remove participants from group
client.update_group_participants(
    group_jid,
    [user_jid],
    "remove"
)

# Update group name
client.update_group_name(
    group_jid,
    "New Group Name 🎯"
)

# Update group description
client.update_group_description(
    group_jid,
    "This is our updated group description"
)

🔍 Contact & Profile Management

# Get user profile information
profile = client.get_profile_picture(
    user_jid,
    full_resolution=True
)
print(f"👤 Profile picture URL: {profile.url}")
print(f"🆔 Profile ID: {profile.id}")

# Update your own status
client.set_presence("available")
print("✅ Status updated to available")

# Check if contacts are on WhatsApp
contacts = ["1234567890", "0987654321", "1122334455"]
registered_contacts = client.is_on_whatsapp(contacts)

for contact in registered_contacts:
    if contact.is_in:
        print(f"✅ {contact.jid} is on WhatsApp")
    else:
        print(f"❌ {contact.query} is not on WhatsApp")

📊 Polls & Interactive Messages

from neonize.utils.enum import VoteType

# Create a poll
poll_msg = client.build_poll_vote_creation(
    "What's your favorite programming language?",
    ["Python 🐍", "Go 🚀", "JavaScript 💛", "Rust 🦀"],
    VoteType.SINGLE_SELECT
)
client.send_message(chat_jid, message=poll_msg)

# Handle poll responses
@client.event(MessageEv)
def on_poll_vote(client: NewClient, event: MessageEv):
    voter = event.info.message_source.sender
    selected_options = event.message.poll_update_message.vote.selected_options
    print(f"📊 {voter} voted for: {selected_options}")

🏗️ Project Structure

neonize/
├── examples/
│   ├── async_basic.py
│   ├── basic.py
│   ├── multisession_async.py
│   ├── multisession.py
│   └── paircode.py
├── goneonize/
│   ├── build_python_proto.py
│   ├── chat_settings_store.go
│   ├── contact_store.go
│   ├── go.mod
│   ├── go.sum
│   ├── main.go
│   └── defproto/
├── neonize/
│   ├── __init__.py
│   ├── client.py
│   ├── events.py
│   ├── types.py
│   ├── aioze/          # Async client
│   ├── proto/          # Protocol buffers
│   └── utils/          # Helper utilities
├── docs/
│   ├── conf.py
│   ├── index.rst
│   └── getstarted.rst
└── tools/              # Build and development tools

📖 Documentation

Core Classes

Event System

The event system in Neonize is built around decorators and type-safe events:

# Synchronous event handling
@client.event(MessageEv)
def on_message(client: NewClient, event: MessageEv):
    handle_message(event)

@client.event(ReceiptEv)
def on_receipt(client: NewClient, event: ReceiptEv):
    handle_receipt(event)

# Asynchronous event handling
@async_client.event(MessageEv)
async def on_message(client: NewAClient, event: MessageEv):
    await handle_message_async(event)

Database Support

Neonize supports multiple database backends for storing session data:

# SQLite (default)
client = NewClient("bot_name", database="./app.db")

# PostgreSQL (recommended for production)
client = NewClient("bot_name", database="postgres://user:pass@localhost/dbname")

# In-memory (for testing)
client = NewClient("bot_name", database=":memory:")

Multi-Session Support

Handle multiple WhatsApp accounts simultaneously:

import asyncio
from neonize.aioze.client import ClientFactory, NewAClient
from neonize.aioze.events import MessageEv, ConnectedEv

client_factory = ClientFactory("multisession.db")

# Load existing sessions from database
for device in client_factory.get_all_devices():
    client_factory.new_client(device.JID)

# Register shared event handlers
@client_factory.event(ConnectedEv)
async def on_connected(client: NewAClient, event: ConnectedEv):
    print(f"⚡ Client connected")

@client_factory.event(MessageEv)
async def on_message(client: NewAClient, event: MessageEv):
    text = event.Message.conversation
    if text == "ping":
        await client.reply_message("pong!", event)

async def main():
    await client_factory.run()      # connect() all clients
    await client_factory.idle_all()  # keep running

asyncio.run(main())

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Setup

# Clone the repository
git clone https://github.com/krypton-byte/neonize.git
cd neonize

# Install dependencies with Poetry
poetry install --with dev

# Or install with pip in development mode
pip install -e .

# Run the basic example
python examples/basic.py

# Run tests
python -m pytest

# Build documentation
cd docs && make html

Code Standards

  • Follow PEP 8 for Python code style
  • Use type hints for better code documentation
  • Write comprehensive tests for new features
  • Update documentation for API changes
  • Ensure backward compatibility when possible

🗄️ Database Configuration

SQLite (Default)

Perfect for development and small-scale deployments:

client = NewClient("my_bot", database="./whatsapp.db")

PostgreSQL (Production Recommended)

For high-performance and scalable applications:

# Basic connection
client = NewClient("my_bot", database="postgres://username:password@localhost:5432/dbname")

# With SSL disabled
client = NewClient("my_bot", database="postgres://username:password@localhost:5432/dbname?sslmode=disable")

# With SSL required
client = NewClient("my_bot", database="postgres://username:password@localhost:5432/dbname?sslmode=require")

Connection Pool Settings

For production applications, configure connection pooling:

database_url = "postgres://user:pass@localhost:5432/neonize?pool_min_conns=5&pool_max_conns=20"
client = NewClient("production_bot", database=database_url)

🚀 Quick Integration

With FastAPI

from contextlib import asynccontextmanager
from fastapi import FastAPI
from neonize.aioze.client import NewAClient
from neonize.aioze.events import MessageEv
from neonize.utils.jid import build_jid

whatsapp_client = NewAClient("fastapi_bot")

@whatsapp_client.event(MessageEv)
async def on_message(client: NewAClient, event: MessageEv):
    if event.Message.conversation == "/api_status":
        await client.reply_message("API is running! ✅", event)

@asynccontextmanager
async def lifespan(app: FastAPI):
    # connect() automatically picks up the running event loop
    await whatsapp_client.connect()
    yield
    await whatsapp_client.disconnect()

app = FastAPI(lifespan=lifespan)

@app.get("/send-message")
async def send_message(phone: str, message: str):
    jid = build_jid(phone)
    await whatsapp_client.send_message(jid, message)
    return {"status": "sent"}

With Django

# apps.py
from django.apps import AppConfig
from neonize.client import NewClient
import threading

class WhatsAppConfig(AppConfig):
    name = 'whatsapp_integration'
    
    def ready(self):
        self.whatsapp_client = NewClient("django_bot")
        thread = threading.Thread(target=self.whatsapp_client.connect)
        thread.daemon = True
        thread.start()

With Flask

from flask import Flask, request, jsonify
from neonize.client import NewClient
import threading

app = Flask(__name__)
whatsapp_client = NewClient("flask_bot")

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    phone = data.get('phone')
    message = data.get('message')
    
    if phone and message:
        jid = build_jid(phone)
        whatsapp_client.send_message(jid, text=message)
        return jsonify({"status": "success"})
    
    return jsonify({"status": "error"}), 400

if __name__ == '__main__':
    # Start WhatsApp client in background
    thread = threading.Thread(target=whatsapp_client.connect)
    thread.daemon = True
    thread.start()
    
    app.run(debug=True)

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

🙏 Acknowledgments

  • Whatsmeow - The powerful Go library that powers Neonize
  • Thundra - Companion library for easy bot creation
  • Python Community - For the amazing ecosystem and support
  • Contributors - All the developers who have contributed to this project

📞 Support

🌟 Introducing Tryx

Looking for another powerful tool for WhatsApp automation? Check out Tryx — a Rust-powered Python SDK designed for building WhatsApp automations with an async-first API, strong typing, and production-focused performance.

Why Tryx?

  • Async-first architecture for event-driven bots
  • Python-friendly API with namespace-based clients
  • High-performance native core for protocol and transport workloads
  • Typed interfaces for better editor support and safer integrations

Tryx combines the best of:

  • Rust for protocol and runtime-heavy paths
  • PyO3 for Python bindings
  • Tokio for async orchestration
  • Typed Python package distribution (.pyi + py.typed)

Note: This project is an independent developer SDK and is not affiliated with WhatsApp or Meta.

For more details, visit the Tryx repository.


🌟 Related Projects

  • Thundra - High-level bot framework built on Neonize
  • Neonize Dart - Dart/Flutter wrapper for Neonize
  • Whatsmeow - Go WhatsApp Web API library
  • Tryx - Rust-powered Python SDK for WhatsApp automation

Made with ❤️ for the Python community

If this project helped you, please consider giving it a ⭐ on GitHub!

Download files

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

Source Distribution

neonize-0.4.2.post0.tar.gz (502.7 kB view details)

Uploaded Source

Built Distributions

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

neonize-0.4.2.post0-py310-none-win_arm64.whl (7.2 MB view details)

Uploaded Python 3.10Windows ARM64

neonize-0.4.2.post0-py310-none-win_amd64.whl (7.9 MB view details)

Uploaded Python 3.10Windows x86-64

neonize-0.4.2.post0-py310-none-win32.whl (7.8 MB view details)

Uploaded Python 3.10Windows x86

neonize-0.4.2.post0-py310-none-manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded Python 3.10

neonize-0.4.2.post0-py310-none-manylinux2014_s390x.whl (8.0 MB view details)

Uploaded Python 3.10

neonize-0.4.2.post0-py310-none-manylinux2014_i686.whl (10.7 MB view details)

Uploaded Python 3.10

neonize-0.4.2.post0-py310-none-manylinux2014_aarch64.whl (7.4 MB view details)

Uploaded Python 3.10

neonize-0.4.2.post0-py310-none-macosx_12_0_x86_64.whl (7.7 MB view details)

Uploaded Python 3.10macOS 12.0+ x86-64

neonize-0.4.2.post0-py310-none-macosx_12_0_arm64.whl (7.2 MB view details)

Uploaded Python 3.10macOS 12.0+ ARM64

neonize-0.4.2.post0-py3-none-any.whl (604.2 kB view details)

Uploaded Python 3

File details

Details for the file neonize-0.4.2.post0.tar.gz.

File metadata

  • Download URL: neonize-0.4.2.post0.tar.gz
  • Upload date:
  • Size: 502.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0.tar.gz
Algorithm Hash digest
SHA256 668427f192bb4c17da4b530f69c45dd5bbf38ce8ec12babb648db511ac38b20f
MD5 38a77ddf4da8d9a791408d7a8c8435e4
BLAKE2b-256 e2bfb05f502324d9ae379f6e3796c097606706d10133712738f1bfce71751456

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-win_arm64.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-win_arm64.whl
  • Upload date:
  • Size: 7.2 MB
  • Tags: Python 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-win_arm64.whl
Algorithm Hash digest
SHA256 23fb4c0593af117479637fff74e95405663af97d2ffa6742ce58f08b7d4ff418
MD5 c5f0fc69920a06b44bf938b93a78e08b
BLAKE2b-256 9f29d552ad8a3a1493a34c6dfe86473ae25c7412580c0f0653a84b37f389ce83

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-win_amd64.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-win_amd64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: Python 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-win_amd64.whl
Algorithm Hash digest
SHA256 f4232804607f30855ecb6757236374542aaf9dae63d286157d740ee740860d60
MD5 36c979b39403fb52837b7dd3b15dddec
BLAKE2b-256 0913add207f66a33720c5b5e568e951cc0051a8ec893bbee3e0e19a43ea4285e

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-win32.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-win32.whl
  • Upload date:
  • Size: 7.8 MB
  • Tags: Python 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-win32.whl
Algorithm Hash digest
SHA256 f69b0b94012d3c6f4f64fe9b47e7a77e841deb3e184c62cd3c4a087781d8bfb4
MD5 650075d44c6390065cbf5cc4e56551fc
BLAKE2b-256 e347c1381057fddd2b5431067748994d670f100f8dd20c031f1df28584d96f78

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-manylinux2014_x86_64.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: Python 3.10
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1702307a2ebc80d63bdd898bd1e2eb6bf571db9aa0fd0d1ff6483b1f54e0e95e
MD5 075929c69011e87ffbe1d02fb1e9deaa
BLAKE2b-256 bb251effc6e16e13d6c03300c64a3790a490caa5001bd507f9afdfe551860c35

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-manylinux2014_s390x.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: Python 3.10
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ea431c3941f3f7aac8a2d10cdc2a9c30cc302153adcfd65db8d685b58e6fea08
MD5 71c4aeb4ded5aa4e7bf8984fa9646f59
BLAKE2b-256 6c32d88caa3dcf637c862f11d09d7f0f2948f0368bc63c92cc908b3254350655

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-manylinux2014_i686.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-manylinux2014_i686.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: Python 3.10
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4efebfab51c1331f961d07bb154b6f7a113038e5809466f6c588043a3b39b9bf
MD5 44830a7fc2172d81d3c59e4115178f4e
BLAKE2b-256 bf0d80b6d7d851010c6e88ace22af4635ce17ef0c35cf7b84026219bd98415ed

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-manylinux2014_aarch64.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: Python 3.10
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d1d347b44e447ed6903d6f111a3af161e07e27483d201fad4a0fc19dcb6a2217
MD5 3d878e3e7096e800d95993b7bc6a2995
BLAKE2b-256 46664c969ac937e9a3597681c8fa9cffa9e2a353058bece447629f6ec8f2282e

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-macosx_12_0_x86_64.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-macosx_12_0_x86_64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: Python 3.10, macOS 12.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 3c18ed422e9692bfdb83d1cea79dfc0cfda5f2f72733f504bca1745d9c45181f
MD5 f22603b8d22caea985717d44a8b0a9f6
BLAKE2b-256 f46565d0424eecaa1e9fa4425384989b861cb18557462da7b2ce0dfe100e4f9a

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py310-none-macosx_12_0_arm64.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py310-none-macosx_12_0_arm64.whl
  • Upload date:
  • Size: 7.2 MB
  • Tags: Python 3.10, macOS 12.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py310-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 6f49be535748adeb3ffd4d2d0f86e7b0d16558f9d4f47c1ed82777cafe41f716
MD5 5eedddfa2ebd3594b9308a285fa74998
BLAKE2b-256 b3d0e1f5bb246611d40581e190ce548a35d38f45775dd23cda85e5f9287d30fc

See more details on using hashes here.

File details

Details for the file neonize-0.4.2.post0-py3-none-any.whl.

File metadata

  • Download URL: neonize-0.4.2.post0-py3-none-any.whl
  • Upload date:
  • Size: 604.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neonize-0.4.2.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 51a269a14ec8fb83f3d205c3953c1d3fee8ba8a4580c9fdf0a36eb4c5eafd082
MD5 c8d0349967f3761af728fa7025a4008d
BLAKE2b-256 e6868ec44d8f907e17f4ab73f2e0fe6cb466d61ef7747c78964335da2b1d63ed

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.3.post0

11 files

This release

0.4.2.post0 This release

11 files

0.4.1.post0

11 files

0.4.0.post0

11 files

0.3.18.post0

11 files

0.3.17.post0

11 files

0.3.16.post0

11 files

0.3.15.post0

11 files

0.3.14.post0

11 files

0.3.13.post0

9 files

0.3.12.post1

9 files

0.3.12

11 files

0.3.11.post3

9 files

0.3.11.post2

11 files

0.3.11.post1

11 files

0.3.11

11 files

0.3.10.post7

14 files

0.3.10.post6

12 files

0.3.10.post5

11 files

0.3.10.post4

11 files

0.3.10.post3

11 files

0.3.10.post2

11 files

0.3.10.post1

11 files

0.3.10

9 files

0.3.9.post1

2 files

0.3.9

11 files

0.3.8

11 files

0.3.7

11 files

0.3.6

4 files

0.3.5

9 files

0.3.4

11 files

0.3.3

11 files

0.3.2

11 files

0.3.1

11 files

0.3.0

5 files

0.2.1

11 files

0.2.0

11 files

0.1.14

11 files

0.1.13

8 files

0.1.12

8 files

0.1.11

7 files

0.1.10

3 files

0.1.8

6 files

0.1.7

5 files

0.1.6

2 files

0.1.5

2 files

0.1.2

4 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

8 files

0.0.0.post1

2 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