lptp


Namelptp JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://github.com/Zoom-Developer/LPTP
SummaryДанный протокол является протоколом RPC вида и служит для вызова процедур на удалённом сервере. Проект является исключительно учебным и не рекомендуется для реального использования.
upload_time2024-05-19 19:26:46
maintainerNone
docs_urlNone
authorzoomdev
requires_python>=3.10
licenseNone
keywords rpc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Lite Procedure Transfer Protocol (LPTP)
*Данный протокол является протоколом RPC вида и служит для вызова процедур на удалённом сервере. Проект является исключительно учебным и не рекомендуется для реального использования.*

## Установка

`pip install lptp`

## Пример использования

### Клиент
```python
import asyncio
from lptp.client import LPTPClient
from lptp.types import AuthType
from lptp_procedures import ProcedureManager

async def main():
    async with ProcedureManager(LPTPClient(
        "127.0.0.1",
        auth_type=AuthType.Key,
        key="someKey"
    )) as proc:

        print(await proc.reverse_text("Привет Пацаны"))

asyncio.run(main())
```

### Сервер
```python
import logging
from lptp.server import LPTPServer, Manager
from lptp.types import AuthType

logging.basicConfig(level=logging.DEBUG)

server = LPTPServer(
    "127.0.0.1",
    auth_type = AuthType.Key,
    key = "someKey"
)

manager = Manager()

@manager.procedure
async def reverse_text(text: str) -> str:
    return text[::-1]

@manager.procedure
async def sum_numbers(a: int, b: int) -> int:
    return a + b

@manager.sub_procedure(sum_numbers, 1)
async def sum_numbers_list(nums: list) -> int:
    return sum(nums)

server.add_manager(manager)
server.generate_proc_file()
server.run_forever()
```

## Важно
*При запуске серверсайда необходимо вызвать метод generate_proc_file(), который создаст в текущей директории файл lptp_procedures.py с описанием всех процедур сервера. Работа клиентской стороны невозможна без этого файла.*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Zoom-Developer/LPTP",
    "name": "lptp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "rpc",
    "author": "zoomdev",
    "author_email": "zoomdeveloper@yandex.ru",
    "download_url": "https://files.pythonhosted.org/packages/40/aa/1a007c26a8e7438455e7a06fe275fc9bafd761491b9b15e72b4c81a33fa6/lptp-1.0.2.tar.gz",
    "platform": null,
    "description": "# Lite Procedure Transfer Protocol (LPTP)\r\n*\u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c RPC \u0432\u0438\u0434\u0430 \u0438 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043d\u0430 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u041f\u0440\u043e\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0447\u0435\u0431\u043d\u044b\u043c \u0438 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.*\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n`pip install lptp`\r\n\r\n## \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\r\n\r\n### \u041a\u043b\u0438\u0435\u043d\u0442\r\n```python\r\nimport asyncio\r\nfrom lptp.client import LPTPClient\r\nfrom lptp.types import AuthType\r\nfrom lptp_procedures import ProcedureManager\r\n\r\nasync def main():\r\n    async with ProcedureManager(LPTPClient(\r\n        \"127.0.0.1\",\r\n        auth_type=AuthType.Key,\r\n        key=\"someKey\"\r\n    )) as proc:\r\n\r\n        print(await proc.reverse_text(\"\u041f\u0440\u0438\u0432\u0435\u0442 \u041f\u0430\u0446\u0430\u043d\u044b\"))\r\n\r\nasyncio.run(main())\r\n```\r\n\r\n### \u0421\u0435\u0440\u0432\u0435\u0440\r\n```python\r\nimport logging\r\nfrom lptp.server import LPTPServer, Manager\r\nfrom lptp.types import AuthType\r\n\r\nlogging.basicConfig(level=logging.DEBUG)\r\n\r\nserver = LPTPServer(\r\n    \"127.0.0.1\",\r\n    auth_type = AuthType.Key,\r\n    key = \"someKey\"\r\n)\r\n\r\nmanager = Manager()\r\n\r\n@manager.procedure\r\nasync def reverse_text(text: str) -> str:\r\n    return text[::-1]\r\n\r\n@manager.procedure\r\nasync def sum_numbers(a: int, b: int) -> int:\r\n    return a + b\r\n\r\n@manager.sub_procedure(sum_numbers, 1)\r\nasync def sum_numbers_list(nums: list) -> int:\r\n    return sum(nums)\r\n\r\nserver.add_manager(manager)\r\nserver.generate_proc_file()\r\nserver.run_forever()\r\n```\r\n\r\n## \u0412\u0430\u0436\u043d\u043e\r\n*\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0441\u0430\u0439\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 generate_proc_file(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0444\u0430\u0439\u043b lptp_procedures.py \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0420\u0430\u0431\u043e\u0442\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.*\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c RPC \u0432\u0438\u0434\u0430 \u0438 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043d\u0430 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u041f\u0440\u043e\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0447\u0435\u0431\u043d\u044b\u043c \u0438 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.",
    "version": "1.0.2",
    "project_urls": {
        "Homepage": "https://github.com/Zoom-Developer/LPTP"
    },
    "split_keywords": [
        "rpc"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6408bc2ad93bb25dd168ac159b3eb178745cbe01d8364d98adb9ce7dddf91fef",
                "md5": "ac769f48c853873e19ab6b282288be2c",
                "sha256": "cd0c9cbb447b71c467517ec791bb5dd1e4296801c857a0da2489457e5e75bb96"
            },
            "downloads": -1,
            "filename": "lptp-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ac769f48c853873e19ab6b282288be2c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 20309,
            "upload_time": "2024-05-19T19:26:44",
            "upload_time_iso_8601": "2024-05-19T19:26:44.529132Z",
            "url": "https://files.pythonhosted.org/packages/64/08/bc2ad93bb25dd168ac159b3eb178745cbe01d8364d98adb9ce7dddf91fef/lptp-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "40aa1a007c26a8e7438455e7a06fe275fc9bafd761491b9b15e72b4c81a33fa6",
                "md5": "b847e42eb5348cc570d33d6d48676ccf",
                "sha256": "ef234348bd6a3c13eac556cbd1b98b73e76302a3f2a6e80be38f3c0c3ff1bac7"
            },
            "downloads": -1,
            "filename": "lptp-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "b847e42eb5348cc570d33d6d48676ccf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 13592,
            "upload_time": "2024-05-19T19:26:46",
            "upload_time_iso_8601": "2024-05-19T19:26:46.175592Z",
            "url": "https://files.pythonhosted.org/packages/40/aa/1a007c26a8e7438455e7a06fe275fc9bafd761491b9b15e72b4c81a33fa6/lptp-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-19 19:26:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Zoom-Developer",
    "github_project": "LPTP",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "lptp"
}
        
Elapsed time: 0.34140s