Motor definitivo para conversão de Tempo Civil em Tempo de Produção.
Project description
omega_calendar_projetc
A high-performance production calendar engine for Python. Seamlessly syncs Civil and Fiscal timeframes (26-25) with O(1) complexity and priority-based extra working days override.
⚙️ Production Calendar Omega
O motor definitivo para gestão de janelas de produção e calendários fiscais.
Diferente de bibliotecas de calendário convencionais, a Production Calendar Omega foi desenhada para ambientes industriais e ERPs onde o "mês de produção" não coincide com o calendário civil. Se o teu Março começa no dia 26 de Fevereiro, esta é a tua biblioteca.
🚀 Destaques (DNA Ômega)
- Cálculo de Período Fiscal: Conversão instantânea de datas civis para meses de produção (ex: janelas de 26 a 25).
- Precedência de Operação: Suporte a feriados e Dias Extras (horas extras ou feriados trabalhados com prioridade absoluta).
- Arquitetura Multi-Contrato: Instancie múltiplos calendários com regras, feriados e dias de corte distintos no mesmo processo.
- Performance O(1): Busca de datas otimizada via Hashing Sets.
- Imutabilidade: Resultados entregues em
Frozen Dataclassespara evitar mutações acidentais no pipeline.
📦 Instalação
pip install production-calendar-omega
🛠️ Como Usar
1. Configuração Básica
Ideal para contratos padrão com janelas de fechamento fixas.
Python
from datetime import date
from production_calendar import ProductionCalendar
# Definir feriados do contrato
feriados = [date(2024, 12, 25)]
# Inicializar o motor
motor = ProductionCalendar(holidays=feriados)
# Descobrir a qual mês de produção uma data pertence (Corte dia 26)
periodo = motor.get_fiscal_period(date(2024, 2, 27), start_day=26)
print(f"Label: {periodo.label}") # Mar/24 Fiscal
print(f"Início: {periodo.start_date}") # 2024-01-26
print(f"Fim: {periodo.end_date}") # 2024-02-25
2. Dias Extras (Override de Produção)
Se a fábrica vai rodar num feriado ou domingo, use o extra_working_days.
Python
dias_trabalhados = [date(2024, 12, 25)] # Sim, vamos rodar no Natal!
motor = ProductionCalendar(extra_working_days=dias_trabalhados)
# No Natal, is_working_day retornará True devido à precedência de Dias Extras.
print(motor.is_working_day(date(2024, 12, 25))) # True
3. Contagem de Dias Úteis
Calcule a capacidade produtiva de uma janela fiscal ignorando feriados e fins de semana (a menos que sejam Dias Extras).
Python
periodo = motor.get_fiscal_period(date.today())
dias_uteis = motor.count_working_days(periodo.start_date, periodo.end_date, rule='SEG_SEX')
print(f"Dias produtivos na janela: {dias_uteis}")
📐 Estrutura de Dados FiscalPeriod
O retorno de get_fiscal_period é uma instância de FiscalPeriod:
Atributo Tipo Descrição
month int Mês fiscal resultante
year int Ano fiscal resultante
start_date date Data civil de início da janela
end_date date Data civil de término da janela
label str Identificador formatado (ex: "Jan/24 Fiscal")
total_days int Contagem total de dias corridos na janela
⚖️ Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file production_calendar_omega-2.0.0.tar.gz.
File metadata
- Download URL: production_calendar_omega-2.0.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27bb25e809747971a845bbf15389c10b8cbefe4fc20975af12e2273b10710e4e
|
|
| MD5 |
3b2265433775bd877c1a476b7d130625
|
|
| BLAKE2b-256 |
f979732d56fab1f6bb0a5ac9b42148bb11d313aec8b9a3b6b3e345c9d0680533
|
File details
Details for the file production_calendar_omega-2.0.0-py3-none-any.whl.
File metadata
- Download URL: production_calendar_omega-2.0.0-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3751f059e2be5aaf2bbde1fde35d71b45d844605c415abd08526e7a0bf06fa3a
|
|
| MD5 |
80b4dd619b3a19cffbaeb06c09e34fc5
|
|
| BLAKE2b-256 |
5893a63c3c76bb382500c42d2ef1db475d9be13bfe5f55edae7d4cc1a538a0c8
|