Skip to main content

Uma biblioteca Python para automação de fluxos lógicos e geração de tabelas verdade.

Project description

pylogicator

Uma biblioteca Python profissional para automação de fluxos lógicos, operações booleanas e construção de tabelas verdade.

Ideal para projetos científicos, educacionais, industriais e empresariais que demandam precisão e flexibilidade.


Principais Funcionalidades

  • Avaliação de Expressões Lógicas: Avalie expressões com variáveis dinâmicas.
  • Fluxo Lógico Automatizado: Execute sequências condicionais para automação de decisões.
  • Geração de Tabela Verdade: Crie tabelas verdade a partir de qualquer expressão lógica.

Instalação

Via PyPI:

pip install pylogicator

Via GitHub (repositório):

git clone https://github.com/Mateusdang/pylogicator.git
cd pylogicator
pip install .

Uso Rápido

from pylogicator import evaluate_expression, logic_flow, truth_table

# Avaliando uma expressão lógica
expr = "(A and B) or not C"
variables = {"A": True, "B": False, "C": False}
resultado = evaluate_expression(expr, variables)
print(resultado)  # True

# Criando um fluxo de lógica automatizado
steps = [
    {"condition": "A and B", "action": lambda ctx: ctx.update({"result": 1})},
    {"condition": "not A", "action": lambda ctx: ctx.update({"result": 0})}
]
context = {"A": True, "B": False}
final = logic_flow(steps, context)
print(final)  # {'A': True, 'B': False, 'result': 0}

# Gerando tabela verdade
tabela = truth_table("A and not B", ["A", "B"])
for linha in tabela:
    print(linha)
# Saída:
# {'A': False, 'B': False, 'result': False}
# {'A': False, 'B': True, 'result': False}
# {'A': True, 'B': False, 'result': True}
# {'A': True, 'B': True, 'result': False}

Exemplos Avançados

1. Avaliação de Expressões Complexas

from pylogicator import evaluate_expression

expr = "((A or B) and (not C or D)) and (E == False)"
variables = {"A": True, "B": False, "C": True, "D": True, "E": False}
print(evaluate_expression(expr, variables))  # True

2. Fluxo Lógico com Funções Customizadas

from pylogicator import logic_flow

def acao_personalizada(ctx):
    ctx['resultado'] = ctx.get('valor', 0) * 2

steps = [
    {"condition": "A and (valor > 5)", "action": acao_personalizada},
    {"condition": "not A", "action": lambda ctx: ctx.update({"resultado": -1})}
]
context = {"A": True, "valor": 10}
final = logic_flow(steps, context)
print(final)  # {'A': True, 'valor': 10, 'resultado': 20}

3. Geração de Tabela Verdade com Análise

from pylogicator import truth_table
import pandas as pd  # Exemplo de integração

expr = "(A or B) and not (C and D)"
variables = ["A", "B", "C", "D"]
tabela = truth_table(expr, variables)
df = pd.DataFrame(tabela)
print(df)
# Filtrar apenas casos onde resultado é True
print(df[df['result'] == True])

4. Uso em Sistemas de Decisão Inteligente

from pylogicator import evaluate_expression

def tomar_decisao(entrada):
    expr = "(temperatura > 30 and umidade < 50) or alerta"
    return evaluate_expression(expr, entrada)

sensor = {"temperatura": 32, "umidade": 45, "alerta": False}
print(tomar_decisao(sensor))  # True

5. Simulação de Circuito Digital

from pylogicator import evaluate_expression, truth_table

# Porta lógica XOR
expr = "A != B"
print(evaluate_expression(expr, {"A": True, "B": False}))  # True

# Gerar tabela verdade para XOR
print(truth_table(expr, ["A", "B"]))

Exemplos de Aplicação

  • Automação de testes lógicos em software.
  • Simulação de circuitos digitais e eletrônicos.
  • Ensino de lógica computacional.
  • Construção de sistemas de decisão inteligente.

Documentação das Funções

evaluate_expression(expr: str, variables: dict) -> bool

Avalia uma expressão lógica booleana utilizando variáveis dinâmicas.

Parâmetros:

  • expr: Expressão lógica (ex: "A and not B").
  • variables: Dicionário com variáveis booleanas (ex: {"A": True, "B": False}).

Retorno:

  • Resultado booleano da expressão.

logic_flow(steps: list, context: dict) -> dict

Executa uma sequência condicional de ações baseada em fluxo lógico.

Parâmetros:

  • steps: Lista de dicionários contendo "condition" (expressão lógica) e "action" (função a ser executada).
  • context: Dicionário de contexto (variáveis de entrada).

Retorno:

  • Contexto atualizado após execução dos passos.

truth_table(expr: str, variables: list) -> list

Gera a tabela verdade para uma expressão lógica.

Parâmetros:

  • expr: Expressão lógica (ex: "A and not B").
  • variables: Lista de variáveis presentes na expressão (ex: ["A", "B"]).

Retorno:

  • Lista de dicionários, cada linha representa uma combinação de valores das variáveis e o resultado da expressão.

Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.


Autor

Desenvolvido por Mateus Dang
GitHub: @Mateusdang


Referências

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

logicflowengine-0.1.1.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

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

logicflowengine-0.1.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file logicflowengine-0.1.1.tar.gz.

File metadata

  • Download URL: logicflowengine-0.1.1.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for logicflowengine-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0576974078eb8a619ecec23a0416e1d2ad92ffa0e618971c3c00e2f24a93d67f
MD5 346260bec1e46c2385251f78ba690918
BLAKE2b-256 94505b49a9795683fe0e9f88dba266944a6727b937bb751a9991a02f6539731a

See more details on using hashes here.

File details

Details for the file logicflowengine-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for logicflowengine-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5373630f697d571f88a0a99f27edbd7e4edf82076d074fd6c703424c1c2faaf6
MD5 fbc9bcf50a59f9d33c7a86063dcd01c6
BLAKE2b-256 33f6eef88fdbfabcd84c42630f6c4200706c73ff634b82e940a52cd3d2ff6bff

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