Metadata-Version: 2.1
Name: edabf
Version: 0.5
Summary: A package for EDA on CSV and SQL data.
Author: nicolas_conde_brainfood
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: pandas==2.2.2
Requires-Dist: polars==1.10.0
Requires-Dist: psycopg2==2.9.9
Requires-Dist: psycopg2-binary==2.9.9
Requires-Dist: pymssql==2.3.1
Requires-Dist: oracledb==1.0.0
Requires-Dist: cx_Oracle
Requires-Dist: XlsxWriter==3.2.0
Requires-Dist: pyarrow==17.0.0
Requires-Dist: pymysql
Requires-Dist: SQLAlchemy


# EDA BF - Exploratory Data Analysis Package

Este paquete permite realizar un análisis exploratorio de datos (EDA) sobre archivos (CSV, Parquet) y tablas de bases de datos SQL (MySQL, PostgreSQL, SQL Server, Oracle), generando informes en formato Excel para facilitar el análisis de calidad y características de los datos.

## Funcionalidades Principales

### 1. `process_single_file`
Procesa un archivo individual (CSV o Parquet) y genera un informe EDA en formato Excel.

- **Función**: `process_single_file(file_path, output=None, limite=None)`
- **Parámetros**:
  - `file_path` (str): Ruta del archivo a procesar.
  - `output` (str): Ruta de salida para el archivo Excel (opcional).
  - `limite` (int): Límite opcional de filas a leer.
- **Descripción**: Lee el archivo especificado, genera un análisis exploratorio de datos y lo guarda en un archivo Excel que contiene métricas y estadísticas de los datos.

### 2. `process_folder`
Procesa múltiples archivos en una carpeta (CSV y Parquet) y genera un informe EDA consolidado en un archivo Excel.

- **Función**: `process_folder(folder_path, output=None, limite=None)`
- **Parámetros**:
  - `folder_path` (str): Ruta de la carpeta que contiene los archivos a procesar.
  - `output` (str): Ruta de salida para el archivo Excel consolidado.
  - `limite` (int): Límite opcional de filas a leer por archivo.
- **Descripción**: Busca archivos CSV y Parquet en la carpeta especificada, procesa cada archivo, y genera un informe combinado en Excel con métricas detalladas de cada archivo.

### 3. `process_single_table`
Procesa una única tabla de una base de datos SQL y genera un informe EDA en formato Excel.

- **Función**: `process_single_table(db_type, server, user, password, database, schema, table_name, path_instaclient=None, output=None)`
- **Parámetros**:
  - `db_type` (str): Tipo de base de datos (`mysql`, `postgresql`, `sqlserver`, `oracle`).
  - `server`, `user`, `password`, `database`, `schema`, `table_name` (str): Información de conexión y tabla a procesar.
  - `path_instaclient` (str): Ruta opcional del cliente de Oracle, si es necesario.
  - `output` (str): Ruta de salida para el archivo Excel.
- **Descripción**: Se conecta a la base de datos, extrae la tabla especificada y genera un informe detallado en Excel, incluyendo estadísticas y datos de calidad de la tabla.

### 4. `process_dataset`
Procesa múltiples tablas de un esquema en una base de datos SQL y genera un informe EDA para cada tabla en un único archivo Excel.

- **Función**: `process_dataset(db_type, server, user, password, database, schema, path_instaclient=None, output=None, limit_tables=5)`
- **Parámetros**:
  - `db_type` (str): Tipo de base de datos (`mysql`, `postgresql`, `sqlserver`, `oracle`).
  - `server`, `user`, `password`, `database`, `schema` (str): Información de conexión a la base de datos.
  - `path_instaclient` (str): Ruta opcional del cliente de Oracle, si es necesario.
  - `output` (str): Ruta de salida para el archivo Excel.
  - `limit_tables` (int): Límite opcional para el número de tablas a procesar.
- **Descripción**: Conecta a la base de datos, extrae todas las tablas del esquema especificado, y genera un informe EDA en un solo archivo Excel. Cada tabla se incluye en una hoja diferente, con métricas y análisis de calidad.


## Ejemplos de Uso

### Procesar un Archivo Individual
```python
from archivo import process_single_file
process_single_file("ruta/al/archivo.csv", output="salida.xlsx", limite=1000)
```

### Procesar una Carpeta de Archivos
```python
from masivo import process_folder
process_folder("ruta/a/carpeta", output="salida_masivo.xlsx")
```

### Procesar una Tabla de una Base de Datos
```python
from table import process_single_table
process_single_table("postgresql", "servidor", "usuario", "contraseña", "base_datos", "esquema", "nombre_tabla", output="salida_table.xlsx")
```

### Procesar Múltiples Tablas de un Esquema de Base de Datos
```python
from dataset import process_dataset
process_dataset("mysql", "servidor", "usuario", "contraseña", "base_datos", "esquema", output="salida_dataset.xlsx")
```

## Licencia
Este proyecto está bajo la licencia MIT.
