Skip to main content

📬 emval

GitHub License GitHub Release GitHub last commit GitHub Actions Workflow Status Crates.io Version docs.rs PyPI

emval is a blazingly fast email validator written in Rust with Python bindings, offering performance improvements of 100-1000x over traditional validators.

performance image

Features

  • Drop-in replacement for popular email validators like python-email-validator, verify-email, and pyIsEmail.
  • 100-1000x faster than python-email-validator.
  • Validates email address syntax according to RFC 5322 and RFC 6531.
  • Checks domain deliverability (coming soon).
  • Supports internationalized domain names (IDN) and local parts.
  • Provides user-friendly syntax errors.
  • Normalizes addresses.
  • Rejects invalid and unsafe Unicode characters.

Getting Started

Install emval from PyPI:

pip install emval

or use emval in a Rust project:

cargo add emval

Usage

Quick Start

To validate an email address in Python:

from emval import validate_email, EmailValidator

email = "example@domain.com"

try:
    # Check if the email is valid.
    val_email = validate_email(email)
    # Utilize the normalized form for storage.
    normalized_email = val_email.normalized
except Exception as e:
    # Example: "Invalid Local Part: Quoting the local part before the '@' sign is not permitted in this context."
    print(str(e))

The same code in Rust:

use emval::{validate_email, ValidationError};

fn main() -> Result<(), ValidationError> {
    let email = "example@domain.com";
    let val_email = validate_email(email)?;
    let normalized_email = val_email.normalized;
    Ok(())
}

Configurations

Customize email validation behavior using the EmailValidator class:

from emval import EmailValidator

emval = EmailValidator(
    allow_smtputf8=False,
    allow_empty_local=True,
    allow_quoted_local=True,
    allow_domain_literal=True,
    deliverable_address=False,
    allowed_special_domains=['test', 'invalid'],
)

email = "user@[192.168.1.1]"

try:
    validated_email = emval.validate_email(email)
    print(validated_email)
except Exception as e:
    print(str(e))

The same code in Rust:

use emval::{EmailValidator, ValidationError};

fn main() -> Result<(), ValidationError> {
    let emval = EmailValidator {
        allow_smtputf8: false,
        allow_empty_local: true,
        allow_quoted_local: true,
        allow_domain_literal: true,
        deliverable_address: false,
        allowed_special_domains: vec!["test".to_string(), "invalid".to_string()],
    };

    let email = "example@domain.com";
    let validated_email = emval.validate_email(email)?;
    Ok(())
}

Options

  • allow_smtputf8: Allows internationalized email addresses.
  • allow_empty_local: Allows an empty local part (e.g., @domain.com).
  • allow_quoted_local: Allows quoted local parts (e.g., "user name"@domain.com).
  • allow_domain_literal: Allows domain literals (e.g., [192.168.0.1]).
  • deliverable_address: Checks if the email address is deliverable by verifying the domain's MX records.
  • allowed_special_domains: List of special-use domains to allow despite being reserved (e.g., ['test', 'invalid']).

Polars Plugin

emval includes a high-performance Polars plugin for validating email addresses in DataFrames at scale.

Installation

The Polars plugin is included when you install emval:

pip install emval

Usage

Import the validate_email function from emval.polars and use it with Polars expressions:

import polars as pl
from emval.polars import validate_email

# Create a DataFrame with email addresses
df = pl.DataFrame({
    "email": [
        "user@example.com",
        "invalid-email",
        "another.user@domain.org",
        ""
    ]
})

# Validate emails and add results as a struct column
result = df.with_columns(
    validated=validate_email(
        pl.col("email"),
        allow_smtputf8=True,
        allow_empty_local=False,
        allow_quoted_local=False,
        allow_domain_literal=False,
        deliverable_address=False,
        allowed_special_domains=[]
    )
)

# Extract individual fields from the validation result
result = result.with_columns(
    original=pl.col("validated").struct.field("original"),
    normalized=pl.col("validated").struct.field("normalized"),
    local_part=pl.col("validated").struct.field("local_part"),
    domain_address=pl.col("validated").struct.field("domain_address"),
    domain_name=pl.col("validated").struct.field("domain_name"),
    is_deliverable=pl.col("validated").struct.field("is_deliverable"),
    email_status=pl.col("validated").struct.field("error"),
)

print(result)

Return Fields

The validate_email function returns a struct with the following fields:

  • original: The original email address (null if invalid)
  • normalized: The normalized form of the email address (null if invalid)
  • local_part: The local part of the email address (null if invalid)
  • domain_address: The IP address if a domain literal was used (null otherwise)
  • domain_name: The domain name (null if invalid)
  • is_deliverable: Whether the email is deliverable based on MX records (null if invalid or not checked)
  • error: The validation error message (null for valid emails and null inputs)

Invalid emails have null validation fields and a populated error field. This makes it easy to filter valid emails:

# Filter to only valid emails
valid_emails = result.filter(pl.col("normalized").is_not_null())

Performance Benefits

The Polars plugin leverages Rust's performance and Polars' columnar architecture to validate millions of email addresses efficiently. This is ideal for:

  • Data cleaning and validation pipelines
  • Batch processing of user data
  • ETL workflows
  • Large-scale email list verification

Technical Details

Email Address Syntax

emval adheres to the syntax rules defined in RFC 5322 and RFC 6531. It supports both ASCII and internationalized characters.

Internationalized Email Addresses

Domain Names

emval converts non-ASCII domain names into their ASCII "Punycode" form according to IDNA 2008. This ensures compatibility with systems that do not support Unicode.

Local Parts

emval allows international characters in the local part of email addresses, following RFC 6531. It offers options to handle environments without SMTPUTF8 support.

Unsafe Unicode Characters

emval rejects unsafe Unicode characters to enhance security, preventing display and interpretation issues.

Normalization

emval normalizes email addresses to ensure consistency:

  • Lowercasing domains: Domain names are standardized to lowercase.
  • Unicode NFC normalization: Characters are transformed into their precomposed forms.
  • Removing unnecessary characters: Quotes and backslashes in the local part are removed.

Acknowledgements

This project draws inspiration from python-email-validator. While python-email-validator is more comprehensive, emval aims to provide a faster solution.

Getting Help

For questions and issues, please open an issue in the GitHub issue tracker.

License

emval is licensed under the MIT License. See the LICENSE file for more details.

Download files

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

Source Distribution

emval-0.1.13.tar.gz (67.3 kB view details)

Uploaded Source

Built Distributions

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

emval-0.1.13-cp314-cp314t-win_amd64.whl (6.1 MB view details)

Uploaded CPython 3.14tWindows x86-64

emval-0.1.13-cp314-cp314t-win32.whl (5.4 MB view details)

Uploaded CPython 3.14tWindows x86

emval-0.1.13-cp314-cp314t-musllinux_1_2_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

emval-0.1.13-cp314-cp314t-musllinux_1_2_i686.whl (6.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

emval-0.1.13-cp314-cp314t-musllinux_1_2_armv7l.whl (6.3 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

emval-0.1.13-cp314-cp314t-musllinux_1_2_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

emval-0.1.13-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

emval-0.1.13-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (6.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

emval-0.1.13-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (6.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

emval-0.1.13-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (6.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

emval-0.1.13-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

emval-0.1.13-cp314-cp314t-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.12+ i686

emval-0.1.13-cp314-cp314t-macosx_11_0_arm64.whl (5.7 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

emval-0.1.13-cp314-cp314t-macosx_10_12_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

emval-0.1.13-cp38-abi3-win_amd64.whl (6.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

emval-0.1.13-cp38-abi3-win32.whl (5.4 MB view details)

Uploaded CPython 3.8+Windows x86

emval-0.1.13-cp38-abi3-musllinux_1_2_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

emval-0.1.13-cp38-abi3-musllinux_1_2_i686.whl (6.5 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

emval-0.1.13-cp38-abi3-musllinux_1_2_armv7l.whl (6.3 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

emval-0.1.13-cp38-abi3-musllinux_1_2_aarch64.whl (6.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

emval-0.1.13-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

emval-0.1.13-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (6.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

emval-0.1.13-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (6.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

emval-0.1.13-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (6.0 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

emval-0.1.13-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

emval-0.1.13-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.12+ i686

emval-0.1.13-cp38-abi3-macosx_11_0_arm64.whl (5.7 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

emval-0.1.13-cp38-abi3-macosx_10_12_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file emval-0.1.13.tar.gz.

File metadata

  • Download URL: emval-0.1.13.tar.gz
  • Upload date:
  • Size: 67.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for emval-0.1.13.tar.gz
Algorithm Hash digest
SHA256 2d92b3377bc8192b204fd111993df271774b9985230d4adc812aa336e2c1a397
MD5 7039e7ad5014466a066fbcc52e0c1feb
BLAKE2b-256 0301bed8aacacfb4ada42a2053e41035a97e5e01e32643ae76b42fc18abb0a50

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: emval-0.1.13-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 6.1 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for emval-0.1.13-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 e730d976dfcf9bca14bbc53a245a821fdfece5d405dd5fbcc37d3b80363b8ddd
MD5 e436356a75dd61e7eb63a9f4e1ddaacc
BLAKE2b-256 fa9d08088285199caf6cffea99a0e1b5c60c99961d419698ede84fe7a682d15d

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-win32.whl.

File metadata

  • Download URL: emval-0.1.13-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for emval-0.1.13-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 2b4ce8d29dcc30332e324988bc04dddccfdf93e0275f3a3d042243fd8a93c583
MD5 df387a6540070be8f579893553b52441
BLAKE2b-256 d8cc43374ce64017b0453bb50dd993889161095437cb94bac96eabfcd368f564

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9393a73490c5733a783965a5c6a698cbe78c21429f5eebc58ac9e9de019a9453
MD5 48b8bbed00d0dca44de2cefdcf523d99
BLAKE2b-256 035eb68ad95e90f68b386b638498ac33575fabbd0f5cb709d6c7d8b375b4a61f

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0483a9a1935b2e4f2b134782e2bac2621848339b744113cfbd4cc5dc0406f977
MD5 200887a5a1c442467c06d117097bd984
BLAKE2b-256 4b90273e862c8738e20f08b7d826fc41ac22faff620afb28c503276e73487b75

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 39f9bb4b92a95cd384c8c0b57e3f8e7e8cb14a2d9f042b5e4fd737136f95bcbe
MD5 5fbf2925c0220214e675547b711941ac
BLAKE2b-256 adc486385c46b14fd042a4a66386ca090cb254568eb2a9f6031d18590d5033fa

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7d40f4f1f9ee3292d820b1e1f5d999a1a87ad20f1deba328d902e322bb746dc4
MD5 4ac823fbe617292d48afac26dd5236a2
BLAKE2b-256 325edd5532f9ad170d1b5a2f267933c9239bf841a4f378fa5a426e56acdcf444

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fdf0d533cf58d21cbb30ba8ee15b4013e6d283eb1aaf02387ef721921fe2a761
MD5 480a6bdc295cd16d48702918cb59f7a8
BLAKE2b-256 d5a86208891db27989ff4da3b3abb4ab16b14a4f7ac453dc05d8c9267544a5da

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2a48b6f3c918e5ea9c0626d16425e2fcb3d9c61ab5c2a8215010194f69812793
MD5 4315bdac7bc2c5e045ffdf1caa0814c5
BLAKE2b-256 66e572c00fd5b1980438924105c8136c5f2d3fde051338cbe2ae566a9a5b95e4

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bf6c969929c923add1a7156ffdf777faacbacc5237f6a0d471517d6a3e8f9ade
MD5 4144bb4d7dbe966dd2f3945bd50e6fe4
BLAKE2b-256 691cd2244c5c6f06ffc454154e510f9483b6fffebf5b72e9aedc22a53e6edd77

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 7820ccdf2f7a60a9a3e8bfb4c587038d44e8c1090edf59580bc5cb02fc47356f
MD5 85674aad513c3a068fc9f5f330e2a4b6
BLAKE2b-256 f6f76fb99c20aba6b24c2659f8147bc3e2b24e2a265e689c027871088069f4ed

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5050b801e21fa7dbc9cf97dd5aec4820609d365e14c9ddf5b3c7a660576464d5
MD5 e6c5362c2cf89c284955e96ca99eb004
BLAKE2b-256 0b262ab0b80a7efe63c0147af8515e34d1af4da32fb8414ce67422abd8b4a778

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 42521d543db1ad9f70ed0fd59c43da8f0262c741dbfa9cfa9d7af0bcb14e574f
MD5 9111b0f8a1fb875238528fc425a3b7da
BLAKE2b-256 04b53d34c526af30804ee98cd28024a2c19267dfbb7846a7d2e134cb0a183635

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f6539d6822f324c926b58421e95d2c53781c737ae870f898701e12b0de9e7bd
MD5 42ff3628e23008537b7e810590c8b28f
BLAKE2b-256 a30a4100188de827ed4ff8c25aa1414be1cc76bdaed710817ba3033c8e6c74f8

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 11f6710c726e532f7f7fe6aafb1ddb6dd426a6dbf24143eb9877486f9a786944
MD5 7e27956a1d01d92a7504aa9ec3cfbef0
BLAKE2b-256 c8bade810d54cfcbfe8f23ec97e5f6307f6b0837f0b9f272b92600487aa9549f

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: emval-0.1.13-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 6.1 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for emval-0.1.13-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7677b788e6f4e0492d1f150948dc9a7b19f0a29d2376fc482b74cc6f96f9aaf7
MD5 1e854e25a44734e921fb8fcd90732ff9
BLAKE2b-256 df3b674ad6231e930a9b3dd58c0003acb92af114e61aa9460862cb7ae8e3b014

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-win32.whl.

File metadata

  • Download URL: emval-0.1.13-cp38-abi3-win32.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for emval-0.1.13-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 f57d622c94b8864accf6ce6b08ad5a7747fd0207de0101c2502df9afb837e51e
MD5 a675e4f4b9c18e50bce28c04def51c92
BLAKE2b-256 176b688f3f093099ed8f6c8644af0c055ad75f82922ac78cc94c8c0bda864a92

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b0aa13d9e1c6c94392413c2207ccf364574e26b79dd7aed561520e5c0f2bc0e2
MD5 54f18c3a8c44d8bf85ab3aafcbd8484d
BLAKE2b-256 f6aa47aa614aa4f606fa0477364190b561ea1fa6613e526033cccb5a027e10d7

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d071ea2c71572de47e8843435141c6743e29b4e26e0de4c9893648a601ee5e32
MD5 7b757c6f84a1836ccca321f96ff4069a
BLAKE2b-256 93b0971c8543e584164b5604c2206186bd27de9456300ad4cda1814f14f835b1

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0fc61cd4b8be8350073b0be523df6fc602dc8a0c50061d6f765900e27222b27d
MD5 480b57eed20b72cd2d02ee2bcf21cd5b
BLAKE2b-256 0faecdb7e5e825db4d257fa21ba4c796766ef9883d4d7d84dd600f247dc92cd7

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fac09bc0c74f1b32979c3ce60e293fb066c69b68156db28e009cc4aadfb788b1
MD5 3a8b88f517cc307681e83634d646dcea
BLAKE2b-256 be9ff53ae523cb76a26a993a7e928468e358cd6864777ec3896c645dd68237e4

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ed540e0cc0e7ca61f63d75d3ea24fddc113c9e033af714b4bd279067818b751
MD5 4b3d72adf85a392b0371680ab747df19
BLAKE2b-256 92dfe91f7f0dbbe4040f18dff79dfe38a900a344348046295fa08b6c3a89b706

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3ae9da18b52729c9e5378521266e5145b601642d917132414c08b7a0a1bf7f2f
MD5 9f4848be9fd4831b285356fda41edb77
BLAKE2b-256 25a4d260899eadbe0330a7667ede40a6cd69a1aae0290c9dc0c420e3c6e1e940

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 41cf8ddc9da1cc773cc5e874d473c980f5fffc433e29c46201935c24e52a6c27
MD5 784682408b0034b99a7d4c1c8249a6c9
BLAKE2b-256 462b0a58aeea6ca5b021a97b559a9ed445c60bbb774d2590865f7d1850a9e7ea

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 7838b8b467fb1334dd3bf4d5e1baf17c69205cd3b55a5f324b660e83bedd218f
MD5 ee7d7bb33eb7ba9689f31d635bc50461
BLAKE2b-256 54ad31fe843c2229a81e4f4174d4bfaa308f14595b1f754c415730cfc4397c5f

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e399f96c839cff9fe63df47369ef78d990f77ffd252f4ac14a0017a70e25b077
MD5 eaaf6503845a7feb642c37cd043e3098
BLAKE2b-256 083ef96159ac8a29a25d0fb69211939f646e60c8efc91ad3d4597859340e782f

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c5919b8b7cb57259691371b35a756906fee27c0936b04ec4fe2c8c7a1a1b2caf
MD5 02df66453c99af2aa4357056314950f9
BLAKE2b-256 ed113d53644fa8ffb236c914aa11de60f265a1cba7793b1bdf6f8651e951888b

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fb52ab037e8fee5d47ec68ab9606e9b58f484efb8ebdf43c727ec676833ac19
MD5 b3620cf90ad83495d3b3f69547461d3c
BLAKE2b-256 8f50aaf57aa35bee87265b679c78d2fcbf7dec0772a974c93f9a7a2d2885cef2

See more details on using hashes here.

File details

Details for the file emval-0.1.13-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for emval-0.1.13-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d0a248b0c6d29a7a35edd476674be1550d7513fde340b736ba359c6c2a329b30
MD5 b672c34b5027dc99361557cce8b18827
BLAKE2b-256 bb394f4cb54209b344f764ed76905e6dd1e566dc1c5f74931516ffd7c5389fab

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.13 This release

29 files

0.1.12

29 files

0.1.11

29 files

0.1.10

81 files

0.1.9

83 files

0.1.7

83 files

0.1.5

71 files

0.1.4

70 files

0.1.3

124 files

0.1.2

2 files

0.1.1

2 files

Supported by

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