Baixar:
Notepad
assistente_prazo_local
#!/usr/bin/env python3
"""Prototipo local e deterministico do assistente Hermex Prazo Certo."""
import argparse
import json
REGIOES_POR_UF = {
"AC": "Norte", "AL": "Nordeste", "AP": "Norte", "AM": "Norte",
"BA": "Nordeste", "CE": "Nordeste", "DF": "Centro-Oeste",
"ES": "Sudeste", "GO": "Centro-Oeste", "MA": "Nordeste",
"MT": "Centro-Oeste", "MS": "Centro-Oeste", "MG": "Sudeste",
"PA": "Norte", "PB": "Nordeste", "PR": "Sul", "PE": "Nordeste",
"PI": "Nordeste", "RJ": "Sudeste", "RN": "Nordeste", "RS": "Sul",
"RO": "Norte", "RR": "Norte", "SC": "Sul", "SP": "Sudeste",
"SE": "Nordeste", "TO": "Norte"
}
REGRAS_REGIONAIS = {
"Sudeste": (2, 5),
"Sul": (3, 6),
"Centro-Oeste": (4, 7),
"Nordeste": (6, 12),
"Norte": (8, 16),
}
REGRAS_ESTADUAIS = {"SP": (2, 4)}
def consultar_prazo(uf: str, frete: str = "Padrao") -> dict:
uf = uf.strip().upper()
frete_normalizado = frete.strip().lower()
if uf not in REGIOES_POR_UF:
return {"erro": "UF invalida ou ausente. Informe uma sigla brasileira valida."}
if frete_normalizado not in {"padrao", "padrão"}:
return {
"estado": uf,
"regiao": REGIOES_POR_UF[uf],
"tipo_frete": frete,
"erro": "Nao ha regra validada para este tipo de frete. Consulte o pos-vendas."
}
regiao = REGIOES_POR_UF[uf]
minimo, maximo = REGRAS_ESTADUAIS.get(uf, REGRAS_REGIONAIS[regiao])
return {
"estado": uf,
"regiao": regiao,
"tipo_frete": "Padrao",
"prazo_minimo_dias_uteis": minimo,
"prazo_maximo_dias_uteis": maximo,
"observacoes": "Estimativa apos a confirmacao do envio; a previsao individual depende do rastreio."
}
def main() -> None:
parser = argparse.ArgumentParser(description="Consulta local de prazos da Hermex Log")
parser.add_argument("--estado", required=True, help="Sigla da UF, por exemplo SP, BA ou AM")
parser.add_argument("--frete", default="Padrao", help="Tipo de frete")
args = parser.parse_args()
print(json.dumps(consultar_prazo(args.estado, args.frete), ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()
PROGRAM
#!/usr/bin/env python3
"""Prototipo local e deterministico do assistente Hermex Prazo Certo."""
import argparse
import json
REGIOES_POR_UF = {
"AC": "Norte", "AL": "Nordeste", "AP": "Norte", "AM": "Norte",
"BA": "Nordeste", "CE": "Nordeste", "DF": "Centro-Oeste",
"ES": "Sudeste", "GO": "Centro-Oeste", "MA": "Nordeste",
"MT": "Centro-Oeste", "MS": "Centro-Oeste", "MG": "Sudeste",
"PA": "Norte", "PB": "Nordeste", "PR": "Sul", "PE": "Nordeste",
"PI": "Nordeste", "RJ": "Sudeste", "RN": "Nordeste", "RS": "Sul",
"RO": "Norte", "RR": "Norte", "SC": "Sul", "SP": "Sudeste",
"SE": "Nordeste", "TO": "Norte"
}
REGRAS_REGIONAIS = {
"Sudeste": (2, 5),
"Sul": (3, 6),
"Centro-Oeste": (4, 7),
"Nordeste": (6, 12),
"Norte": (8, 16),
}
REGRAS_ESTADUAIS = {"SP": (2, 4)}
def consultar_prazo(uf: str, frete: str = "Padrao") -> dict:
uf = uf.strip().upper()
frete_normalizado = frete.strip().lower()
if uf not in REGIOES_POR_UF:
return {"erro": "UF invalida ou ausente. Informe uma sigla brasileira valida."}
if frete_normalizado not in {"padrao", "padrão"}:
return {
"estado": uf,
"regiao": REGIOES_POR_UF[uf],
"tipo_frete": frete,
"erro": "Nao ha regra validada para este tipo de frete. Consulte o pos-vendas."
}
regiao = REGIOES_POR_UF[uf]
minimo, maximo = REGRAS_ESTADUAIS.get(uf, REGRAS_REGIONAIS[regiao])
return {
"estado": uf,
"regiao": regiao,
"tipo_frete": "Padrao",
"prazo_minimo_dias_uteis": minimo,
"prazo_maximo_dias_uteis": maximo,
"observacoes": "Estimativa apos a confirmacao do envio; a previsao individual depende do rastreio."
}
def main() -> None:
parser = argparse.ArgumentParser(description="Consulta local de prazos da Hermex Log")
parser.add_argument("--estado", required=True, help="Sigla da UF, por exemplo SP, BA ou AM")
parser.add_argument("--frete", default="Padrao", help="Tipo de frete")
args = parser.parse_args()
print(json.dumps(consultar_prazo(args.estado, args.frete), ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()