Metadata-Version: 2.4
Name: formidable
Version: 0.12
Summary: A small but powerful library for processing web forms
Author-email: Juan-Pablo Scaletti <juanpablo@jpscaletti.com>
License-Expression: MIT
Project-URL: Code, https://github.com/jpsca/formidable
Project-URL: Documentation, https://formidable.scaletti.dev/
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: <4,>=3.12
Description-Content-Type: text/markdown
Requires-Dist: idna>=3.10
Requires-Dist: markupsafe>=3.0.3
Provides-Extra: email
Requires-Dist: email-validator~=2.3.0; extra == "email"

<div align="center">
  <h1><img alt="Formidable" src="https://raw.githubusercontent.com/jpsca/formidable/main/docs/formidable.png"></h1>
</div>
<p align="center">
  <img alt="coverage: 100%" src="https://raw.githubusercontent.com/jpsca/formidable/main/docs/coverage.svg">
  <img alt="license: MIT" src="https://raw.githubusercontent.com/jpsca/formidable/main/docs/license.svg">
</p>

### A small but powerful library for processing web forms


## Features

* Dynamic nested forms
* Customizable/translatable messages
* Custom filters and validators
* Can read, update, and create objects of any ORM
* Framework independent


## Vision

For Internet standards, HTML forms are an ancient technology. At some point we even forgot it existed and, for about 10 years, everyone was super excited about sending JSON over everything, all of the time.

But now we are realizing *"Oh, do you know what? HTML is actually really good! Like, you can send it directly to a browser and the browser can send form data back, without any translation step... we should all do this"*.

However, in the world of Python web frameworks there is a problem: web forms had always been somewhat awkward. In fact, they were a big reason to use JavaScript in the first place. The existing libraries lack support for features like nested forms and/or are embedded in a particular framework.

That's why I built **Formidable**, a library that, although small, can handle all the advanced scenarios like subforms, dynamic nested forms, custom validators, translatable messages, integration with any ORM and template system, and more. I hope you enjoy it.


## Contributing Back

Find a bug? Head over to our issue tracker and we'll do our best to help. We love pull requests, too!
