Skip to main content

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

PyPI version License: MIT Python: 3.8+

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 Dataclasses para 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

production_calendar_omega-2.0.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

production_calendar_omega-2.0.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file production_calendar_omega-2.0.0.tar.gz.

File metadata

File hashes

Hashes for production_calendar_omega-2.0.0.tar.gz
Algorithm Hash digest
SHA256 27bb25e809747971a845bbf15389c10b8cbefe4fc20975af12e2273b10710e4e
MD5 3b2265433775bd877c1a476b7d130625
BLAKE2b-256 f979732d56fab1f6bb0a5ac9b42148bb11d313aec8b9a3b6b3e345c9d0680533

See more details on using hashes here.

File details

Details for the file production_calendar_omega-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for production_calendar_omega-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3751f059e2be5aaf2bbde1fde35d71b45d844605c415abd08526e7a0bf06fa3a
MD5 80b4dd619b3a19cffbaeb06c09e34fc5
BLAKE2b-256 5893a63c3c76bb382500c42d2ef1db475d9be13bfe5f55edae7d4cc1a538a0c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page