Skip to content

Commit e4eaca9

Browse files
authored
Add advanced requests chapter (#75)
1 parent 0653a70 commit e4eaca9

28 files changed

Lines changed: 3308 additions & 54 deletions

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ Detailed explanations:
7474

7575
## Current status
7676

77-
The project foundation and **Phases 1–8 are complete**. **Phase 9: External Libraries is in progress** with two reviewed-track chapters: [`pandas`](external-libraries/01-pandas/README.md), targeting pandas 3.0.x, and [`openpyxl`](external-libraries/02-openpyxl/README.md), targeting openpyxl 3.1.x.
77+
The project foundation and **Phases 1–8 are complete**. **Phase 9: External Libraries is in progress** with three reviewed-track chapters: [`pandas`](external-libraries/01-pandas/README.md), targeting pandas 3.0.x, [`openpyxl`](external-libraries/02-openpyxl/README.md), targeting openpyxl 3.1.x, and [`requests`](external-libraries/03-requests/README.md), targeting Requests 2.34.x.
7878

79-
The phase now covers both tabular-data transformation and Excel workbook automation. Repository CI installs the explicit third-party contract in [`requirements-external.txt`](requirements-external.txt) before running approved examples.
79+
The phase now covers tabular-data transformation, Excel workbook automation, and HTTP/API consumption. Repository CI installs the explicit third-party contract in [`requirements-external.txt`](requirements-external.txt) before running approved examples.
8080

81-
The next planned Phase 9 chapters are `requests` and `pytest`. See the [External Libraries index](external-libraries/README.md), [roadmap](docs/roadmap.en.md), or [full learning path](docs/learning-path.en.md) for current status.
81+
The next planned Phase 9 chapter is `pytest`. See the [External Libraries index](external-libraries/README.md), [roadmap](docs/roadmap.en.md), or [full learning path](docs/learning-path.en.md) for current status.
8282

8383
## Visual identity
8484

docs/learning-path.en.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ Phase 8 is complete with nine reviewed chapters. The sequence moves from path mo
121121

122122
1.[`pandas`: Working with Tabular Data](../external-libraries/01-pandas/README.md)
123123
2.[`openpyxl`: Automating Excel Workbooks](../external-libraries/02-openpyxl/README.md)
124-
3. `requests`
124+
3. [`requests`: Consuming HTTP APIs](../external-libraries/03-requests/README.md)
125125
4.`pytest`
126126

127-
Phase 9 is in progress. Chapter 01 establishes labeled/tabular data contracts with pandas 3.0.x. Chapter 02 adds openpyxl 3.1.x workbook automation: worksheet/cell access, formulas versus cached values, styles, tables, validations, optimized read/write modes, VBA preservation boundaries, round-trip risks, and deterministic workbook verification.
127+
Phase 9 is in progress. Chapter 01 establishes labeled/tabular data contracts with pandas 3.0.x. Chapter 02 adds openpyxl 3.1.x workbook automation. Chapter 03 adds Requests 2.34.x HTTP/API contracts: methods, query parameters, headers, JSON, timeouts, exception boundaries, Sessions, TLS verification, streaming, retries, secret redaction, pagination, and deterministic local-server testing.
128128

129129
## Phase 10 · Practical Projects ⏳
130130

docs/learning-path.es.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ La Fase 8 está completada con nueve capítulos revisados. La secuencia avanza d
121121

122122
1.[`pandas`: Trabajando con Datos Tabulares](../external-libraries/01-pandas/README.es.md)
123123
2.[`openpyxl`: Automatizando Libros de Excel](../external-libraries/02-openpyxl/README.es.md)
124-
3. `requests`
124+
3. [`requests`: Consumiendo APIs HTTP](../external-libraries/03-requests/README.es.md)
125125
4.`pytest`
126126

127-
La Fase 9 está en progreso. El Capítulo 01 establece contratos de datos etiquetados/tabulares con pandas 3.0.x. El Capítulo 02 añade automatización de libros con openpyxl 3.1.x: acceso a hojas/celdas, fórmulas frente a valores en caché, estilos, tablas, validaciones, modos optimizados de lectura/escritura, límites de preservación de VBA, riesgos de round-trip y verificación determinista del libro.
127+
La Fase 9 está en progreso. El Capítulo 01 establece contratos de datos etiquetados/tabulares con pandas 3.0.x. El Capítulo 02 añade automatización de libros con openpyxl 3.1.x. El Capítulo 03 añade contratos HTTP/API con Requests 2.34.x: métodos, parámetros de query, headers, JSON, timeouts, fronteras de excepción, Sessions, verificación TLS, streaming, retries, redacción de secretos, paginación y pruebas deterministas con servidor local.
128128

129129
## Fase 10 · Proyectos Prácticos ⏳
130130

docs/learning-path.pt-BR.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ A Fase 8 está concluída com nove capítulos revisados. A sequência avança de
121121

122122
1.[`pandas`: Trabalhando com Dados Tabulares](../external-libraries/01-pandas/README.pt-BR.md)
123123
2.[`openpyxl`: Automatizando Workbooks do Excel](../external-libraries/02-openpyxl/README.pt-BR.md)
124-
3. `requests`
124+
3. [`requests`: Consumindo APIs HTTP](../external-libraries/03-requests/README.pt-BR.md)
125125
4.`pytest`
126126

127-
A Fase 9 está em andamento. O Capítulo 01 estabelece contratos de dados rotulados/tabulares com pandas 3.0.x. O Capítulo 02 acrescenta automação de workbooks com openpyxl 3.1.x: acesso a planilhas/células, fórmulas versus valores em cache, estilos, tabelas, validações, modos otimizados de leitura/escrita, limites de preservação de VBA, riscos de round-trip e verificação determinística do workbook.
127+
A Fase 9 está em andamento. O Capítulo 01 estabelece contratos de dados rotulados/tabulares com pandas 3.0.x. O Capítulo 02 acrescenta automação de workbooks com openpyxl 3.1.x. O Capítulo 03 acrescenta contratos HTTP/API com Requests 2.34.x: métodos, parâmetros de query, headers, JSON, timeouts, fronteiras de exceção, Sessions, verificação TLS, streaming, retries, redação de segredos, paginação e testes determinísticos com servidor local.
128128

129129
## Fase 10 · Projetos Práticos ⏳
130130

docs/localized/README.es.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ Explicaciones detalladas:
7474

7575
## Estado actual
7676

77-
La base del proyecto y las **Fases 1–8 están completadas**. La **Fase 9: Bibliotecas Externas está en progreso** con dos capítulos revisados de la ruta: [`pandas`](../../external-libraries/01-pandas/README.es.md), apuntando a pandas 3.0.x, y [`openpyxl`](../../external-libraries/02-openpyxl/README.es.md), apuntando a openpyxl 3.1.x.
77+
La base del proyecto y las **Fases 1–8 están completadas**. La **Fase 9: Bibliotecas Externas está en progreso** con tres capítulos revisados de la ruta: [`pandas`](../../external-libraries/01-pandas/README.es.md), apuntando a pandas 3.0.x, [`openpyxl`](../../external-libraries/02-openpyxl/README.es.md), apuntando a openpyxl 3.1.x, y [`requests`](../../external-libraries/03-requests/README.es.md), apuntando a Requests 2.34.x.
7878

79-
La fase ahora cubre tanto transformación de datos tabulares como automatización de libros de Excel. El CI del repositorio instala el contrato explícito de terceros en [`requirements-external.txt`](../../requirements-external.txt) antes de ejecutar los ejemplos aprobados.
79+
La fase ahora cubre transformación de datos tabulares, automatización de libros de Excel y consumo HTTP/API. El CI del repositorio instala el contrato explícito de terceros en [`requirements-external.txt`](../../requirements-external.txt) antes de ejecutar los ejemplos aprobados.
8080

81-
Los siguientes capítulos planificados de la Fase 9 son `requests` y `pytest`. Consulta el [índice de Bibliotecas Externas](../../external-libraries/README.es.md), el [roadmap](../roadmap.es.md) o la [ruta completa de aprendizaje](../learning-path.es.md) para el estado actualizado.
81+
El siguiente capítulo planificado de la Fase 9 es `pytest`. Consulta el [índice de Bibliotecas Externas](../../external-libraries/README.es.md), el [roadmap](../roadmap.es.md) o la [ruta completa de aprendizaje](../learning-path.es.md) para el estado actualizado.
8282

8383
## Identidad visual
8484

docs/localized/README.pt-BR.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ Explicações detalhadas:
7474

7575
## Status atual
7676

77-
A fundação do projeto e as **Fases 1–8 estão concluídas**. A **Fase 9: Bibliotecas Externas está em andamento** com dois capítulos revisados da trilha: [`pandas`](../../external-libraries/01-pandas/README.pt-BR.md), tendo pandas 3.0.x como alvo, e [`openpyxl`](../../external-libraries/02-openpyxl/README.pt-BR.md), tendo openpyxl 3.1.x como alvo.
77+
A fundação do projeto e as **Fases 1–8 estão concluídas**. A **Fase 9: Bibliotecas Externas está em andamento** com três capítulos revisados da trilha: [`pandas`](../../external-libraries/01-pandas/README.pt-BR.md), tendo pandas 3.0.x como alvo, [`openpyxl`](../../external-libraries/02-openpyxl/README.pt-BR.md), tendo openpyxl 3.1.x como alvo, e [`requests`](../../external-libraries/03-requests/README.pt-BR.md), tendo Requests 2.34.x como alvo.
7878

79-
A fase agora cobre tanto transformação de dados tabulares quanto automação de workbooks do Excel. O CI do repositório instala o contrato explícito de terceiros em [`requirements-external.txt`](../../requirements-external.txt) antes de executar os exemplos aprovados.
79+
A fase agora cobre transformação de dados tabulares, automação de workbooks do Excel e consumo HTTP/API. O CI do repositório instala o contrato explícito de terceiros em [`requirements-external.txt`](../../requirements-external.txt) antes de executar os exemplos aprovados.
8080

81-
Os próximos capítulos planejados da Fase 9 são `requests` e `pytest`. Consulte o [índice de Bibliotecas Externas](../../external-libraries/README.pt-BR.md), o [roadmap](../roadmap.pt-BR.md) ou a [trilha completa de estudos](../learning-path.pt-BR.md) para o status atualizado.
81+
O próximo capítulo planejado da Fase 9 é `pytest`. Consulte o [índice de Bibliotecas Externas](../../external-libraries/README.pt-BR.md), o [roadmap](../roadmap.pt-BR.md) ou a [trilha completa de estudos](../learning-path.pt-BR.md) para o status atualizado.
8282

8383
## Identidade visual
8484

docs/project-structure.en.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,16 +203,26 @@ python-study-guide/
203203
│ │ ├── filter_and_assign.py
204204
│ │ ├── groupby_summary.py
205205
│ │ └── merge_tables.py
206-
│ └── 02-openpyxl/
206+
│ ├── 02-openpyxl/
207+
│ │ ├── README.md
208+
│ │ ├── README.pt-BR.md
209+
│ │ ├── README.es.md
210+
│ │ └── examples/
211+
│ │ ├── load_and_iterate.py
212+
│ │ ├── styled_report.py
213+
│ │ ├── table_and_validation.py
214+
│ │ ├── workbook_basics.py
215+
│ │ └── write_only_export.py
216+
│ └── 03-requests/
207217
│ ├── README.md
208218
│ ├── README.pt-BR.md
209219
│ ├── README.es.md
210220
│ └── examples/
211-
│ ├── load_and_iterate.py
212-
│ ├── styled_report.py
213-
│ ├── table_and_validation.py
214-
│ ├── workbook_basics.py
215-
│ └── write_only_export.py
221+
│ ├── get_with_query.py
222+
│ ├── http_error_handling.py
223+
│ ├── post_json.py
224+
│ ├── session_defaults.py
225+
│ └── stream_download.py
216226
├── functions/
217227
│ ├── README.md
218228
│ ├── README.pt-BR.md
@@ -548,7 +558,7 @@ python-study-guide/
548558
- `docs/`: master learning paths, roadmaps, project architecture, localized project documents, policies, and responsible AI-assisted development guidance.
549559
- `errors-files-and-modules/`: complete Phase 7 learning path. Chapters 01–05 cover runtime exception handling, deliberate raising and custom exceptions, safe text-file I/O with `open()` and `with`, TXT/CSV/JSON parsing and writing, and code organization through imports, modules, regular packages, execution context, and dependency design, in English, Brazilian Portuguese, and Spanish with deterministic executable examples.
550560
- `exercises/`: focused practice activities connected to learning chapters.
551-
- `external-libraries/`: Phase 9 learning path for third-party packages. It currently contains reviewed multilingual chapters for pandas 3.0.x and openpyxl 3.1.x with ten deterministic executable examples in total; `requests` and `pytest` are planned next.
561+
- `external-libraries/`: Phase 9 learning path for third-party packages. It currently contains reviewed multilingual chapters for pandas 3.0.x, openpyxl 3.1.x, and Requests 2.34.x with fifteen deterministic executable examples in total; `pytest` is planned next.
552562
- `functions/`: complete Phase 5 learning path. Chapters 01–09 cover defining and calling functions, required inputs, returned values, scope and name lookup, type hints for function interfaces, default values including definition-time evaluation and mutable-default safety, variable-length positional and keyword argument collection with `*args` and `**kwargs`, composition through helper and coordinating functions with explicit dependencies and simple call graphs, and explicit data-flow tracing across calls including parameter bindings, rebinding versus mutation, `None`, tuple results, and return-based handoffs, in English, Brazilian Portuguese, and Spanish with deterministic executable examples.
553563
- `fundamentals/`: complete Phase 1 learning path. Its six chapters teach how Python runs a program, how to use `print()` and `input()`, how assignment and naming work, how to recognize and inspect common built-in data types, and how to convert compatible values deliberately, with aligned multilingual explanations and executable examples.
554564
- `practical-projects/`: future small projects combining several concepts.

docs/project-structure.es.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,16 +203,26 @@ python-study-guide/
203203
│ │ ├── filter_and_assign.py
204204
│ │ ├── groupby_summary.py
205205
│ │ └── merge_tables.py
206-
│ └── 02-openpyxl/
206+
│ ├── 02-openpyxl/
207+
│ │ ├── README.md
208+
│ │ ├── README.pt-BR.md
209+
│ │ ├── README.es.md
210+
│ │ └── examples/
211+
│ │ ├── load_and_iterate.py
212+
│ │ ├── styled_report.py
213+
│ │ ├── table_and_validation.py
214+
│ │ ├── workbook_basics.py
215+
│ │ └── write_only_export.py
216+
│ └── 03-requests/
207217
│ ├── README.md
208218
│ ├── README.pt-BR.md
209219
│ ├── README.es.md
210220
│ └── examples/
211-
│ ├── load_and_iterate.py
212-
│ ├── styled_report.py
213-
│ ├── table_and_validation.py
214-
│ ├── workbook_basics.py
215-
│ └── write_only_export.py
221+
│ ├── get_with_query.py
222+
│ ├── http_error_handling.py
223+
│ ├── post_json.py
224+
│ ├── session_defaults.py
225+
│ └── stream_download.py
216226
├── functions/
217227
│ ├── README.md
218228
│ ├── README.pt-BR.md
@@ -548,7 +558,7 @@ python-study-guide/
548558
- `docs/`: rutas completas de aprendizaje, roadmaps, arquitectura del proyecto, documentos localizados, políticas y guía de desarrollo responsable asistido por IA.
549559
- `errors-files-and-modules/`: ruta completa de la Fase 7. Los Capítulos 01–05 cubren manejo de excepciones en runtime, lanzamiento deliberado y excepciones personalizadas, I/O seguro de archivos de texto con `open()` y `with`, parsing y escritura de TXT/CSV/JSON y organización del código mediante imports, módulos, paquetes regulares, contexto de ejecución y diseño de dependencias, en inglés, portugués de Brasil y español con ejemplos ejecutables deterministas.
550560
- `exercises/`: actividades prácticas relacionadas con los capítulos.
551-
- `external-libraries/`: ruta de la Fase 9 para paquetes de terceros. Actualmente contiene capítulos multilingües revisados de pandas 3.0.x y openpyxl 3.1.x con diez ejemplos ejecutables deterministas en total; `requests` y `pytest` son los siguientes planificados.
561+
- `external-libraries/`: ruta de la Fase 9 para paquetes de terceros. Actualmente contiene capítulos multilingües revisados de pandas 3.0.x, openpyxl 3.1.x y Requests 2.34.x con quince ejemplos ejecutables deterministas en total; `pytest` es el siguiente planificado.
552562
- `functions/`: ruta completa de la Fase 5. Los Capítulos 01–09 cubren definición y llamada de funciones, entradas obligatorias, valores retornados, alcance y búsqueda de nombres, type hints para interfaces de funciones, valores predeterminados incluida la evaluación al definir la función y la seguridad con valores mutables, recolección de argumentos posicionales y por palabra clave de cantidad variable con `*args` y `**kwargs`, composición mediante funciones auxiliares y coordinadoras con dependencias explícitas y grafos simples de llamadas, y seguimiento explícito del flujo de datos entre llamadas, incluidos vínculos de parámetros, reasignación frente a mutación, `None`, resultados en tupla y traspasos mediante `return`, en inglés, portugués de Brasil y español, con ejemplos ejecutables determinísticos.
553563
- `fundamentals/`: ruta completa de la Fase 1. Sus seis capítulos enseñan cómo Python ejecuta un programa, cómo usar `print()` e `input()`, cómo funcionan la asignación y los nombres, cómo reconocer e inspeccionar tipos de datos incorporados comunes y cómo convertir valores compatibles de forma deliberada, con explicaciones multilingües alineadas y ejemplos ejecutables.
554564
- `practical-projects/`: futuros proyectos pequeños que combinarán varios conceptos.

0 commit comments

Comments
 (0)