Metadata-Version: 2.1
Name: nextcloud-async
Version: 0.0.5
Summary: Asynchronous client library for Nextcloud
Author: Aaron Segura
License: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Project-URL: Homepage, https://github.com/aaronsegura/nextcloud-async
Project-URL: Bug Tracker, https://github.com/aaronsegura/nextcloud-async/issues
Keywords: nextcloud,asynchronous,spreed
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Flake8
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE

# nextcloud-async
## Asynchronous Nextcloud Client

This module provides an asyncio-friendly interface to public NextCloud APIs.

### Covered APIs
* File Management API
* User Management API
* Group Management API
* GroupFolders API
* App Management API
* LDAP Configuration API
* Status API
* Share API (except Federated shares)
* Talk/spreed API
* Notifications API
* Login Flow v2 API
* Remote Wipe API
* Maps API

### APIs To Do
* Sharee API
* Reaction API
* User Preferences API
* Federated Shares API
* Cookbook API
* Passwords API
* Notes API
* Deck API
* Calendar CalDAV API
* Tasks CalDAV API
* Contacts CardDAV API

If you know of any APIs missing from this list, please open an issue at
https://github.com/aaronsegura/nextcloud-async/issues with a link to
the API documentation so it can be added.  This project aims to eventually
cover any API provided by NextCloud and commonly used NextCloud apps.

### Example Usage
    import httpx
    import asyncio
    from nextcloud_async import NextCloudAsync

    nca = NextCloudAsync(
        client=httpx.AsyncClient(),
        endpoint='http://localhost:8181',
        user='user',
        password='password')

    async def main():
        users = await nca.get_users()
        tasks = [nca.get_user(user) for user in users]
        results = await asyncio.gather(*tasks)
        for user_info in results:
            print(user_info)

    if __name__ == "__main__":
        asyncio.run(main())

----
This project is not endorsed or recognized in any way by the NextCloud
project.
