Metadata-Version: 2.1
Name: picle
Version: 0.8.1
Summary: Python Interactive Command Line Shells
Home-page: https://github.com/dmulyalin/picle
License: MIT
Author: Denis Mulyalin
Author-email: d.mulyalin@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Provides-Extra: full
Requires-Dist: pydantic (>=2.0.1,<=3.0.0)
Requires-Dist: pyreadline3 (==3.4.1) ; sys_platform == "win32"
Requires-Dist: rich (>=13.0.0,<=14.0.0) ; extra == "full"
Project-URL: Documentation, https://dmulyalin.github.io/picle/
Project-URL: Repository, https://github.com/dmulyalin/picle
Description-Content-Type: text/markdown

# PICLE - Python Interactive Command Line Shells

PICLE is a module to construct interactive command line shell
applications using Pydantic models.

Built on top of Python's standard library
[CMD module](https://docs.python.org/3/library/cmd.html) and
uses [Pydantic](https://docs.pydantic.dev/) models to construct
shell environments.

Welcome to [documentation](https://dmulyalin.github.io/picle/) to
explore it further.

# Comparison With Other Projects

[python-nubia](https://github.com/facebookarchive/python-nubia) by
Facebook - unfortunately this project no longer maintained, it also
provides no integration with Pydantic.

Why not [python-fire](https://github.com/google/python-fire),
[click](https://github.com/pallets/click) or
[argparse](https://docs.python.org/3/library/argparse.html) -
all these libraries are great for building command line tools,
but they provide no support for interactive shell or input
comprehensive validation supported by Pydantic.

Why not
[prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit)
or [textual](https://github.com/Textualize/textual) - those are extremely
good libraries for building Terminal User Interface (TUI) applications but
they provide no support for interactive shell and Pydantic validation of
input.

