Skip to main content

Flet-ASP – The Flet Atomic State Pattern is a reactive state management library for Flet.

Project description

flet-asp

Flet ASP - Flet Atomic State Pattern


📖 Overview

Flet ASP (Flet Atomic State Pattern) is a reactive state management library for Flet, bringing atom-based architecture and separation of concerns into Python apps — inspired by Flutter's Riverpod and ASP.

It provides predictable, testable, and declarative state through:

  • Atom – single reactive unit of state
  • Selector – derived/computed state
  • Action – handles async workflows like login, fetch, etc.

📦 Installation

Install using your package manager of choice:

Pip

pip install flet-asp

Poetry

poetry add flet-asp

UV

uv add flet-asp

📦 Features

✅ Reactive atoms (with controlled mutation)
✅ Selector (sync & async derived values)
✅ Async-safe Actions
✅ One-way and two-way binding (form inputs)
✅ Lightweight and framework-agnostic
✅ Built for Flet


🧪 Example – Basic Counter

import flet as ft
import flet-asp as fa


def main(page: ft.Page):
    state = fa.get_state_manager(page)
    state.atom("count", 0)

    count_ref = ft.Ref[ft.Text]()

    def increment(e):
        state.set("count", state.get("count") + 1)

    page.add(
        ft.Text(ref=count_ref),
        ft.ElevatedButton("Increment", on_click=increment)
    )

    state.bind("count", count_ref)


if __name__ == "__main__":
    ft.app(target=main)

📁 Examples Included

Explore the examples/ folder for full apps:


🧩 Design System Ready

atomic_design

Flet-ASP also allows you to create applications following the Atomic Design System, just like Flutter.

Atomic Layer How Flet-ASP Helps
Atoms Simple reactive values (e.g., atom("email"), atom("count"), atom("message"), atom("loading")
Selectors Derived state (e.g., @selector("full_name"), @selector("total_price") or Selector(...))
Actions Encapsulate side effects (API, auth)
Bindings bind(), bind_two_way() for full UI ↔ state reactivity
Molecules/Organisms Combine logic in components
Templates Reuse UIs across screens

Learn more:


🌐 Community

Join the community to contribute or get help:

  1. Discord
  2. Report an issue

⭐ Support

If you like this project, please give it a GitHub star and stay tuned for future updates!

🤝🏽 Contributing

Contributions and feedback are welcome!

🔧 How to contribute:

  1. Fork the repository.
  2. Create a feature branch.
  3. Submit a pull request with a detailed explanation of your changes.

💬 How to give feedback:

We value your opinion! Feel free to share suggestions, ideas, or constructive criticism to help improve the project.

  1. Open an issue.
  2. Describe the problem or suggestion clearly
  3. Optionally propose a solution

🕓 Waiting for help?

Be patient — or reach out to the community on Discord for quicker responses.


Commit your work to the LORD, and your plans will succeed. Proverbs 16: 3

Project details


Download files

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

Source Distribution

flet_asp-0.1.1.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

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

flet_asp-0.1.1-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file flet_asp-0.1.1.tar.gz.

File metadata

  • Download URL: flet_asp-0.1.1.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.1

File hashes

Hashes for flet_asp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a453a38013327d80eb367eae9c7f10b2e27c6f3ccb98f26e416ba0089c47a3d5
MD5 f3fcf103485dcb2946e2174d56d2dd2b
BLAKE2b-256 c99ea5885257fadffb55c92fb83759239a71f5816435e13323d787fdd87ae93e

See more details on using hashes here.

File details

Details for the file flet_asp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: flet_asp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.1

File hashes

Hashes for flet_asp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 600bb9da0a9994edb7c85afe45a89fcc8507db3d662f758d1fe469e0d4d5a874
MD5 a2c10931ec8a56ba944016e45178fc99
BLAKE2b-256 028a7eabaf1cb29250c48978e10af5f13f8377bec05b10cc334f2c6aabde0314

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page