ai4flwr


Nameai4flwr JSON
Version 0.2.0 PyPI version JSON
download
home_page
SummaryAI4OS extensions to the Python Flower federated learning framework (https://flower.dev)
upload_time2024-01-10 08:52:47
maintainer
docs_urlNone
authorAlvaro Lopez Garcia
requires_python>=3.10,<4.0
licenseGPL-3
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <img src="https://ai4eosc.eu/wp-content/uploads/sites/10/2022/09/horizontal-transparent.png" alt="logo" width="500"/>
</div>


# ai4-flwr

[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
[![GitHub license](https://img.shields.io/github/license/ai4os/ai4-flwr.svg)](https://github.com/ai4os/ai4-flwr/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/ai4os/ai4-flwr.svg)](https://github.com/ai4os/ai4-flwr/releases)
[![PyPI](https://img.shields.io/pypi/v/ai4flwr.svg)](https://pypi.python.org/pypi/ai4flwr)
[![Python versions](https://img.shields.io/pypi/pyversions/ai4flwr.svg)](https://pypi.python.org/pypi/ai4flwr)


This repository contains the [AI4OS](https://github.com/ai4os) extensions for
the [Flower](https://github.com/adap/flower) framework.

## Authentication

Authentication for Flower is implemented directly via GRPC: interceptors
(server side) and authentication medatata plugins (client side).

In order to use it, the server must be initialized with any object of the
`ai4flwr.auth` package as interceptor. See the examples below for more
details.

### Bearer token authentication

In your server, start it as follows:

    import ai4flwr.auth.bearer

    fl.server.start_server(
        server_address="0.0.0.0:5000",
        certificates=(...),
        interceptors=[ai4flwr.auth.bearer.BearerTokenInterceptor()]
    )

In your client, start it as follows:

    import ai4flwr.auth.bearer

    token = "Your token as configured in the server"

    fl.client.start_numpy_client(
        server_address=f"localhost:5000",
        client=...,
        root_certificates=...
        call_credentials=grpc.metadata_call_credentials(
            ai4flwr.auth.bearer.BearerTokenAuthPlugin(token)
        ),
    )

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "ai4flwr",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Alvaro Lopez Garcia",
    "author_email": "aloga@ifca.unican.es",
    "download_url": "https://files.pythonhosted.org/packages/d3/fb/5cd9281d706eb2f25e28f3849be8699fb16b359fcc19a387bd60ccada2b4/ai4flwr-0.2.0.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <img src=\"https://ai4eosc.eu/wp-content/uploads/sites/10/2022/09/horizontal-transparent.png\" alt=\"logo\" width=\"500\"/>\n</div>\n\n\n# ai4-flwr\n\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)\n[![GitHub license](https://img.shields.io/github/license/ai4os/ai4-flwr.svg)](https://github.com/ai4os/ai4-flwr/blob/master/LICENSE)\n[![GitHub release](https://img.shields.io/github/release/ai4os/ai4-flwr.svg)](https://github.com/ai4os/ai4-flwr/releases)\n[![PyPI](https://img.shields.io/pypi/v/ai4flwr.svg)](https://pypi.python.org/pypi/ai4flwr)\n[![Python versions](https://img.shields.io/pypi/pyversions/ai4flwr.svg)](https://pypi.python.org/pypi/ai4flwr)\n\n\nThis repository contains the [AI4OS](https://github.com/ai4os) extensions for\nthe [Flower](https://github.com/adap/flower) framework.\n\n## Authentication\n\nAuthentication for Flower is implemented directly via GRPC: interceptors\n(server side) and authentication medatata plugins (client side).\n\nIn order to use it, the server must be initialized with any object of the\n`ai4flwr.auth` package as interceptor. See the examples below for more\ndetails.\n\n### Bearer token authentication\n\nIn your server, start it as follows:\n\n    import ai4flwr.auth.bearer\n\n    fl.server.start_server(\n        server_address=\"0.0.0.0:5000\",\n        certificates=(...),\n        interceptors=[ai4flwr.auth.bearer.BearerTokenInterceptor()]\n    )\n\nIn your client, start it as follows:\n\n    import ai4flwr.auth.bearer\n\n    token = \"Your token as configured in the server\"\n\n    fl.client.start_numpy_client(\n        server_address=f\"localhost:5000\",\n        client=...,\n        root_certificates=...\n        call_credentials=grpc.metadata_call_credentials(\n            ai4flwr.auth.bearer.BearerTokenAuthPlugin(token)\n        ),\n    )\n",
    "bugtrack_url": null,
    "license": "GPL-3",
    "summary": "AI4OS extensions to the Python Flower federated learning framework (https://flower.dev)",
    "version": "0.2.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "518cf080240bc170f13d2e396f3b20c379b2343656d4a43244f926d77c180273",
                "md5": "00c563842c8c1226fdbcdfbf49d7dbee",
                "sha256": "b78dfac0bee8ade2aaf7ed9547fa7027a9ecdd6755da05e48cbccbbf1463730d"
            },
            "downloads": -1,
            "filename": "ai4flwr-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "00c563842c8c1226fdbcdfbf49d7dbee",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 16190,
            "upload_time": "2024-01-10T08:52:45",
            "upload_time_iso_8601": "2024-01-10T08:52:45.539303Z",
            "url": "https://files.pythonhosted.org/packages/51/8c/f080240bc170f13d2e396f3b20c379b2343656d4a43244f926d77c180273/ai4flwr-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3fb5cd9281d706eb2f25e28f3849be8699fb16b359fcc19a387bd60ccada2b4",
                "md5": "db2ad576a089340f0ff0cf00354f353e",
                "sha256": "cc585d9f488a6991ef3717cbd69b308cd48387c68e1a3c810a5a43606ddbb438"
            },
            "downloads": -1,
            "filename": "ai4flwr-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "db2ad576a089340f0ff0cf00354f353e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 15423,
            "upload_time": "2024-01-10T08:52:47",
            "upload_time_iso_8601": "2024-01-10T08:52:47.200349Z",
            "url": "https://files.pythonhosted.org/packages/d3/fb/5cd9281d706eb2f25e28f3849be8699fb16b359fcc19a387bd60ccada2b4/ai4flwr-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-10 08:52:47",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ai4flwr"
}
        
Elapsed time: 0.19576s