Skip to content

braulio-arteaga/data_manager_cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DataManager CLI — Análisis de Denuncias Policiales en Lima Metropolitana

  • Curso: Introducción a la Programación en Python y PyTorch
  • Docente: Jorge Guevara
  • Integrante: Braulio Arteaga

1. Descripción

Aplicación de línea de comandos (CLI) para el procesamiento y análisis descriptivo de denuncias policiales registradas en Lima Metropolitana durante el periodo 2021–2026, utilizando datos del Sistema Informático de Denuncias Policiales (SIDPOL) de la Policía Nacional del Perú.

El proyecto, mediante una arquitectura funcional y reproducible, integra los módulos dictados en enl curso, lo cual incluye desde la gestión de archivos hasta la implementación de pruebas unitarias.

SIDPOL PNP
Procesamiento de denuncias del SIDPOL

2. Estructura del proyecto

datamanager/
├── main.py           # Menú CLI principal (punto de entrada)
├── data_loader.py    # Carga y parseo del CSV
├── validator.py      # Validación de registros
├── processor.py      # Filtros, ordenamiento y estadísticas
├── exporter.py       # Exportación a JSON
├── utils.py          # Funciones auxiliares de UI
├── tests/
│   ├── __init__.py
│   └── test_processor.py  # Suite de pruebas (31 tests)
└── data/
    ├── denuncias_lima.csv  # Dataset principal
    ├── estadisticas.json   # Generado al exportar
    └── resultados.json     # Generado al exportar

3. Requisitos

  • Python 3.10 o superior
  • pytest (para ejecutar los tests)
pip install pytest

4. Ejecución

cd datamanager
python main.py

4.1. Menú principal

DataManager CLI — Denuncias Lima Metropolitana
Fuente: SIDPOL · Período: 2021–2026

  1 - Mostrar datos
  2 - Filtrar
  3 - Ordenar
  4 - Estadísticas
  5 - Exportar estadísticas (JSON)
  6 - Exportar datos actuales (JSON)
  7 - Resetear vista
  0 - Salir

4.2 Ejemplo de uso

# Cargar el programa
python main.py

# Desde el menú:
# 2 → Filtrar → 1 (Modalidad) → 2 (Extorsión)
# 3 → Ordenar → 5 (n_denuncias) → d (descendente)
# 4 → Ver estadísticas del filtro aplicado
# 5 → Exportar estadísticas a data/estadisticas.json

5. Tests

cd datamanager
pytest tests/test_processor.py -v

Los test realizan lo siguiente:

  • Filtros por modalidad, año, distrito y mínimo de denuncias
  • Ordenamiento ascendente/descendente y detección de campos inválidos
  • Estadísticas con lista vacía, valores normales y casos extremos
  • Validación de registros (distrito vacío, modalidad inválida, año fuera de rango, denuncias negativas)

6. Ejemplo de salida JSON

{
  "total_registros": 13710,
  "total_denuncias": 1021243,
  "promedio_denuncias": 74.49,
  "max_denuncias": 4706,
  "min_denuncias": 1,
  "por_modalidad": {
    "Extorsión": 39293,
    "Robo": 234109,
    "Hurto": 380739,
    "Estafa": 67145,
    "Homicidio": 3961,
    "Otros": 295996
  },
  "por_anio": {
    "2021": 134026,
    "2022": 178964,
    "2023": 250659,
    "2024": 239447,
    "2025": 203739,
    "2026": 14408
  },
  "top5_distritos": {
    "SAN JUAN DE LURIGANCHO": 105964,
    "LIMA": 104284,
    "SAN MARTIN DE PORRES": 54705,
    "COMAS": 54192,
    "ATE": 47639
  }
}

About

DataManager CLI - Análisis de denuncias policiales

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages