Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-structure Flet Python packages (wheels) for optimized installation on various platforms #3163

Closed
1 of 2 tasks
FeodorFitsner opened this issue May 2, 2024 · 0 comments · Fixed by #4122
Closed
1 of 2 tasks
Assignees
Labels
enhancement Improvement/Optimization

Comments

@FeodorFitsner
Copy link
Contributor

FeodorFitsner commented May 2, 2024

To-Do:

  • "desktop light" for Linux users with excluded Video, Audio (closes libmpv errors on Linux #2637).
  • Make an alias for flet.fastapi to flet_web.fastapi.

More info:

flet is the main and minimal package. Could be installed on any platform.

New packages:

  • flet containing:
    • ...
  • flet_core containing:
    • ...
  • flet-web containing:
    • web directory with a compiled Flet web app.
    • flet_web.fastapi module
    • flet_web.auth module
    • flet_web.utils module
  • flet-desktop containing:
    • bin - the full Flet client executable/bundle with all optional packages (Video, Audio, etc.). Platform dependent.
    • flet_desktop module with client download/unpack code.
  • flet-desktop-light containing:
    • bin - Flet client executable/bundle without optional packages (Video, Audio, etc.). Provided for Linux only.
  • flet-cli containing:
    • flet_cli module

Optional (extra) packages which are dependencies with constraints for flet package:

  • flet-web - platform-independent (py3-none-any) package that contains "web" directory with a compiled Flet web app. Condition: platform_system == 'Windows' or platform_system == 'Linux' or platform_system == 'Darwin, 'embedded' not in platform_version'.
  • flet-desktop - platform-specific package with Flet client executable/bundle without optional packages (Video, Audio, etc.). Condition: platform_system == 'Windows' or platform_system == 'Linux' or platform_system == 'Darwin, 'embedded' not in platform_version'. Additionally, we could skip installation of flet-desktop in Docker environment.
  • flet-cli - platform-independent (py3-none-any) package that contains Flet CLI. Conditions similar to desktop.
  • flet-desktop-full - could be optionally installed on Linux if MPV, Audio dependencies are met.

Examples: https://github.com/encode/uvicorn/blob/master/pyproject.toml

@FeodorFitsner FeodorFitsner added the enhancement Improvement/Optimization label May 2, 2024
@FeodorFitsner FeodorFitsner self-assigned this May 2, 2024
@FeodorFitsner FeodorFitsner moved this from 🆕 New to 🏗 In progress in Flet Development May 24, 2024
@FeodorFitsner FeodorFitsner changed the title Add features to Flet wheels and add dependencies constraints to -py3-none-any.whl Re-structure Flet Python packages (wheels) for optimized installation on various platforms May 24, 2024
@FeodorFitsner FeodorFitsner linked a pull request Oct 8, 2024 that will close this issue
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Flet Development Oct 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvement/Optimization
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant