# general



# _print_debug

**Descripción**

Imprime cualquier lista, dict, string, float o integer como un json

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip"><tbody><tr><td>**Nombre** </td><td>**Tipo**</td><td>**Requerido**</td><td>**Descripción**</td></tr><tr><td><div><div>var</div></div></td><td>str</td><td>Si</td><td>Elemento que será imprimido</td></tr><tr><td><div><div>print_errors</div></div></td><td>bool</td><td>No</td><td>Chequeo para pintar errores.</td></tr></tbody></table>

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

device_name = "Router"
device_status = "Active"
device_data = {
    "cpu_usage": 80,
    "memory_usage": 60
}

information = {
    "name": device_name,
    "status": device_status,
    "data": device_data
}

pt.agents._print_debug(information, print_errors=True)
```

2

# safe_input

**Descripción**

Convierte una cadena de entrada codificada en entidades HTML en una cadena de caracteres claros.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip"><tbody><tr><td>**Nombre** </td><td>**Tipo**</td><td>**Requerido**</td><td>**Descripción**</td></tr><tr><td><div><div>input_string</div></div></td><td>str</td><td>Si</td><td>La cadena de entrada codificada en entidades HTML</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-str-la-cadena-de-car" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">str</td><td style="width: 50%;">La cadena de caracteres claros descodificada</td></tr></tbody></table>

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Define an input string with HTML entities
input_string = "&lt;p&gt;Hello, &lt;b&gt;world&lt;/b&gt;!&lt;/p&gt;"

# Use the safe_input function to decode the HTML entities
decoded_string = pt.general.safe_input(input_string)

# Print the decoded string
print("Decoded string:", decoded_string)
```

# safe_output

**Descripción**

Convierte las entidades HTML a sus caracteres correspondientes en la cadena de entrada.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="height: 58px; width: 532px;"><tbody><tr style="height: 29px;"><td style="height: 29px; width: 102px;">**Nombre** </td><td style="height: 29px; width: 49px;">**Tipo**</td><td style="height: 29px; width: 92px;">**Requerido**</td><td style="height: 29px; width: 289px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 102px;">input\_string</td><td style="height: 29px; width: 49px;">str</td><td style="height: 29px; width: 92px;">Si</td><td style="height: 29px; width: 289px;">La cadena de caracteres claros descodificada</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-tipo-none" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">**Tipo**</td></tr><tr><td style="width: 100%;">None</td></tr></tbody></table>

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Define an input string with HTML entities
input_string = "&lt;p&gt;Hello, &lt;b&gt;world&lt;/b&gt;!&lt;/p&gt;"

# Use the safe_output function to convert HTML entities back to characters
decoded_string = pt.general.safe_output(input_string)

# Print the decoded string
print("Decoded string:", decoded_string)
```

# set_dict_key_value

**Descripción**

Asignar a una clave de un dict un valor determinado

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">**Nombre**</td><td style="width: 6.25%; height: 29px;">**Tipo**</td><td style="width: 7.9784%; height: 29px;">**Requerido**</td><td style="width: 48.2716%; height: 29px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">input\_dict</td><td style="width: 6.25%; height: 29px;">dict</td><td style="width: 7.9784%; height: 29px;">Si</td><td style="width: 48.2716%; height: 29px;">Diccionario </td></tr><tr><td style="width: 12.5%;">input\_key</td><td style="width: 6.25%;">str</td><td style="width: 7.9784%;">Si</td><td style="width: 48.2716%;">Clave del diccionario</td></tr><tr><td style="width: 12.5%;">input\_value</td><td style="width: 6.25%;">None</td><td style="width: 7.9784%;">Si</td><td style="width: 48.2716%;">Valor del diccionario</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-tipo-none" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">**Tipo**</td></tr><tr><td style="width: 100%;">None</td></tr></tbody></table>

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Define the dictionary of monitored devices
devices = {
    'device1': {
        'status': 'online',
        'temperature': 25.0,
        'humidity': 60.0
    },
    'device2': {
        'status': 'offline',
        'temperature': 0.0,
        'humidity': 0.0
    }
}

# Update the status of a device
pt.general.set_dict_key_value(devices['device1'], 'status', 'offline')

# Update the temperature of another device
pt.general.set_dict_key_value(devices['device2'], 'temperature', 22.5)

# Display the updated dictionary
print("Monitored devices dictionary:", devices)
```

# get_dict_key_value

**Descripción**

Devuelve el valor de una clave en un dict dado.

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Sample device monitoring data
device_data = {
    'device_id': '12345',
    'temperature': 28.5,
    'status': 'online'
}

# Get the temperature reading from the device data
temperature = pt.general.get_dict_key_value(device_data, 'temperature')
if temperature is not None:
    print("Temperature:", temperature, "C")

# Get the status of the device
status = pt.general.get_dict_key_value(device_data, 'status')
if status is not None:
    print("Status:", status)
```

# generate_md5

**Descripción**

Genera un hash MD5 para la cadena de entrada dada

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 12.5%;">**Nombre**</td><td style="width: 6.25%;">**Tipo**</td><td style="width: 7.9784%;">**Requerido**</td><td style="width: 48.2716%;">**Descripción**</td></tr><tr><td style="width: 12.5%;">input\_string</td><td style="width: 6.25%;">str</td><td style="width: 7.9784%;">Si</td><td style="width: 48.2716%;">La cadena para la que se generará el hash MD5.</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.2099%;">str</td><td style="width: 66.7901%;">El hash MD5 de la cadena de entrada como cadena hexadecimal.</td></tr></tbody></table>

**Requisitos**

- hashlib <div>  
    </div>

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Sample monitoring data for a Linux system agent
name_agent = "Rocky-linux-master"

# Convert the monitoring data dictionary to a string
data_string = str(linux_system_data)

# Generate MD5 hash for the monitoring data
md5_hash = pt.general.generate_md5(data_string)

print("Linux System Monitoring Data:")
print(linux_system_data)
print("MD5 Hash:", md5_hash)
```

# now

**Descripción**

Devuelve la hora en formato aaaa/mm/dd HH:MM:SS por defecto.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 12.5%;"><div><div>**Nombre**</div></div></td><td style="width: 6.25%;"><div><div>**Tipo**</div></div></td><td style="width: 6.25%;"><div><div>**Requerido**</div></div></td><td style="width: 50%;">**Descripción**</td></tr><tr><td style="width: 12.5%;"><div><div>print_flag</div></div></td><td style="width: 6.25%;"><div><div>int</div></div></td><td style="width: 6.25%;"><div><div>No</div></div></td><td style="width: 50%;">Sirve para imprimir la hora, de no utilizarse la hora se devolverá. Por defecto None</td></tr><tr><td style="width: 12.5%;"><div><div>utimestamp</div></div></td><td style="width: 6.25%;"><div><div>int</div></div></td><td style="width: 6.25%;"><div><div>No</div></div></td><td style="width: 50%;">Sirve para introducir un utimestamp, por defecto utilizará el actual.</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">**Nombre**</td><td style="width: 50%;">**Descripción**</td></tr><tr><td style="width: 50%;">str</td><td style="width: 50%;">Hora en formato aaaa/mm/dd HH:MM:SS</td></tr><tr><td style="width: 50%;">float</td><td style="width: 50%;">Hora en formato epoch time</td></tr></tbody></table>

**Requisitos**

- datetime.datetime

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Get the current time in the default format
current_time_default = pt.general.now()
print("Current Time (Default Format):", current_time_default)

# Get the current time in Unix timestamp format
current_time_unix = pt.general.now(utimestamp=True)
print("Current Time (Unix Timestamp):", current_time_unix)

# Get and print the current time with the specified format
current_time_custom_format = pt.general.now(print_flag=True)
```

# translate_macros

**Descripción**

Espera un diccionario de macros clave:valor (nombre\_macro:valor\_macro) y una cadena para reemplazar la macro.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr><td style="width: 12.5%;"><div><div>**Nombre**</div></div></td><td style="width: 6.25%;"><div><div>**Tipo**</div></div></td><td style="width: 8.22531%;"><div><div>**Requerido**</div></div></td><td style="width: 48.0247%;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;"><div><div>macro_dic</div></div></td><td style="width: 6.25%;"><div><div>dict</div></div></td><td style="width: 8.22531%;"><div><div>Si</div></div></td><td style="width: 48.0247%; height: 29px;">Diccionario de macros clave:valor (nombre\_macro:valor\_macro)</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;"><div><div>data</div></div></td><td style="width: 6.25%;"><div><div>str</div></div></td><td style="width: 8.22531%;"><div><div>Si</div></div></td><td style="width: 48.0247%; height: 29px;">String para reemplazar la macro.</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">str</td><td style="width: 50%;">Devuelve el string parseado</td></tr></tbody></table>

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Define a dictionary of macros and their corresponding values
macros = {
    "{DATE}": "2023-08-16",
    "{TIME}": "15:30:00",
    "{DEVICE}": "Linux Server",
    "{USER}": "admin"
}

# Input string with macros
input_data = "The {DEVICE} is operational since {TIME}."

# Replace macros in the input string
translated_data = pt.general.translate_macros(macro_dic=macros, data=input_data)

# Print the translated input string
print("Translated input string:", translated_data)
```

# parse_configuration

**Descripción**

Analiza la configuración. Lee el fichero de configuración y almacena sus datos como dict.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 116px;"><tbody><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">**Nombre**</td><td style="width: 6.25%;">**Tipo**</td><td style="width: 8.34877%;">**Requerido**</td><td style="width: 47.9012%; height: 29px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">file</td><td style="width: 6.25%;"> </td><td style="width: 8.34877%;">si</td><td style="width: 47.9012%; height: 29px;">Ruta del fichero de configuración. Por defecto es "/etc/pandora/pandora\_server.conf"</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">separator</td><td style="width: 6.25%;"> </td><td style="width: 8.34877%;">no</td><td style="width: 47.9012%; height: 29px;">Separador para la opción y el valor. Por defecto es " "</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">default\_values</td><td style="width: 6.25%;"> </td><td style="width: 8.34877%;">no</td><td style="width: 47.9012%; height: 29px;">Diccionario de valores por defecto</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">dict</td><td style="width: 50%;">Diccionario que contiene todas las claves y valores del fichero</td></tr></tbody></table>

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Specify the path to the configuration file
config_file = "/etc/pandora/pandora_server.conf"

# Specify the separator used in the configuration file
separator = "="

# Define default values for configuration options
default_config = {
    "server_port": "8080",
    "debug_mode": "false",
    "log_file": "/var/log/pandora.log"
}

# Parse the configuration file and get the configuration data
parsed_config = pt.general.parse_configuration(file=config_file, separator=separator, default_values=default_config)

# Print the parsed configuration data
print("Parsed configuration:", parsed_config)
```

# parse_csv_file

**Descripción**

Lee el fichero de configuración y almacena sus datos en un array.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 145px;"><tbody><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">**Nombre**</td><td style="width: 6.25%; height: 29px;">**Tipo**</td><td style="width: 8.59568%; height: 29px;">**Requerido**</td><td style="width: 47.6543%; height: 29px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">file</td><td style="width: 6.25%; height: 29px;">str</td><td style="width: 8.59568%; height: 29px;">Si</td><td style="width: 47.6543%; height: 29px;">Ruta del fichero csv de configuración</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">separator</td><td style="width: 6.25%; height: 29px;">str</td><td style="width: 8.59568%; height: 29px;">No</td><td style="width: 47.6543%; height: 29px;">Separador para la opción y el valor. Por defecto es ";"</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;"><div><div>coun_parameters</div></div></td><td style="width: 6.25%; height: 29px;"><div><div>int</div></div></td><td style="width: 8.59568%; height: 29px;"><div><div>No</div></div></td><td style="width: 47.6543%; height: 29px;">Número mínimo de parámetros que debe tener cada línea. Por defecto Ninguno</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">debug</td><td style="width: 6.25%; height: 29px;">bool</td><td style="width: 8.59568%; height: 29px;">No</td><td style="width: 47.6543%; height: 29px;">Para imprimir errores en las líneas</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">list</td><td style="width: 50%;">Contiene una lista de valores para cada línea csv</td></tr></tbody></table>

**Requisitos**

- sys

**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Specify the path to the CSV configuration file
csv_file = "data.csv"

# Specify the separator used in the CSV file
separator = ","

# Specify the minimum number of parameters each line should have
min_parameters = 3

# Parse the CSV configuration file and get the data in a list
parsed_csv_data = pt.general.parse_csv_file(file=csv_file, separator=separator, count_parameters=min_parameters, print_errors=True)

# Print the parsed CSV data
print("Parsed CSV data:", parsed_csv_data)
```

# parse_int

**Descripción**

Convierte una variable dada en una cadena.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">**Nombre**</td><td style="width: 6.25%; height: 29px;">**Tipo**</td><td style="width: 7.9784%; height: 29px;">**Requerido**</td><td style="width: 48.2716%; height: 29px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">var</td><td style="width: 6.25%; height: 29px;">None</td><td style="width: 7.9784%; height: 29px;">Si</td><td style="width: 48.2716%; height: 29px;">La variable a analizar como cadena.</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.2099%;">str</td><td style="width: 66.7901%;">El valor de la cadena analizada. Si el análisis falla, devuelve "".</td></tr></tbody></table>

<div id="bkmrk-"></div>**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Sample variables to be parsed as integers
var1 = "123"
var2 = "45.67"
var3 = "invalid"

# Parse the variables as integers using the parse_int function
parsed_var1 = pt.general.parse_int(var1)
parsed_var2 = pt.general.parse_int(var2)
parsed_var3 = pt.general.parse_int(var3)

# Print the parsed integer values
print("Parsed var1:", parsed_var1)  # Should print: Parsed var1: 123
print("Parsed var2:", parsed_var2)  # Should print: Parsed var2: 0 (parsing fails for decimal value)
print("Parsed var3:", parsed_var3)  # Should print: Parsed var3: 0 (parsing fails for invalid value)
```

# parse_float

**Descripción**

Convierte una variable dada a float.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">**Nombre**</td><td style="width: 6.25%; height: 29px;">**Tipo**</td><td style="width: 7.9784%; height: 29px;">**Requerido**</td><td style="width: 48.2716%; height: 29px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">var</td><td style="width: 6.25%; height: 29px;">None</td><td style="width: 7.9784%; height: 29px;">SI</td><td style="width: 48.2716%; height: 29px;">La variable a convertir en float.</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.2099%;">float</td><td style="width: 66.7901%;">El valor de float analizado. Si el análisis falla, devuelve 0.</td></tr></tbody></table>

<div id="bkmrk-"></div>**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Sample variables to be parsed as floats
var1 = "123.45"
var2 = "invalid"
var3 = 67

# Parse the variables as floats using the parse_float function
parsed_var1 = pt.general.parse_float(var1)
parsed_var2 = pt.general.parse_float(var2)
parsed_var3 = pt.general.parse_float(var3)

# Print the parsed float values
print("Parsed var1:", parsed_var1)  # Should print: Parsed var1: 123.45
print("Parsed var2:", parsed_var2)  # Should print: Parsed var2: 0.0 (parsing fails for invalid value)
print("Parsed var3:", parsed_var3)  # Should print: Parsed var3: 67.0
```

# parse_str

**Descripción**

Convierte una variable dada en una cadena.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">**Nombre**</td><td style="width: 6.25%; height: 29px;">**Tipo**</td><td style="width: 7.9784%; height: 29px;">**Requerido**</td><td style="width: 48.2716%; height: 29px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">var</td><td style="width: 6.25%; height: 29px;">None</td><td style="width: 7.9784%; height: 29px;">Si</td><td style="width: 48.2716%; height: 29px;">La variable a analizar como cadena.</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.2099%;">str</td><td style="width: 66.7901%;">El valor de la cadena analizada. Si el análisis falla, devuelve "".s</td></tr></tbody></table>

<div id="bkmrk-"></div>**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Sample variables to be parsed as strings
var1 = 12345
var2 = 3.14159
var3 = True

# Parse the variables as strings using the parse_str function
parsed_var1 = pt.general.parse_str(var1)
parsed_var2 = pt.general.parse_str(var2)
parsed_var3 = pt.general.parse_str(var3)

# Print the parsed string values
print("Parsed var1:", parsed_var1)  # Should print: Parsed var1: 12345
print("Parsed var2:", parsed_var2)  # Should print: Parsed var2: 3.14159
print("Parsed var3:", parsed_var3)  # Should print: Parsed var3: True
```

# parse_bool

**Descripción**

Convierte una variable dada en bool.

**Parámetros**

<table border="1" id="bkmrk-module-acepta-el-tip" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">**Nombre**</td><td style="width: 6.25%; height: 29px;">**Tipo**</td><td style="width: 7.9784%; height: 29px;">**Requerido**</td><td style="width: 48.2716%; height: 29px;">**Descripción**</td></tr><tr style="height: 29px;"><td style="width: 12.5%; height: 29px;">var</td><td style="width: 6.25%; height: 29px;">None</td><td style="width: 7.9784%; height: 29px;">Si</td><td style="width: 48.2716%; height: 29px;">La variable a convertir en bool.</td></tr></tbody></table>

**Return**

<table border="1" id="bkmrk-module_xml-m%C3%B3dulo-en" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.2099%;">bool</td><td style="width: 66.7901%;">El valor bool analizado. Si el análisis falla, devuelve False.</td></tr></tbody></table>

<div id="bkmrk-"></div>**Versión**

- 1.0.0

**Ejemplo**

```
import pandoraPlugintools as pt

# Sample variables to be parsed as booleans
var1 = "True"
var2 = 1
var3 = "false"

# Parse the variables as booleans using the parse_bool function
parsed_var1 = pt.general.parse_bool(var1)
parsed_var2 = pt.general.parse_bool(var2)
parsed_var3 = pt.general.parse_bool(var3)

# Print the parsed boolean values
print("Parsed var1:", parsed_var1)  # Should print: Parsed var1: True
print("Parsed var2:", parsed_var2)  # Should print: Parsed var2: True
print("Parsed var3:", parsed_var3)  # Should print: Parsed var3: False
```