# 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:**
```bash
pip install logicflowengine==0.1.2
```
**Via GitHub (repositório):**
```bash
git clone https://github.com/Mateusdang/logicflowengine.git
cd logicflowengine
pip install .
```
---
## Uso Rápido
```python
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
```python
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
```python
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
```python
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
```python
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
```python
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](https://github.com/Mateusdang/logicflowengine/blob/main/LICENSE.md) para mais detalhes.
---
## Autor
Desenvolvido por **Mateus Dang**
[GitHub: @Mateusdang](https://github.com/Mateusdang)
---
## Referências
- [Documentação Python](https://docs.python.org/pt-br/3/)
- [PyPI](https://pypi.org/project/logicflowengine/0.1.1/)
Raw data
{
"_id": null,
"home_page": "https://github.com/Mateusdang/logicflowengine",
"name": "logicflowengine",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "l\u00f3gica automa\u00e7\u00e3o python fluxo tabela verdade",
"author": "Mateus Dang",
"author_email": "mteus2030lol@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/49/a5/8aaece0e2a72145f2c6174e9f8aa589fba5776d60a36784ae287530e35fe/logicflowengine-0.1.2.tar.gz",
"platform": null,
"description": "# logicflowengine\r\n\r\n**Uma biblioteca Python profissional para automa\u00e7\u00e3o de fluxos l\u00f3gicos, opera\u00e7\u00f5es booleanas e constru\u00e7\u00e3o de tabelas verdade.**\r\n\r\nIdeal para projetos cient\u00edficos, educacionais, industriais e empresariais que demandam precis\u00e3o e flexibilidade.\r\n\r\n---\r\n\r\n## Principais Funcionalidades\r\n\r\n- **Avalia\u00e7\u00e3o de Express\u00f5es L\u00f3gicas:** Avalie express\u00f5es com vari\u00e1veis din\u00e2micas.\r\n- **Fluxo L\u00f3gico Automatizado:** Execute sequ\u00eancias condicionais para automa\u00e7\u00e3o de decis\u00f5es.\r\n- **Gera\u00e7\u00e3o de Tabela Verdade:** Crie tabelas verdade a partir de qualquer express\u00e3o l\u00f3gica.\r\n\r\n---\r\n\r\n## Instala\u00e7\u00e3o\r\n\r\n**Via PyPI:**\r\n```bash\r\npip install logicflowengine==0.1.2\r\n```\r\n\r\n**Via GitHub (reposit\u00f3rio):**\r\n```bash\r\ngit clone https://github.com/Mateusdang/logicflowengine.git\r\ncd logicflowengine\r\npip install .\r\n```\r\n\r\n---\r\n\r\n## Uso R\u00e1pido\r\n\r\n```python\r\nfrom logicflowengine import evaluate_expression, logic_flow, truth_table\r\n\r\n# Avaliando uma express\u00e3o l\u00f3gica\r\nexpr = \"(A and B) or not C\"\r\nvariables = {\"A\": True, \"B\": False, \"C\": False}\r\nresultado = evaluate_expression(expr, variables)\r\nprint(resultado) # True\r\n\r\n# Criando um fluxo de l\u00f3gica automatizado\r\nsteps = [\r\n {\"condition\": \"A and B\", \"action\": lambda ctx: ctx.update({\"result\": 1})},\r\n {\"condition\": \"not A\", \"action\": lambda ctx: ctx.update({\"result\": 0})}\r\n]\r\ncontext = {\"A\": True, \"B\": False}\r\nfinal = logic_flow(steps, context)\r\nprint(final) # {'A': True, 'B': False, 'result': 0}\r\n\r\n# Gerando tabela verdade\r\ntabela = truth_table(\"A and not B\", [\"A\", \"B\"])\r\nfor linha in tabela:\r\n print(linha)\r\n# Sa\u00edda:\r\n# {'A': False, 'B': False, 'result': False}\r\n# {'A': False, 'B': True, 'result': False}\r\n# {'A': True, 'B': False, 'result': True}\r\n# {'A': True, 'B': True, 'result': False}\r\n```\r\n\r\n---\r\n\r\n## Exemplos Avan\u00e7ados\r\n\r\n### 1. Avalia\u00e7\u00e3o de Express\u00f5es Complexas\r\n\r\n```python\r\nfrom logicflowengine import evaluate_expression\r\n\r\nexpr = \"((A or B) and (not C or D)) and (E == False)\"\r\nvariables = {\"A\": True, \"B\": False, \"C\": True, \"D\": True, \"E\": False}\r\nprint(evaluate_expression(expr, variables)) # True\r\n```\r\n\r\n### 2. Fluxo L\u00f3gico com Fun\u00e7\u00f5es Customizadas\r\n\r\n```python\r\nfrom logicflowengine import logic_flow\r\n\r\ndef acao_personalizada(ctx):\r\n ctx['resultado'] = ctx.get('valor', 0) * 2\r\n\r\nsteps = [\r\n {\"condition\": \"A and (valor > 5)\", \"action\": acao_personalizada},\r\n {\"condition\": \"not A\", \"action\": lambda ctx: ctx.update({\"resultado\": -1})}\r\n]\r\ncontext = {\"A\": True, \"valor\": 10}\r\nfinal = logic_flow(steps, context)\r\nprint(final) # {'A': True, 'valor': 10, 'resultado': 20}\r\n```\r\n\r\n### 3. Gera\u00e7\u00e3o de Tabela Verdade com An\u00e1lise\r\n\r\n```python\r\nfrom logicflowengine import truth_table\r\nimport pandas as pd # Exemplo de integra\u00e7\u00e3o\r\n\r\nexpr = \"(A or B) and not (C and D)\"\r\nvariables = [\"A\", \"B\", \"C\", \"D\"]\r\ntabela = truth_table(expr, variables)\r\ndf = pd.DataFrame(tabela)\r\nprint(df)\r\n# Filtrar apenas casos onde resultado \u00e9 True\r\nprint(df[df['result'] == True])\r\n```\r\n\r\n### 4. Uso em Sistemas de Decis\u00e3o Inteligente\r\n\r\n```python\r\nfrom logicflowengine import evaluate_expression\r\n\r\ndef tomar_decisao(entrada):\r\n expr = \"(temperatura > 30 and umidade < 50) or alerta\"\r\n return evaluate_expression(expr, entrada)\r\n\r\nsensor = {\"temperatura\": 32, \"umidade\": 45, \"alerta\": False}\r\nprint(tomar_decisao(sensor)) # True\r\n```\r\n\r\n### 5. Simula\u00e7\u00e3o de Circuito Digital\r\n\r\n```python\r\nfrom logicflowengine import evaluate_expression, truth_table\r\n\r\n# Porta l\u00f3gica XOR\r\nexpr = \"A != B\"\r\nprint(evaluate_expression(expr, {\"A\": True, \"B\": False})) # True\r\n\r\n# Gerar tabela verdade para XOR\r\nprint(truth_table(expr, [\"A\", \"B\"]))\r\n```\r\n\r\n---\r\n\r\n## Exemplos de Aplica\u00e7\u00e3o\r\n\r\n- Automa\u00e7\u00e3o de testes l\u00f3gicos em software.\r\n- Simula\u00e7\u00e3o de circuitos digitais e eletr\u00f4nicos.\r\n- Ensino de l\u00f3gica computacional.\r\n- Constru\u00e7\u00e3o de sistemas de decis\u00e3o inteligente.\r\n\r\n---\r\n\r\n## Documenta\u00e7\u00e3o das Fun\u00e7\u00f5es\r\n\r\n### `evaluate_expression(expr: str, variables: dict) -> bool`\r\nAvalia uma express\u00e3o l\u00f3gica booleana utilizando vari\u00e1veis din\u00e2micas.\r\n\r\n**Par\u00e2metros:**\r\n- `expr`: Express\u00e3o l\u00f3gica (ex: `\"A and not B\"`).\r\n- `variables`: Dicion\u00e1rio com vari\u00e1veis booleanas (ex: `{\"A\": True, \"B\": False}`).\r\n\r\n**Retorno:** \r\n- Resultado booleano da express\u00e3o.\r\n\r\n---\r\n\r\n### `logic_flow(steps: list, context: dict) -> dict`\r\nExecuta uma sequ\u00eancia condicional de a\u00e7\u00f5es baseada em fluxo l\u00f3gico.\r\n\r\n**Par\u00e2metros:**\r\n- `steps`: Lista de dicion\u00e1rios contendo `\"condition\"` (express\u00e3o l\u00f3gica) e `\"action\"` (fun\u00e7\u00e3o a ser executada).\r\n- `context`: Dicion\u00e1rio de contexto (vari\u00e1veis de entrada).\r\n\r\n**Retorno:** \r\n- Contexto atualizado ap\u00f3s execu\u00e7\u00e3o dos passos.\r\n\r\n---\r\n\r\n### `truth_table(expr: str, variables: list) -> list`\r\nGera a tabela verdade para uma express\u00e3o l\u00f3gica.\r\n\r\n**Par\u00e2metros:**\r\n- `expr`: Express\u00e3o l\u00f3gica (ex: `\"A and not B\"`).\r\n- `variables`: Lista de vari\u00e1veis presentes na express\u00e3o (ex: `[\"A\", \"B\"]`).\r\n\r\n**Retorno:** \r\n- Lista de dicion\u00e1rios, cada linha representa uma combina\u00e7\u00e3o de valores das vari\u00e1veis e o resultado da express\u00e3o.\r\n\r\n---\r\n\r\n## Licen\u00e7a\r\n\r\n\r\nEste projeto est\u00e1 licenciado sob a Licen\u00e7a MIT. Veja o arquivo [LICENSE](https://github.com/Mateusdang/logicflowengine/blob/main/LICENSE.md) para mais detalhes.\r\n\r\n---\r\n\r\n## Autor\r\n\r\nDesenvolvido por **Mateus Dang** \r\n[GitHub: @Mateusdang](https://github.com/Mateusdang)\r\n\r\n---\r\n\r\n\r\n## Refer\u00eancias\r\n\r\n- [Documenta\u00e7\u00e3o Python](https://docs.python.org/pt-br/3/)\r\n- [PyPI](https://pypi.org/project/logicflowengine/0.1.1/)\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Uma biblioteca Python para automa\u00e7\u00e3o de fluxos l\u00f3gicos e gera\u00e7\u00e3o de tabelas verdade.",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/Mateusdang/logicflowengine"
},
"split_keywords": [
"l\u00f3gica",
"automa\u00e7\u00e3o",
"python",
"fluxo",
"tabela",
"verdade"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6d9dfb053c5f4aaa79666a7c9f3cb52aafe72d0f2d5b1966849fadd0bc3e1f95",
"md5": "766260b6e2da297c0db88303faadab6b",
"sha256": "99c02d3a0d1d9d385eaa5fc8ea1fe041aebdb1246575487c2d90cef309239822"
},
"downloads": -1,
"filename": "logicflowengine-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "766260b6e2da297c0db88303faadab6b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 5450,
"upload_time": "2025-07-19T11:54:48",
"upload_time_iso_8601": "2025-07-19T11:54:48.080774Z",
"url": "https://files.pythonhosted.org/packages/6d/9d/fb053c5f4aaa79666a7c9f3cb52aafe72d0f2d5b1966849fadd0bc3e1f95/logicflowengine-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "49a58aaece0e2a72145f2c6174e9f8aa589fba5776d60a36784ae287530e35fe",
"md5": "d2aaa6a6c93e092f13c4e8a92a5e5f5a",
"sha256": "2967ca9fe18f716cb9fbd4b483519d7e4d82386814bc1e498b17d8e29e04a841"
},
"downloads": -1,
"filename": "logicflowengine-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "d2aaa6a6c93e092f13c4e8a92a5e5f5a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4853,
"upload_time": "2025-07-19T11:54:49",
"upload_time_iso_8601": "2025-07-19T11:54:49.351958Z",
"url": "https://files.pythonhosted.org/packages/49/a5/8aaece0e2a72145f2c6174e9f8aa589fba5776d60a36784ae287530e35fe/logicflowengine-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-19 11:54:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Mateusdang",
"github_project": "logicflowengine",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "logicflowengine"
}