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.0.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.0-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flet_asp-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 d6265b11d97a58d1406783707686751527aac6b25baacd7056b24ef2e877d4c1
MD5 0719c527b05f80fef1e6778e4e2a8d7e
BLAKE2b-256 da33b7b72868fb441ee5a26eba25a8c76dbfdeb1e11e515909c8f52e27f5e951

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flet_asp-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47fb60a16bcc35618698cb716497b30846ea1ead1a9f7b1d811aa470b1fdc875
MD5 69075cc711756a7f16933d2ea56b3b0a
BLAKE2b-256 e2cf091f13ca7ab9c623b89164b88ee1ceeabae441dfd12ffcfd264ea00d7cb9

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