Esse projeto faz parte de um conjunto de projetos que tem como objetivo 'simular' rotinas Python para uma aplicação que gerência rotinas.
Este projeto é uma ferramenta de linha de comando desenvolvida em Python que busca e exibe todos os feriados públicos de um determinado ano e país. A aplicação utiliza uma arquitetura modular e orientada a objetos para garantir um código limpo, legível e de fácil manutenção.
- Consulta feriados públicos por ano e código do país.
- Utiliza a API pública e gratuita Nager.Date.
- Exibe os feriados com data formatada (DD/MM/AAAA) e o dia da semana correspondente em português.
- Estrutura de projeto bem definida, separando a lógica de negócio, modelos de dados e apresentação.
O projeto está organizado na seguinte estrutura de pastas, que promove a separação de responsabilidades (Separation of Concerns):
feriados_nacionais/
├── main.py # Ponto de entrada e orquestrador da aplicação
├── services/
│ ├── __init__.py
│ ├── holiday_service.py # Lida com a lógica de negócio e a comunicação com a API
│ └── output_formatter.py # Responsável por formatar e exibir a saída para o usuário
└── models/
├── __init__.py
└── holiday.py # Define o modelo de dados para um feriado
- Python 3.x
- Biblioteca
requests: Para realizar as chamadas HTTP à API externa.
Siga os passos abaixo para clonar e executar o projeto em sua máquina.
- É necessário ter o Python 3 instalado.
- O uso de um ambiente virtual (
venv) é fortemente recomendado para gerenciar as dependências do projeto de forma isolada.
# Crie e ative um ambiente virtual (opcional)
python -m venv venv
# No Windows: venv\Scripts\activate
# No macOS/Linux: source venv/bin/activateA única dependência externa deste projeto é a biblioteca requests. Para instalá-la, execute o comando:
pip install requestsCom o ambiente configurado e as dependências instaladas, navegue até a pasta raiz do projeto (feriados_nacionais/) e execute o script principal:
python main.pyVocê pode alterar o ano e o código do país diretamente no arquivo main.py para fazer outras consultas.
main.py: Ponto de entrada que coordena a execução. Ele instancia os serviços, solicita a busca dos feriados e chama o formatador para exibir os resultados.models/holiday.py: Define a classeHoliday, que serve como um modelo para estruturar os dados de cada feriado recebido da API. Isso torna a manipulação dos dados mais segura e intuitiva.services/holiday_service.py: Contém a classeHolidayService, responsável por toda a lógica de negócio, incluindo a comunicação com a API Nager.Date, o tratamento de erros e a conversão dos dados JSON em objetosHoliday.services/output_formatter.py: Possui a classeOutputFormatter, cuja única função é receber a lista de feriados já processada e apresentá-la de forma clara e organizada no terminal.
A execução do script irá gerar uma saída no console semelhante à mostrada abaixo:
--- Verificador de Feriados Nacionais ---
Buscando dados em: [https://date.nager.at/api/v3/PublicHolidays/2025/BR](https://date.nager.at/api/v3/PublicHolidays/2025/BR)...
========================================
Feriados Nacionais de 2025 - País: BR
========================================
- 01/01/2025 (Quarta-feira): Confraternização Universal
- 03/03/2025 (Segunda-feira): Carnaval
- 04/03/2025 (Terça-feira): Carnaval
- 18/04/2025 (Sexta-feira): Sexta-feira Santa
- 21/04/2025 (Segunda-feira): Tiradentes
- 01/05/2025 (Quinta-feira): Dia do Trabalho
- 19/06/2025 (Quinta-feira): Corpus Christi
- 07/09/2025 (Domingo): Independência do Brasil
- 12/10/2025 (Domingo): Nossa Senhora Aparecida
- 02/11/2025 (Domingo): Finados
- 15/11/2025 (Sábado): Proclamação da República
- 20/11/2025 (Quinta-feira): Dia Nacional de Zumbi e da Consciência Negra
- 25/12/2025 (Quinta-feira): Natal
========================================