Metadata-Version: 2.2
Name: jarpcdantic_clients
Version: 1.0.3
Summary: Transports for JARPCdantic
Home-page: https://github.com/whiteapfel/jarpcdantic_clients/
Download-URL: https://pypi.org/project/jarpcdantic_clients/
Maintainer: WhiteApfel
Maintainer-email: white@pfel.ru
License: Mozilla Public License 2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3.12
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Topic :: Utilities
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: cabbagok
Provides-Extra: aiohttp
Requires-Dist: aiohttp~=3.9.5; extra == "aiohttp"
Provides-Extra: requests
Requires-Dist: requests==2.32.3; extra == "requests"
Provides-Extra: all
Requires-Dist: jarpcdantic~=0.1.15; extra == "all"
Requires-Dist: aioamqp~=0.15.0; extra == "all"
Requires-Dist: aiohttp~=3.9.5; extra == "all"
Requires-Dist: requests==2.32.3; extra == "all"
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: download-url
Dynamic: home-page
Dynamic: license
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: provides-extra
Dynamic: requires-python
Dynamic: summary

# JARPCdantic clients

JARPCdantic client's factories with predefined transports for libraries: cabbagok, aiohttp, requests.


## Installation
```sh
# with cabbagok dependency
pip install jarpcdatic_clients[cabbagok]
# with aiohttp
pip install jarpcdatic_clients[aiohttp]
# with requests
pip install jarpcdatic_clients[requests]
# with all dependencies
pip install jarpcdatic_clients[all]
```

## Usage

1) Choose desired transport and install required packages (this library's installation doesn't include transport-dependent packages);
2) Use factory to create JARPCdantic client or use transport separately:

```python
from jarpcdantic_clients import create_cabbage_client

amqp_rpc = ...
client = create_cabbage_client(amqp_rpc=amqp_rpc, exchange='exchange_name', default_ttl=30.0)
result = client(method='method_name', params=dict(param1=1))
result = client.method_name(param1=1)
```

```python
from jarpc import JarpcClient
from jarpcdantic_clients import RequestsTransport

transport = RequestsTransport(url='http://example.com/jarpc')
client = JarpcClient(transport=transport)
result = client(method='method_name', params=dict(param1=1))
result = client.method_name(param1=1)
transport.close_session()
```
