Uma biblioteca Python para automação de fluxos lógicos e geração de tabelas verdade.
Project description
logicflowengine
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 logicflowengine==0.1.2
Via GitHub (repositório):
git clone https://github.com/Mateusdang/logicflowengine.git
cd logicflowengine
pip install .
Uso Rápido
from logicflowengine 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 logicflowengine 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 logicflowengine 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 logicflowengine 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 logicflowengine 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 logicflowengine 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
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 logicflowengine-0.1.2.tar.gz.
File metadata
- Download URL: logicflowengine-0.1.2.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2967ca9fe18f716cb9fbd4b483519d7e4d82386814bc1e498b17d8e29e04a841
|
|
| MD5 |
d2aaa6a6c93e092f13c4e8a92a5e5f5a
|
|
| BLAKE2b-256 |
49a58aaece0e2a72145f2c6174e9f8aa589fba5776d60a36784ae287530e35fe
|
File details
Details for the file logicflowengine-0.1.2-py3-none-any.whl.
File metadata
- Download URL: logicflowengine-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99c02d3a0d1d9d385eaa5fc8ea1fe041aebdb1246575487c2d90cef309239822
|
|
| MD5 |
766260b6e2da297c0db88303faadab6b
|
|
| BLAKE2b-256 |
6d9dfb053c5f4aaa79666a7c9f3cb52aafe72d0f2d5b1966849fadd0bc3e1f95
|