# rivasnico356-png/ejercicios-lenguajes architecture

> Architecture diagram of the GitHub repository rivasnico356-png/ejercicios-lenguajes, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rivasnico356-png/ejercicios-lenguajes
- Repository: https://github.com/rivasnico356-png/ejercicios-lenguajes

## Overview

This is a small collection of Python learning exercises, not one integrated application. Its clearest user-to-result workflow loads wetland records from a CSV, applies functional summaries or filters, and prints results. Separate examples demonstrate object-oriented design and patterns in `unidad 2.py`, plus lazy iteration in `repasp.py`. The graph treats these as independent scripts; excerpts do not establish links between them. Some `unidad 2.py` sections are unsampled, so only visible relationships are shown.

Main entry points: [`ejercicio1.py`](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py) (Wetland analysis), [`repasp.py`](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/repasp.py) (Lazy number generator), [`unidad 2.py`](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py) (Library loans), [`dataset1.csv`](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/dataset1.csv) (Wetland records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_wetlands["Wetland data exercise"]
  node_wetland_script["Wetland analysis<br/>[ejercicio1.py]"]
  node_csv["Wetland records<br/>[dataset1.csv]"]
  node_record_loading["Record loading<br/>[ejercicio1.py]"]
  node_wetland_queries["Filters and summaries<br/>[ejercicio1.py]"]
  node_lazy_filter["Lazy critical filter<br/>[ejercicio1.py]"]
end

subgraph group_oop["OOP and design examples"]
  node_bank_account["Bank account example<br/>[unidad 2.py]"]
  node_payroll["Employee payroll<br/>[unidad 2.py]"]
  node_library_loans["Library loans<br/>[unidad 2.py]"]
  node_tuition_discounts["Tuition discounts<br/>[unidad 2.py]"]
  node_notification_design["Notification design<br/>[unidad 2.py]"]
  node_design_patterns["Pattern examples<br/>[unidad 2.py]"]
end

subgraph group_iteration["Iteration example"]
  node_lazy_generator["Lazy number generator<br/>[repasp.py]"]
end

node_user(("Script user"))

node_user -->|"runs"| node_wetland_script
node_wetland_script -->|"calls"| node_record_loading
node_record_loading -->|"reads"| node_csv
node_wetland_script -->|"prints results"| node_wetland_queries
node_wetland_script -->|"creates generator"| node_lazy_filter
node_lazy_filter -->|"uses lazy loader"| node_record_loading
node_user -->|"runs script"| node_lazy_generator
node_lazy_generator -->|"yields values"| node_lazy_generator
node_library_loans -->|"calls loan methods"| node_library_loans

click node_wetland_script "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py"
click node_csv "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/dataset1.csv"
click node_record_loading "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py"
click node_wetland_queries "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py"
click node_lazy_filter "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py"
click node_bank_account "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py"
click node_payroll "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py"
click node_library_loans "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py"
click node_tuition_discounts "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py"
click node_notification_design "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py"
click node_design_patterns "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py"
click node_lazy_generator "https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/repasp.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_wetland_script,node_csv,node_record_loading,node_wetland_queries,node_lazy_filter,node_user toneBlue
class node_bank_account,node_payroll,node_library_loans,node_tuition_discounts,node_notification_design,node_design_patterns toneAmber
class node_lazy_generator toneMint
```

## Components

### Wetland data exercise

- [Wetland analysis](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py): `ejercicio1.py`
- [Wetland records](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/dataset1.csv): `dataset1.csv`
- [Record loading](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py): `ejercicio1.py`
- [Filters and summaries](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py): `ejercicio1.py`
- [Lazy critical filter](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/ejercicio1.py): `ejercicio1.py`

### OOP and design examples

- [Bank account example](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py): `unidad 2.py`
- [Employee payroll](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py): `unidad 2.py`
- [Library loans](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py): `unidad 2.py`
- [Tuition discounts](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py): `unidad 2.py`
- [Notification design](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py): `unidad 2.py`
- [Pattern examples](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/unidad%202.py): `unidad 2.py`

### Iteration example

- [Lazy number generator](https://github.com/rivasnico356-png/ejercicios-lenguajes/blob/main/repasp.py): `repasp.py`

### Other components

- **Script user**

## Connections

- Script user → Wetland analysis: runs (evidence: `ejercicio1.py`)
- Wetland analysis → Record loading: calls (evidence: `ejercicio1.py`)
- Record loading → Wetland records: reads (evidence: `ejercicio1.py`)
- Wetland analysis → Filters and summaries: prints results (evidence: `ejercicio1.py`)
- Wetland analysis → Lazy critical filter: creates generator (evidence: `ejercicio1.py`)
- Lazy critical filter → Record loading: uses lazy loader (evidence: `ejercicio1.py`)
- Script user → Lazy number generator: runs script (evidence: `repasp.py`)
- Lazy number generator → Lazy number generator: yields values (evidence: `repasp.py`)
- Library loans → Library loans: calls loan methods (evidence: `unidad 2.py`)
