Skip to main content

Smiles-Validator

Test Coverage Python PyPI version License CI Code Style

A Pydantic validator for SMILES chemical notation that validates, sanitizes, and optionally returns either canonical or original input.

Install

pip install smiles-validator

Requires Python ≥ 3.12 · Pydantic v2 · RDKit 2024.9+

Usage

from pydantic import BaseModel
from typing import Annotated
from smiles_validator import SmilesText, SmilesValidator

class Model(BaseModel):
    # Default: Canonical SMILES
    canonical: SmilesText
    # Keep original input
    original: Annotated[str, SmilesValidator(keep_original=True)]

m = Model(
    canonical="C1=CC=CC=C1",
    original="C1=CC=CC=C1"
)

print(m.canonical)  # => "c1ccccc1"
print(m.original)   # => "C1=CC=CC=C1"

Features

  • 🚀 Fast SMILES validation using RDKit
  • 🔄 Canonicalization with optional original input preservation
  • 📦 Pydantic v2 integration
  • 📊 Comprehensive test coverage
  • 🧪 CI/CD with multiple Python versions

API

SmilesValidator Class

SmilesValidator(keep_original: bool = False)

Parameters:

  • keep_original: If True, returns the exact input string after validation. If False (default), returns the canonical SMILES.

SmilesText Type

SmilesText is an alias for Annotated[str, SmilesValidator()] that automatically uses the default validator settings (canonical output).

Development

# Install dependencies
uv sync --locked --all-extras --dev

# Run tests
just test

# Run linting
just check

# Run formatting
just format

License

MIT License · GitHub

Acknowledgements

  • Built with RDKit for chemical structure handling
  • Uses Pydantic v2 for validation integration

Download files

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

Source Distribution

smiles_validator-0.2.2.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

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

smiles_validator-0.2.2-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file smiles_validator-0.2.2.tar.gz.

File metadata

  • Download URL: smiles_validator-0.2.2.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for smiles_validator-0.2.2.tar.gz
Algorithm Hash digest
SHA256 7d68484a19af5df5543637dfea86b84742d3ea06d1e082513bca0efd0effb6da
MD5 35ace6490e8dc58998da8540db1f192f
BLAKE2b-256 404461c318444f82e9d98b615f366c317f6a8f7b954280bdd2e9b9e0af246e9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for smiles_validator-0.2.2.tar.gz:

Publisher: release.yml on scriptogre/smiles-validator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smiles_validator-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for smiles_validator-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0bb114585397ac5293783b5bb8f8bb163d2b7116816c72bd2f31698bfc4db585
MD5 71469ef6edf24826e700d18321942820
BLAKE2b-256 8051bfced89229943d3813829b7de77fce0722c1b72f0e1e6857b1c519bf0982

See more details on using hashes here.

Provenance

The following attestation bundles were made for smiles_validator-0.2.2-py3-none-any.whl:

Publisher: release.yml on scriptogre/smiles-validator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.17

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.9

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

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