Skip to main content

Requirements

Python Version

Python 3.11+ requiredWe use modern Python features including:
  • Native async/await
  • Type hints and generics
  • Pattern matching
  • Exception groups

Operating System

Cross-platform supportTested on:
  • Linux (Ubuntu 20.04+, Debian 10+)
  • macOS (11.0+)
  • Windows (10+, WSL recommended)

Installation Methods

Basic Installation

Install the core package with minimal dependencies:
pip install nadoo-flow-core

With Optional Features

Install with CEL (Common Expression Language) support for advanced conditional logic:
pip install "nadoo-flow-core[cel]"
This enables:
  • Complex conditional routing
  • Dynamic variable evaluation
  • Rule-based workflows

Development Installation

For contributing or local development:
# Clone the repository
git clone https://github.com/nadoo-ai/nadoo-ai-kb.git
cd nadoo-ai-kb/packages/nadoo-flow-core

# Install in editable mode with dev dependencies
pip install -e ".[dev]"

# Or using poetry
poetry install --with dev

Dependency Overview

Nadoo Flow Core has minimal dependencies by design:

Core Dependencies

PackageVersionPurpose
pydantic>=2.7.4Type validation and serialization
typing-extensions>=4.7.0Python 3.11 compatibility

Optional Dependencies

FeaturePackageVersionPurpose
CELcelpy>=1.0.0Expression evaluation
Redisredis>=4.5.0Distributed storage
Devpytest>=8.0.0Testing framework
Devpytest-asyncio>=0.23.0Async test support
Devblack>=23.0.0Code formatting
Devruff>=0.1.0Fast linting
Devmypy>=1.7.0Type checking

Environment Setup

# Create virtual environment
python -m venv nadoo-env

# Activate on Linux/macOS
source nadoo-env/bin/activate

# Activate on Windows
nadoo-env\Scripts\activate

# Install nadoo-flow-core
pip install nadoo-flow-core
# Create conda environment
conda create -n nadoo python=3.11

# Activate environment
conda activate nadoo

# Install nadoo-flow-core
pip install nadoo-flow-core
# Initialize new project
poetry new my-workflow-project
cd my-workflow-project

# Add nadoo-flow-core
poetry add nadoo-flow-core

# Activate shell
poetry shell

Verification

After installation, verify everything is working:
# test_installation.py
import asyncio
from nadoo_flow import ChainableNode, NodeResult, __version__

class TestNode(ChainableNode):
    async def execute(self, node_context, workflow_context):
        return NodeResult(
            success=True,
            output={"message": "Installation successful!"}
        )

async def main():
    print(f"Nadoo Flow Core version: {__version__}")

    node = TestNode(
        node_id="test",
        node_type="test",
        name="Test Node"
    )

    result = await node.run({})
    print(f"Test result: {result}")

if __name__ == "__main__":
    asyncio.run(main())
Run the test:
python test_installation.py
Expected output:
Nadoo Flow Core version: 0.1.0
Test result: {'message': 'Installation successful!'}

IDE Setup

VS Code

Install recommended extensions for the best development experience:
{
  "recommendations": [
    "ms-python.python",
    "ms-python.vscode-pylance",
    "ms-python.black-formatter",
    "charliermarsh.ruff",
    "tamasfe.even-better-toml"
  ]
}

PyCharm

  1. Open project settings: File > Settings > Project > Python Interpreter
  2. Select your virtual environment
  3. Enable type checking: Editor > Inspections > Python > Type checker

Docker Installation

For containerized deployments:
# Dockerfile
FROM python:3.11-slim

WORKDIR /app

# Install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copy application
COPY . .

# Run application
CMD ["python", "-m", "your_app"]
requirements.txt
nadoo-flow-core>=0.1.0
Build and run:
docker build -t nadoo-workflow .
docker run nadoo-workflow

Troubleshooting

Solution: Ensure you’ve activated your virtual environment and installed the package:
pip list | grep nadoo-flow-core
If not listed, reinstall:
pip install --upgrade nadoo-flow-core
Solution: Nadoo Flow Core requires Python 3.11+:
python --version
If older, upgrade Python or use pyenv/conda to manage versions.
Solution: Use a clean virtual environment:
python -m venv fresh-env
source fresh-env/bin/activate  # Linux/macOS
pip install nadoo-flow-core
Solution: Never use sudo with pip. Instead, use:
pip install --user nadoo-flow-core
# Or better, use a virtual environment

Platform-Specific Notes

macOS

On macOS with Apple Silicon (M1/M2), some dependencies may require Rosetta:
softwareupdate --install-rosetta

Windows

On Windows, we recommend using WSL2 for the best compatibility:
wsl --install
Then follow the Linux installation instructions inside WSL.

Linux

On some Linux distributions, you may need to install Python development headers:
# Ubuntu/Debian
sudo apt-get install python3.11-dev

# RHEL/CentOS/Fedora
sudo yum install python3.11-devel

What’s Next?