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.2.tar.gz (24.2 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.2-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for flet_asp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0049edb9c30118a66447db623cfa6e0936049ea0f7d94aaa72e50f3bc9539a31
MD5 7ba93dc2ca5ccdc7ab2efc2ae06201d0
BLAKE2b-256 17dbecbac7b5a219850c544b0ce9e70d9d30440ae700c65b3308d713d5b9b0c4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for flet_asp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3511da2ef8d7bd896d160d0b37b92beb0474e7d4eb3a2627d9f410179a26bc1e
MD5 93e074e3273dfcdfe5665a2c51d3e7fa
BLAKE2b-256 53e2a406fbacd93346f8b7f43eb8bace8d125aa922e40e3dc1a2a86ed1fa05ee

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