Skip to main content

Nextcloud Python Framework

Project description

NcPyApi logo

Nextcloud Python Framework

Analysis & Coverage Docs codecov

NextcloudVersion PythonVersion impl pypi

Python library that provides a robust and well-documented API that allows developers to interact with and extend Nextcloud's functionality.

The key features are:

  • Fast: High performance, and as low-latency as possible.
  • Intuitive: Fast to code, easy to use.
  • Reliable: Minimum number of incompatible changes.
  • Robust: All code is covered with tests as much as possible.
  • Easy: Designed to be easy to use with excellent documentation.
  • Sync + Async: Provides both sync and async APIs.

Capabilities

Capability Nextcloud 27 Nextcloud 28 Nextcloud 29 Nextcloud 30
Calendar
File System & Tags
Nextcloud Talk
Notifications
Shares
Users & Groups
User & Weather status
Other APIs**
Talk Bot API*
Settings UI API* N/A N/A
TaskProcessing Provider API* N/A N/A N/A

*available only for NextcloudApp
**Activity, Notes

Differences between the Nextcloud and NextcloudApp classes

The Nextcloud class functions as a standard Nextcloud client, enabling you to make API requests using a username and password.

On the other hand, the NextcloudApp class is designed for creating applications for Nextcloud.
It uses AppAPI to provide additional functionality allowing applications have their own graphical interface, fulfill requests from different users, and everything else that is necessary to implement full-fledged applications.

Both classes offer most of the same APIs, but NextcloudApp has a broader selection since applications typically require access to more APIs.

Any code written for the Nextcloud class can easily be adapted for use with the NextcloudApp class, as long as it doesn't involve calls that require user password verification.

NextcloudApp avalaible only from Nextcloud 27.1.2 and greater version with installed AppAPI.

Nextcloud skeleton app in Python

from contextlib import asynccontextmanager

from fastapi import FastAPI

from nc_py_api import NextcloudApp
from nc_py_api.ex_app import AppAPIAuthMiddleware, LogLvl, run_app, set_handlers


@asynccontextmanager
async def lifespan(app: FastAPI):
    set_handlers(app, enabled_handler)
    yield


APP = FastAPI(lifespan=lifespan)
APP.add_middleware(AppAPIAuthMiddleware)


def enabled_handler(enabled: bool, nc: NextcloudApp) -> str:
    if enabled:
        nc.log(LogLvl.WARNING, "Hello from nc_py_api.")
    else:
        nc.log(LogLvl.WARNING, "Bye bye from nc_py_api.")
    return ""


if __name__ == "__main__":
    run_app("main:APP", log_level="trace")

Support

You can support us in several ways:

  • ⭐️ Star our work (it really motivates)
  • ❗️ Create an Issue or feature request (bring to us an excellent idea)
  • 💁 Resolve some Issue or create a Pull Request (contribute to this project)
  • 🙏 Write an example of its use or correct a typo in the documentation.

More Information

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

nc_py_api-0.18.0.tar.gz (78.1 kB view details)

Uploaded Source

Built Distribution

nc_py_api-0.18.0-py3-none-any.whl (99.4 kB view details)

Uploaded Python 3

File details

Details for the file nc_py_api-0.18.0.tar.gz.

File metadata

  • Download URL: nc_py_api-0.18.0.tar.gz
  • Upload date:
  • Size: 78.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for nc_py_api-0.18.0.tar.gz
Algorithm Hash digest
SHA256 21bfe0503d9c6171ac0f2c46b5ea61861642d05ef8ed797349539b289d539716
MD5 826403cc1da7ed95e2b659c708de449c
BLAKE2b-256 51f7668ddbcf4764da9b3d6226d726247b010707863293facff88ae2c2504c53

See more details on using hashes here.

File details

Details for the file nc_py_api-0.18.0-py3-none-any.whl.

File metadata

  • Download URL: nc_py_api-0.18.0-py3-none-any.whl
  • Upload date:
  • Size: 99.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for nc_py_api-0.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba5990ceca0e9f94819f72121aaee7797e3c3c971b8fc7ddbb530b2097f05fe1
MD5 254c9e5c873e236ad935768da6b24ac3
BLAKE2b-256 95f9304e68d298b54403e16afe9536880abc3c578bc9508737b52d0125abc460

See more details on using hashes here.

Supported by

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