omnitype

Crates.ioomnitype
lib.rsomnitype
version0.1.2-beta.1
created_at2025-08-29 11:37:52.952146+00
updated_at2025-11-05 09:41:50.253873+00
descriptionA hybrid type checker for Python and other dynamic languages
homepage
repositoryhttps://github.com/bniladridas/omnitype
max_upload_size
id1815744
size200,918
Niladri Das (bniladridas)

documentation

README

Omnitype

CI Release License Rust

Experimental type-checker for Python and dynamic languages.

Features

  • Check: Parse Python files and report diagnostics (e.g., missing annotations).
  • Fix: Add missing : Any and -> Any annotations automatically.
  • Trace: Runtime type tracing for function calls.
  • TUI: Terminal UI for file analysis and error navigation.

Usage

# Check files
cargo run -- check <path>

# Fix annotations
cargo run -- fix <path> --in-place

# Launch TUI
cargo run

# Run tests
cargo test

Development

cargo check
cargo clippy -- -D warnings
cargo fmt

Conventional Commits

This project uses conventional commit standards to ensure consistent and meaningful commit messages.

Setup

To enable the commit message hook that enforces conventional commits:

cp scripts/commit-msg .git/hooks/commit-msg
chmod +x .git/hooks/commit-msg

The hook checks that commit messages:

  • Start with a type like feat:, fix:, docs:, style:, refactor:, test:, chore:, perf:, ci:, build:, revert:
  • Are lowercase
  • Have a first line ≤60 characters

History Cleanup

To rewrite existing commit messages in the git history to conform to the standards (lowercase and truncated to 60 chars):

./scripts/rewrite_msg.sh

After running, force-push to update the remote repository:

git push --force-with-lease

The git history has been rewritten to follow these standards.

— @omnitype by harper

Commit count: 76

cargo fmt