Skip to content

Make fastapi dependency optional [QUESTION FOR ALL] #330

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

Open
dariogoetz opened this issue Jan 29, 2025 · 1 comment
Open

Make fastapi dependency optional [QUESTION FOR ALL] #330

dariogoetz opened this issue Jan 29, 2025 · 1 comment
Labels
enhancement New feature or request

Comments

@dariogoetz
Copy link

dariogoetz commented Jan 29, 2025

Describe why it is important and where it will be useful

The fastapi dependency is only necessary when implementing an "app", i.e. using NextCloudApp or AsyncNextCloudApp. If one is only interested in using the nextcloud API, i.e. NextCloud and AsyncNextCloud, the fastapi dependency is simply "dead weight" (in my specific case, it generated a version conflict because I need to use an older version of fastapi for some reason).

Describe your proposed solution

Is it possible to make fastapi an optional dependency for the app option? This would, however, probably entail moving the NextCloudApp and AsyncNextCloudApp into the ex_app package (which is a breaking change...?).

It would probably also mean that the whole ex_app package could be imported "optionally" (guarded with a try...except block similarly to the uvicorn import in the ex_app.uvicorn_fastapi module).

Describe alternatives you've considered, if relevant

No response

Additional context

No response

@bigcat88 bigcat88 added the enhancement New feature or request label Apr 28, 2025
@bigcat88
Copy link
Member

This should be implemented in nc_py_api version 1.0.0 which will be full rework of current version with breaking changes.

Idea is to:

  1. Remove all sync call to not duplicate code, and provide only async variants of functions.
  2. Split library in two parts: nc_py_api that will support all basic Nextcloud functionality and nc_py_app_api that will depend on nc_py_api and provide only functionality related to AppAPI.
  3. Raise minimum version of Python to 3.12 to use all last features.

This will allow to use nc_py_api some openapi specs that Nextcloud already provides.

Current generators for Python are very bad, but we can leverage the use of AI for that, it will work nice.

Also, all code should be written in a correct way so it should be easily supported by latest LLMs like Gemini 2.5 Pro+ and o3+.


Anyone interested in this? I can make initial work, but we need contributors who will work on this after and will be interested in this project(s).

@bigcat88 bigcat88 changed the title Make fastapi dependency optional Make fastapi dependency optional [QUESTION FOR ALL] Apr 28, 2025
@bigcat88 bigcat88 pinned this issue Apr 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants