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.3.post0.tar.gz (502.9 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.3.post0-py310-none-win_arm64.whl (7.1 MB view details)

Uploaded Python 3.10Windows ARM64

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

Uploaded Python 3.10Windows x86-64

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

Uploaded Python 3.10Windows x86

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

Uploaded Python 3.10

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

Uploaded Python 3.10

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

Uploaded Python 3.10

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

Uploaded Python 3.10

neonize-0.4.3.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.3.post0-py310-none-macosx_12_0_arm64.whl (7.2 MB view details)

Uploaded Python 3.10macOS 12.0+ ARM64

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: neonize-0.4.3.post0.tar.gz
  • Upload date:
  • Size: 502.9 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.3.post0.tar.gz
Algorithm Hash digest
SHA256 659feb762ce9f3e9c1c2c359b3adfefe93e4cb746d03d6f4ec53f853a1e8414c
MD5 ca1934755f67a5c65c2a16e3628e48f4
BLAKE2b-256 3fe9f611667c8b6bfb80b37c1a84b8694157c18c61db5705fa379b7fe7b5a24c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.post0-py310-none-win_arm64.whl
  • Upload date:
  • Size: 7.1 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.3.post0-py310-none-win_arm64.whl
Algorithm Hash digest
SHA256 4ba4f252450c0f8abf906c3e45eafb14a5cf93a356923669a012fd66504ad1b7
MD5 df5a80c093a2397173a8ed365147a22b
BLAKE2b-256 1b08c693c5c819e16eded9d0b8330fb8a1e905ceb22cbe4fbdbf7d99cce9217d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-win_amd64.whl
Algorithm Hash digest
SHA256 4c0f4dd3b6592d9c0ba42211d2a28b91a00362ea4278a5de2497a1fdd8ebcc98
MD5 5346cbc5048aef4d4ad7f09d7195af34
BLAKE2b-256 70e5460c0a129c1a4eafd53b78152fb0189b1a458e498c72d9a0f30900ed66ff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-win32.whl
Algorithm Hash digest
SHA256 13b4ff1e4b1a86d8c3d427b41dd49d5735dd87b22edadd9b94b064b53fad9ea7
MD5 e4e28af6623bb9fd306195e00932347a
BLAKE2b-256 ea36ac17cc7e599cd7991652d8754d71501e6adca30b172acb32a8ff817709f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5ac977bf6e71f7a11920f3aff86b61fd58acb324325e2cbb884b93426971f08
MD5 ce8ef752c88743f58ae7e5481a42c9a2
BLAKE2b-256 6db6b5376fd3901caafb696ad090cdd48b04f3728ff437efe2dd0515339dc662

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4f059081ea7a81eceeaa4486f6ec7fc69b405e09ef75a65c5d18aaa364dd1201
MD5 137818fda18e02bbafc2e6ce41cebceb
BLAKE2b-256 a73291cd90f2447033399f8c908855cdb084ef2c40e62ab8d2dbf9667f33c833

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9fffc6e337f59e149f6580df66cb1796a5acabf8f717ce7762484247f5cd9a05
MD5 907142b7666a06d14776b3f5eb7386ff
BLAKE2b-256 901342872c04e2ff1f8e4e71c08d39a635785f25a383b7302904c3040d55b39c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4654bc1157dfbdbc9747ee6786a1703d6c82563f99d60e33c3760fc22f304128
MD5 47e87abe61028f80471b190dad55fb68
BLAKE2b-256 baeb17094cbcc32b517bad27df6ba32fdf4aa71ff26986ffd0c9cfc0a3c815c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 dabd4835f15f9381a78a7fece5a00a32d2f85d0f1c83d4ccb72fa4d6693bb569
MD5 496d11896191ebe72ccd1566f581eb79
BLAKE2b-256 b8b981e408f176d6065ccf3f3f4c8dcec64238304d123e60856e9a4d3f240e8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py310-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 16562910a728c82ea749340e8beadc0022468ad7a463ddca7f12071f3ad2cc46
MD5 a584bb9845bdbbe62bf55b9535d7f6bc
BLAKE2b-256 4ec729776da49acfb612c8dcbbce6d75b91452c9d034d8c244dadfa97b05547d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neonize-0.4.3.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.3.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9ea72794f265e51f3484ba95e5dcedbb399d323e5335820545ff335a81a8129
MD5 916904afff369fd4bc8fcf02e41fd6bc
BLAKE2b-256 7d010397619931f5d318ad0670dd527a79bf589d06c57b5ea9da40e1d9d84dd2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.3.post0 This release

11 files

0.4.2.post0

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