semvec/pypi-packages huggingface dataset:
regula.documentreader.webclient 7.6.286rc0
Regula's Document Reader python client
Requires Python: >=3.8
Keywords: document-reader-client, document reader, document recognition, regulaforensics, regula

# Regula Document Reader web API Python 3.8+ client

[![pypi](https://img.shields.io/pypi/v/regula.documentreader.webclient?style=flat-square)](https://support.regulaforensics.com/hc/en-us/articles/115000916306-Documentation)
[![OpenAPI](https://img.shields.io/badge/OpenAPI-defs-8c0a56?style=flat-square)](https://github.com/regulaforensics/DocumentReader-web-openapi)
[![documentation](https://img.shields.io/badge/docs-en-f6858d?style=flat-square)](https://support.regulaforensics.com/hc/en-us/articles/115000916306-Documentation)
[![live](https://img.shields.io/badge/live-demo-0a8c42?style=flat-square)](https://api.regulaforensics.com/)

Documents recognition as easy as reading two bytes.

If you have any problems with or questions about this client, please contact us
through a [GitHub issue](https://github.com/regulaforensics/DocumentReader-web-python-client/issues).
You are invited to contribute [new features, fixes, or updates](https://github.com/regulaforensics/DocumentReader-web-python-client/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22), large or small;
We are always thrilled to receive pull requests, and do our best to process them as fast as we can.
See [dev guide](./dev.md)

## Install package
`regula.documentreader.webclient` is on the Python Package Index (PyPI):

```bash
pip install regula.documentreader.webclient
```

Or using `pipenv`
```bash
pipenv install regula.documentreader.webclient
```

## Example
Performing request:
```python
from regula.documentreader.webclient import *

with open("australia_passport.jpg", "rb") as f:
    input_image = f.read()

with DocumentReaderApi(host='http://localhost:8080') as api:
    params = ProcessParams(
        scenario=Scenario.FULL_PROCESS,
        result_type_output=[Result.DOCUMENT_IMAGE, Result.STATUS, Result.TEXT, Result.IMAGES]
    )
    request = RecognitionRequest(process_params=params, images=[input_image])
    response = api.process(request)
```

Parsing results:
```python
# status examples
response_status = response.status
doc_overall_status = "valid" if response_status.overall_status == CheckResult.OK else "not valid"

# text fields example
doc_number_field = response.text.get_field(TextFieldType.DOCUMENT_NUMBER)
doc_number_mrz = doc_number_field.get_value()
doc_number_visual = doc_number_field.get_value(Source.VISUAL)
doc_number_visual_validity = doc_number_field.source_validity(Source.VISUAL)
doc_number_mrz_validity = doc_number_field.source_validity(Source.MRZ)
doc_number_mrz_visual_matching = doc_number_field.cross_source_comparison(Source.MRZ, Source.VISUAL)

# images fields example
normalized_input_image = response.images.document_image()
portrait_field = response.images.get_field(GraphicFieldType.PORTRAIT)
portrait_from_visual = portrait_field.get_value(Source.VISUAL)
portrait_from_rfid = portrait_field.get_value(Source.RFID, original=True)
```
You can find more detailed guide and run this sample in [example](./example) folder.
Kickcom.py 0.0.1
Async library for Kick.com API and webhooks
Requires Python: >=3.8

# kickcom.py

Async library for Kick.com API and webhooks

Find the kick.com [API documentation here](https://docs.kick.com/)

> [!NOTE]  
> This is in alpha stage, it currently only supports app access tokens. PRs to improve are very welcome!

## Client

All endpoints available for app access tokens are available.

```python
from kickpy.client import Client

kick_client = Client("KICK_CLIENT_ID", "KICK_CLIENT_SECRET")

user = await kick_client.fetch_user(4377088)
# Returns:
# User(user_id=4377088, name='KickBot', email='', profile_picture='https://files.kick.com/images/user/4377088/profile_image/conversion/8dde6c21-7008-43d1-b6ac-7d9c34b7d9cc-fullsize.webp')

channel = await kick_client.fetch_channel(4377088)
# Returns:
# Channel(broadcaster_user_id=4377088, slug='kickbot', channel_description='Official bot of https://kickbot.app, the #1 tool for Kick streamers. | VOD Downloader | !clip command | Custom Commands | Timed Messages | Customizable overlays | Stream Deck Plugin |\n\nContact: contact@kickbot.app', banner_picture='https://files.kick.com/images/channel/4295080/banner_image/b0d66fa3-3a4e-45d5-94ea-84d0590990d7', stream=Stream(url='', key='', is_live=False, is_mature=False, language='', start_time='0001-01-01T00:00:00Z', viewer_count=0), stream_title='', category=Category(id=0, name='', thumbnail=''))
```

## Webhook server

Support for receiving webhooks events from Kick is also available.

```python
from kickpy.client import Client
from kickpy.models.webhooks.chat_message import ChatMessage
from kickpy.webhooks.enums import WebhookEvent
from kickpy.webhooks.server import WebhookServer

def on_chat_message(payload: ChatMessage):
    print(payload)


async def main():
    kick_client = Client("KICK_CLIENT_ID", "KICK_CLIENT_SECRET")
    webhook_server = WebhookServer(kick_client, callback_route="KICK_CALLBACK_ROUTE")
    webhook_server.dispatcher.listen(WebhookEvent.CHAT_MESSAGE_SENT, on_chat_message)

    await webhook_server.listen(host="localhost", port=3000, access_log=None)


loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(main())
loop.run_forever()
```