Metadata-Version: 2.1
Name: fastlifeweb
Version: 0.28.6
Summary: High-level web framework
Author-Email: Guillaume Gauvrit <guillaume@gauvr.it>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Typing :: Typed
Project-URL: Homepage, https://mardiros.github.io/fastlife
Project-URL: Documentation, https://mardiros.github.io/fastlife
Project-URL: Repository, https://github.com/mardiros/fastlife.git
Project-URL: Issues, https://github.com/mardiros/fastlife/issues
Project-URL: Changelog, https://mardiros.github.io/fastlife/user/changelog.html
Requires-Python: >=3.11
Requires-Dist: fastapi[standard]<0.116.0,>=0.115.4
Requires-Dist: itsdangerous<3,>=2.1.2
Requires-Dist: markupsafe<3,>=2.1.3
Requires-Dist: multidict<7,>=6.0.5
Requires-Dist: pydantic<3,>=2.5.3
Requires-Dist: pydantic-settings<3,>=2.0.3
Requires-Dist: python-multipart<1,>=0.0.13
Requires-Dist: venusian<4,>=3.0.0
Provides-Extra: jinjax
Requires-Dist: jinjax<0.49,>=0.48; extra == "jinjax"
Provides-Extra: xcomponent
Requires-Dist: xcomponent<1,>=0.8.4; extra == "xcomponent"
Provides-Extra: testing
Requires-Dist: beautifulsoup4; extra == "testing"
Provides-Extra: docs
Requires-Dist: furo>=2024.5.6; extra == "docs"
Requires-Dist: heroicons<3,>=2.7.0; extra == "docs"
Requires-Dist: jinjax<0.49,>=0.48; extra == "docs"
Requires-Dist: linkify-it-py<3,>=2.0.3; extra == "docs"
Requires-Dist: myst-parser<5,>=4.0.0; extra == "docs"
Requires-Dist: sphinx<8,>=7.0.1; extra == "docs"
Requires-Dist: sphinx-autodoc2<1,>=0.5.0; extra == "docs"
Requires-Dist: xcomponent<1,>=0.8.4; extra == "docs"
Description-Content-Type: text/markdown

# Fastlife

[![Documentation](https://github.com/mardiros/fastlife/actions/workflows/publish-doc.yml/badge.svg)](https://mardiros.github.io/fastlife/)
[![Continuous Integration](https://github.com/mardiros/fastlife/actions/workflows/tests.yml/badge.svg)](https://github.com/mardiros/fastlife/actions/workflows/tests.yml)
[![Coverage Report](https://codecov.io/gh/mardiros/fastlife/graph/badge.svg?token=DTpi73d7mf)](https://codecov.io/gh/mardiros/fastlife)
[![Maintainability](https://api.codeclimate.com/v1/badges/94d107797b15b5e8843e/maintainability)](https://codeclimate.com/github/mardiros/fastlife/maintainability)

> ⚠️ **Under Heavy Development**
> Please note that this project is still in active development. Features and APIs may change frequently.
> Even the name is not definitive.

An opinionated Python web framework (based on {term}`FastAPI`).

## Purpose

Fastlife helps at building Web Application with session, security, html test client,
and html form generated from pydantic schema using customizable widget.

Templates are made using {term}`JinjaX` and an extensible [set of
component](https://mardiros.github.io/fastlife/components/index.html) is available
in order to build pages.

Those components are currently stylized by {term}`Tailwind CSS`,
using [pytailwindcss](https://github.com/timonweb/pytailwindcss).

Moreover, you can also write API, in an opinionated way to enforce documentation
consistency.


## First class configuration.

Fastlife is adding a "Configurator", like {term}`Pyramid` to get a better scallable codebase.

The configurator in fastlife organizes configuration settings hierarchically,
enabling easy management and overriding at different levels.
This promotes modularity and clarity in application configuration, making it simpler
to maintain and scale your project.


## Tests

Fastlife comes with [a test client](https://mardiros.github.io/fastlife/develop/fastlife/fastlife.testing.testclient.html) that can interact with html inside unit tests.


## Try it

The package is available on pypi with the name fastlifeweb.

```bash
pip install fastlifeweb
```
