# Python Processors

{% hint style="info" %}
Processors available out of box for execution are listed on this page. It is also possible to create new processors using rierino\_runner.Processor as the base class.
{% endhint %}

## rierino\_runner.processor.NoopProcessor

This is a test processpr that doesn't perform any specific action.

## rierino\_runner.processor.PrintProcessor

This is a test processor that simply prints the request details on console.

## rierino\_runner.processor.FSProcessor

This processor performs file operations with a file system.

| Parameter | Definition                                                | Example      | Default |
| --------- | --------------------------------------------------------- | ------------ | ------- |
| system    | Name of system in connections to connect to               | fs\_media    | -       |
| action    | File action to perform (can be passed in payload as well) | writeToLocal | -       |

Following payload fields are used by the actions, based on the action type:

* path
* tarName
* content
* localPath
* targetPath
* fileName
* targetFile
* prefix

Applicable file actions are as follows:

* removeLocalFile
* removeLocalDir
* makeLocalDir
* writeToLocal
* readFromLocal
* tarLocal
* untarLocal
* removeFile
* removeDir
* makeDir
* copyFromLocal
* copyFromLocalDir
* syncFromLocalDir
* copyToLocal

## rierino\_runner.processor.IOProcessor

This processor performs record operations on databases or files.

| Parameter | Definition                                      | Example                                     | Default |
| --------- | ----------------------------------------------- | ------------------------------------------- | ------- |
| system    | Name of system in connections to connect to     | mongo\_master                               | -       |
| output    | Output parameters for writing records to system | {database: "master", collection: "product"} | -       |

## rierino\_runner.processor.RestProcessor

This processor makes calls to a REST API. For more complex REST API integrations, Java sagas should be called to perform the request instead.

| Parameter   | Definition                                                                                            | Example               | Default |
| ----------- | ----------------------------------------------------------------------------------------------------- | --------------------- | ------- |
| system      | Name of system in connections to connect to                                                           | erp                   | -       |
| method      | Request method                                                                                        | POST                  | -       |
| url         | Request URL (if there is a targetPath in payload, it is appended to this url)                         | /CreateProduct        | -       |
| headers     | Headers to pass on in request                                                                         | {}                    | -       |
| token       | Authorization token to send for request                                                               | {API\_KEY} (from env) | -       |
| tokenPrefix | Authorization token prefix to use                                                                     | gateway\_token        | Bearer  |
| username    | Username to send for basic authentication                                                             | {USERNAME} (from env) | -       |
| password    | Password to send for basic authentication                                                             | {PASSWORD} (from env) | -       |
| download    | Whether response should be downloaded as file (with localPath & filePath from payload) (binary, true) | true                  | -       |
| internal    | Whether request should be formatted in Event data format as an internal microservice call             | true                  | -       |
| retries     | Number of retries if the REST call fails                                                              | 3                     | 0       |

## rierino\_runner.processor.JavaProcessor

This processor is only applicable when called through Java Py4JEventHandler, allowing hook calls to the Java runner without requiring explicit REST API calls.

| Parameter | Definition                               | Example | Default |
| --------- | ---------------------------------------- | ------- | ------- |
| meta      | Event metadata to pass on to Java runner | -       | -       |
| retries   | Number of retries if the Java call fails | 3       | 0       |

## rierino\_runner.processor.KafkaProcessor

This processor sends messages to a Kafka topic.

| Parameter | Definition                                  | Example        | Default |
| --------- | ------------------------------------------- | -------------- | ------- |
| system    | Name of system in connections to connect to | kafka\_default | -       |
| topic     | Name of topic to send messages to           | email\_trigger | -       |

## rierino\_runner.processor.ProcessProcessor

This processor allows calling any [Python Process](/devops/batch-tasks/python-processes.md), passing payload as well as parameters enriched with payload.

| Parameter      | Definition                 | Example        | Default |
| -------------- | -------------------------- | -------------- | ------- |
| processPackage | Python package for Process | rierino\_media | -       |
| processModule  | Python module for Process  | MediaProcess   | -       |

## rierino\_runner.processor.MultiStepProcessor

This processor performs a sequence of calls to different processors.

| Parameter | Definition               | Example                          | Default |
| --------- | ------------------------ | -------------------------------- | ------- |
| steps     | List of steps to perform | \[{module: "", stepPattern: ""}] | -       |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rierino.com/devops/batch-tasks/python-processors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
