Skip to main content

Python bindings for FlowgentraAI - build AI agents with graphs

Project description

FlowgentraAI

FlowgentraAI

Build AI agent workflows with graphs -- Python bindings for the FlowgentraAI Rust engine, powered by PyO3.

PyPI Python License: MIT

Installation

pip install flowgentra-ai

From source (development)

cd flowgentra-ai-py
pip install maturin
maturin develop

Quick Start

Build a graph workflow (recommended)

The primary way to use FlowgentraAI in Python is the StateGraph API. Define nodes as Python functions, wire them with edges, compile, and invoke():

from flowgentra_ai.graph import StateGraph, END
from typing import TypedDict

# 1. Define state shape — TypedDict gives IDE autocomplete
class GreetState(TypedDict):
    name: str
    greeting: str

# 2. Define node functions (receive and return state dict)
def greet(state: GreetState) -> GreetState:
    return {**state, "greeting": f"Hello, {state['name']}!"}

def uppercase(state: GreetState) -> GreetState:
    return {**state, "greeting": state["greeting"].upper()}

# 3. Build the graph
builder = StateGraph(GreetState)
builder.add_node("greet", greet)
builder.add_node("uppercase", uppercase)
builder.set_entry_point("greet")
builder.add_edge("greet", "uppercase")
builder.add_edge("uppercase", END)
graph = builder.compile()

# 4. Invoke with initial state (plain dict)
result = graph.invoke({"name": "World", "greeting": ""})
print(result)
# {"name": "World", "greeting": "HELLO, WORLD!"}

Config-driven agent

For YAML-configured agents with auto-discovered handlers:

from flowgentra_ai.agent import Agent

agent = Agent.from_config_path("config.yaml")
agent.state["input"] = "Hello, world!"
result = agent.run()
print(result.to_dict())

Core Concepts

State

State is a thread-safe dict-like container that flows through your graph:

from flowgentra_ai import State

state = State({"key": "value"})
state["name"] = "FlowgentraAI"
print(state["name"])        # "FlowgentraAI"
print("name" in state)      # True
print(state.to_dict())      # {"key": "value", "name": "FlowgentraAI"}
print(len(state))           # 2

# Serialization
json_str = state.to_json()
state = State.from_json('{"a": 1}')
state = State.from_dict({"a": 1})

Conditional Routing

Route dynamically based on state:

from flowgentra_ai.graph import StateGraph, END
from typing import TypedDict

class RouterState(TypedDict):
    input: str
    category: str
    output: str

def classify(state: RouterState) -> RouterState:
    category = "greeting" if "hello" in state["input"].lower() else "question"
    return {**state, "category": category}

def handle_greeting(state: RouterState) -> RouterState:
    return {**state, "output": "Hi there!"}

def handle_question(state: RouterState) -> RouterState:
    return {**state, "output": "Let me think about that..."}

def router(state: RouterState) -> str:
    return "handle_greeting" if state["category"] == "greeting" else "handle_question"

builder = StateGraph(RouterState)
builder.add_node("classify", classify)
builder.add_node("handle_greeting", handle_greeting)
builder.add_node("handle_question", handle_question)
builder.set_entry_point("classify")
builder.add_conditional_edge("classify", router)
builder.add_edge("handle_greeting", END)
builder.add_edge("handle_question", END)
graph = builder.compile()

result = graph.invoke({"input": "hello world", "category": "", "output": ""})
print(result["output"])  # "Hi there!"

LLM

Call LLM providers directly:

from flowgentra_ai.llm import LLM, Message

# Preferred: construct directly (key auto-resolved from env var)
client = LLM(provider="openai", model="gpt-4o")

# Or pass an explicit key
client = LLM(provider="anthropic", model="claude-3-5-haiku-20241022", api_key="sk-ant-...")

# Simple chat
response = client.chat([
    Message.system("You are a helpful assistant."),
    Message.user("What is Rust?"),
])
print(response.content)

# With token usage tracking
response, usage = client.chat_with_usage([Message.user("Hello!")])
if usage:
    print(f"Tokens: {usage.total_tokens}, Cost: ${usage.estimated_cost('gpt-4o'):.4f}")

# With retry and caching
robust_client = client.with_retry(max_retries=3).cached(max_entries=100)

Multi-Agent Supervisor

Orchestrate multiple agent graphs with 11 strategies:

from flowgentra_ai.supervision import (
    Supervisor, SupervisorNodeConfig, OrchestrationStrategy,
    ParallelMergeStrategy,
)
from flowgentra_ai import State

# Simple mode (router function)
def router(state):
    if "research" in (state.get_string("task") or ""):
        return "researcher"
    return "FINISH"

sup = Supervisor(router)
sup.add_agent("researcher", research_graph)
result = sup.run(State({"task": "research AI trends"}))

# Strategy mode (parallel, sequential, retry_fallback, debate, etc.)
config = SupervisorNodeConfig(
    "coordinator",
    ["researcher", "writer"],
    OrchestrationStrategy.parallel(),
)
config.set_child_timeout_ms(30000)
config.set_merge_strategy(ParallelMergeStrategy.latest())

sup = Supervisor.from_config(config)
sup.add_agent("researcher", research_graph)
sup.add_agent("writer", writer_graph)
result = sup.run(State({"task": "write article"}))

Strategies: sequential, parallel, autonomous, dynamic, round_robin, hierarchical, broadcast, map_reduce, conditional_routing, retry_fallback, debate.

Built-in Node Types

from flowgentra_ai.graph import StateGraph
from typing import TypedDict

class State(TypedDict):
    query: str
    response: str

def fetch_fn(state: dict) -> dict: ...
def slow_fn(state: dict) -> dict: ...
def refine_fn(state: dict) -> dict: ...
client = ...  # an LLM instance

builder = StateGraph(State)

# Retry with backoff
builder.add_retry_node("fetch", fetch_fn, max_retries=3, backoff_ms=1000)

# Timeout enforcement
builder.add_timeout_node("slow_op", slow_fn, timeout_ms=5000)

# LLM-integrated node
builder.add_llm_node("generate", client, prompt_key="query", output_key="response")

# LLM-driven planner (dynamic routing)
builder.add_planner_node("planner", client)

# Iterative evaluation/refinement
from flowgentra_ai.evaluation import EvaluationNodeConfig
config = EvaluationNodeConfig("refine", field_state="draft", min_confidence=0.8)
builder.add_evaluation_node(handler=refine_fn, config=config)

Conversation Memory

Track multi-turn conversations:

from flowgentra_ai.memory import ConversationMemory
from flowgentra_ai.llm import Message

mem = ConversationMemory(max_messages=100)
mem.add_message("thread-1", Message.user("Hello"))
mem.add_message("thread-1", Message.assistant("Hi! How can I help?"))

messages = mem.messages("thread-1")
print(len(messages))  # 2

Or use the high-level MemoryAwareAgent:

from flowgentra_ai.agent import MemoryAwareAgent

agent = MemoryAwareAgent.from_config("config.yaml")
agent.set_thread_id("user_123")
answer = agent.run_turn("What is Rust?")
answer2 = agent.run_turn("What are its main features?")  # remembers context

RAG (Retrieval-Augmented Generation)

from flowgentra_ai.rag import (
    Document, Embeddings, InMemoryVectorStore,
    Retriever, RetrievalConfig,
)
from flowgentra_ai.types import chunk_text, extract_text, estimate_tokens

# Text utilities
chunks = chunk_text("long text...", chunk_size=500, overlap=50)
text = extract_text("document.pdf")  # needs an actual file on disk
tokens = estimate_tokens("some text")

# Vector store + retrieval
emb = Embeddings.openai("sk-...", "text-embedding-3-small")
store = InMemoryVectorStore()

doc = Document("doc1", "Rust is a systems programming language.")
store.index(doc, emb.embed(doc.text))

config = RetrievalConfig.semantic(top_k=5, threshold=0.7)
retriever = Retriever(store, emb, config)
results = retriever.retrieve("What is Rust?")

for r in results:
    print(f"{r.id}: {r.text} (score: {r.score:.3f})")

Prebuilt Agents

Use ready-made agent patterns:

from flowgentra_ai.agent import ZeroShotReAct, ToolSpec
from flowgentra_ai.llm import LLM

tool = ToolSpec("search", "Search the web")
tool.add_parameter("query", "string")
tool.set_required("query")

agent = ZeroShotReAct(
    name="my_agent",
    llm=LLM(provider="openai", model="gpt-4o"),
    system_prompt="You are a helpful assistant.",
    tools=[tool],
)

result = agent.run("What is the weather today?")
print(result)

Human-in-the-Loop

Interrupt graph execution for human review:

from flowgentra_ai.graph import StateGraph, END
from typing import TypedDict

class PublishState(TypedDict):
    topic: str
    draft: str
    approved: bool

def draft_fn(state: dict) -> dict:
    return {"draft": f"An article about {state['topic']}"}

def publish_fn(state: dict) -> dict:
    return {"approved": True}

builder = StateGraph(PublishState)
builder.add_node("draft", draft_fn)
builder.add_node("publish", publish_fn)
builder.set_entry_point("draft")
builder.add_edge("draft", "publish")
builder.add_edge("publish", END)
builder.interrupt_before("publish")  # pause before publishing
builder.set_checkpointer("./checkpoints")
graph = builder.compile()

# First run -- raises AgentExecutionError at the breakpoint before "publish"
try:
    graph.invoke_with_thread("thread-1", {"topic": "AI", "draft": "", "approved": False})
except Exception:
    pass  # paused at the breakpoint; state is checkpointed under "thread-1"

# Human reviews, then resumes
result = graph.resume("thread-1")

# Or resume with modified state
result = graph.resume_with_state("thread-1", {"topic": "AI", "draft": "", "approved": True})

Visualization

Export graphs as DOT or Mermaid diagrams:

graph = builder.compile()
print(graph.to_mermaid())
print(graph.to_dot())
print(graph.node_names())

Tool Registry

Use built-in tools or register custom ones:

from flowgentra_ai.tools import ToolRegistry

registry = ToolRegistry.with_builtins()
print(registry.list_names())  # ["calculator", "search", ...]

result = registry.call_tool("calculator", {"operation": "add", "a": 2, "b": 3})
print(result)  # 5

Model Pricing

from flowgentra_ai.types import model_pricing
from flowgentra_ai.llm import TokenUsage

pricing = model_pricing("gpt-4")  # (input_price, output_price) per million tokens
usage = TokenUsage(1000, 500)
cost = usage.estimated_cost("gpt-4")

Supported LLM Providers

Provider Config name
OpenAI "openai"
Anthropic "anthropic"
Mistral "mistral"
Groq "groq"
Ollama (local) "ollama"
HuggingFace "huggingface"
Azure OpenAI "azure"

Full Documentation

For complete API reference and guides, visit the documentation site.

License

MIT

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

flowgentra_ai-0.3.2.tar.gz (541.7 kB view details)

Uploaded Source

Built Distributions

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

flowgentra_ai-0.3.2-cp313-cp313-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.13Windows x86-64

flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ ARM64

flowgentra_ai-0.3.2-cp313-cp313-macosx_11_0_arm64.whl (13.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

flowgentra_ai-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

flowgentra_ai-0.3.2-cp312-cp312-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.12Windows x86-64

flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ ARM64

flowgentra_ai-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (13.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

flowgentra_ai-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

flowgentra_ai-0.3.2-cp311-cp311-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.11Windows x86-64

flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ ARM64

flowgentra_ai-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (13.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

flowgentra_ai-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

flowgentra_ai-0.3.2-cp310-cp310-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.10Windows x86-64

flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ ARM64

flowgentra_ai-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (13.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

flowgentra_ai-0.3.2-cp310-cp310-macosx_10_12_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

flowgentra_ai-0.3.2-cp39-cp39-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.9Windows x86-64

flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ x86-64

flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ ARM64

flowgentra_ai-0.3.2-cp39-cp39-macosx_11_0_arm64.whl (13.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

flowgentra_ai-0.3.2-cp39-cp39-macosx_10_12_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file flowgentra_ai-0.3.2.tar.gz.

File metadata

  • Download URL: flowgentra_ai-0.3.2.tar.gz
  • Upload date:
  • Size: 541.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for flowgentra_ai-0.3.2.tar.gz
Algorithm Hash digest
SHA256 08caeaa10255fe90384f4c237fa1c24fbab36e296e170310f858bbcdb344b6a8
MD5 806195453f52807ff848ceb7625c4625
BLAKE2b-256 9f9a211115d1ae80e86e71a0158ae519c1d5bbe9f13f25bd89cd06df01387903

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2.tar.gz:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6ec1135e7d1abb198493ca867a59485ca85917ef3ce258f65f12fda07843d086
MD5 a6ec526eece05bf275af162efc4d5b60
BLAKE2b-256 9a9a12ac0b396dea3e1df7475ec65b0c7261ecda86a90e4a8c7eae00ac40d3f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 25ee5acc1d15d2110f69a977f4190eae7ad7ca4999b8abb3201e4cfd3a35a8f9
MD5 2579739a32f010c01049c18c237722a8
BLAKE2b-256 1881f42b324ec99d23f5da0d76eb78a15a8a58960f12b8bb213fb17f2decec9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 9df1457a2f2f37883e6d98aaf3d88308d459b06838a9019323d1bd2b60b4ab2c
MD5 8b4cb57776855d50e5a88030c0d58bd3
BLAKE2b-256 7b46aada67b4450c1887b36ee88837cfe36d32e7039b453ecfd7149891f98669

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp313-cp313-manylinux_2_39_aarch64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d14b9631ccf461ad8e46bc73c35824d27067d0696a7218ea57b6ce2aaaef2ee8
MD5 a0a08e06b045e43dab77e7efe86c8975
BLAKE2b-256 595eb2da34794be190301d327d99709ff7428f4399469a5eb216b09e5a69a5d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 15486dce9357072d4478ab70f0fb8934eb92fa0ec724fd7068a60531825cdf4b
MD5 b1267ed7b40995507520f7e648372671
BLAKE2b-256 958327896651a2755f5b2641297188b973fef621af5329643a906149572c43da

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4c755f003bcaba94f163dc20680c790d1b1c1eea203a08766ad706a3b93c6ba9
MD5 3d5074b3ba47c44458d1f28938cee9fa
BLAKE2b-256 37aa6508227de6e076a1ecd36ad981bc0fa05f06ce04dcf5d61fe9163146df28

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 e7af9176e41a165eefa47ad6335182bfd5444b01ff85b0f3ad3787fadfc3dd58
MD5 e8933c2d4a99572a12a129869a23e441
BLAKE2b-256 63d70e3098f961f245d6e75cdc5ce55935c1a3b30f64c55e90af50c0e50434fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 c960c9db226a85d26c10800c39a82cacf1c429474f676822b707f1af014e717b
MD5 af8f5cfe3591c393f02e6ca4b0a5a784
BLAKE2b-256 2cf02f3bd03e9a63e01748fe58cbe80b4f0e9ce07213005f14335fbaaae48611

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp312-cp312-manylinux_2_39_aarch64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a94fefb2ad5d1581128aa66124af6d58bb9737a804219bc194e348f7ae9c9597
MD5 82897b91ec25f790d6025af412f1b5ef
BLAKE2b-256 d6049d35e1389d7fa3194d519d9c8700a75ff8940f9a199f4ad5a9572f75bd0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d022beb5eb654f21857a7b812608d2d2bc966db761625429c7f5e834921fafe9
MD5 186c77a688d2a2ae63ff1e99f8ab178e
BLAKE2b-256 b803a04c1bd13992077538b30e44f3a94a25498bdcb4f26a3f4eaa6c90d66bb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 955b7adf45dd4a4366dd708b0c6f2d8904634e77badb12176df80f5e7425af40
MD5 89c8e551166270734a445f6c385c27c8
BLAKE2b-256 06dffa3a74a8980cce75b236fed6d6d381f0750384a1152750d2b67eccaf2902

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a91ee4793c6cbca1e18310ffae00756973b69a296185c088a84e2aba72479a60
MD5 a2f421869cdb0b390cfc7c7e8941c6bd
BLAKE2b-256 49631296b0c8e1dcc50d21519a1ebbc2f64fdc4743281efd0e77359790c33795

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 e3b0fa4149200295f8793ea8761e92dbd72385238ab59d4011dd5687d6530977
MD5 db92c1b8876bb232d8a30054a65c386a
BLAKE2b-256 86f307a45eef719340baad685c4e10329dc833d7ae3e1f3e524ef1ce20b02834

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp311-cp311-manylinux_2_39_aarch64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd145bedb0bb98c8f4c828ea3c53ad78f15e76a8966f69599d24b070b8a5cbdb
MD5 15dab39678b609d9040b18b00e725df0
BLAKE2b-256 865946bff46b82ad2c22edd66bb0dc2931f8ee47b3d8dc925d45f3e55b3a0b35

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 94a2d07ffb3aa359903836b6cbe2726d69d91bd782f53098cfa380ef22324cb3
MD5 65e1d84c6928ad5d452785bf69865c65
BLAKE2b-256 22f315d2bbd54447fa6fb4ebc8212f23146953d452c7ccc0bf5bb0616c4cdebe

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fc9c819e850a207cc3e1ac3f788cdf380a4ebaca750fbc082b683b11e6b517d6
MD5 b54314b67e3c2cf1993c0ec589a38c72
BLAKE2b-256 a00ed1fa006f7812177f2579fd7a6ea487d2c41d77ba1026150cc244b3edd84a

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 51f8d8bc021f7c6118b86b2a39108c99b290d19f33693b3da741bc2610483d26
MD5 ecf4bbd3ef015f0a2a6f4958cb435966
BLAKE2b-256 4bd865868691eda9114d9500ce78f606067a0b5c17ff3dbfc5de569ee06d5064

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 4a69bc381049675dfe095b47173f6121d6bda4150ec9b3977414c87453240ddb
MD5 ab28f179a20c65415c921dc3b9c5aec3
BLAKE2b-256 8b7a3281235bdcbcdeef66144ead218436f93bc9ab5d74d43a848c6f35954d5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp310-cp310-manylinux_2_39_aarch64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 347ddf0fe52acc7f0fda0c57598190b81bc9b5def9e6bc2efd22835e1e373b84
MD5 eac3485ef6de9a62066109a42344988d
BLAKE2b-256 89cf3cde556c7d4a57cf17e619b1847d8c9196afc8bea2da41d4ff8c603f5dfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9325175e75c8ecc331ddc9fae477ef40939b9d011cc4fa22934bfba2f5508a5a
MD5 bbc70de95c5e0616beba2977b5d7a2dc
BLAKE2b-256 7c3d5fe385dab8496f75c7566540910a3d4ab13da65275ff4ab0df1f376416d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c295ec2caea5c094055c25e15155bde9a5fa44b05fe4b72fd228b6c2a0ec463a
MD5 1aad563d5effb57cfbbf18159aefdbd8
BLAKE2b-256 acc50377f9be0eaa74ebf169bf81e6709880cc4cb1bf1fb9171c77cb4549358e

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 687e39ef05598b6e1b69b3b5517787b227784bf6b86cf445c4b2cfaa59a8e599
MD5 b69584eb158a56d0b0fb9e9b44418e90
BLAKE2b-256 1bc2d95493db15976bdc139432298a690b2b5cda8c991a221e1efe7126c92c2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 94f56050ce1384c6c6982cce1058f06ae62736906e8bd9e01788d23b2ab5d43a
MD5 4aeba133cda404ca07ca77e0606691c4
BLAKE2b-256 edaa50f4ae3e9cdc48f4550905249d9a0e60dd8b605741726ac7df0952134d89

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp39-cp39-manylinux_2_39_aarch64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aec865a694d08043fefc5b622cb640ebcc9a3b80b3a36cd386c36ab7d2c59c26
MD5 ce531558e3685f9fd7b1b5ae2979345c
BLAKE2b-256 6838b997ba1d6ff9e6ff65c68a0f617678a970d4924d3824800d49b70ff53f05

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flowgentra_ai-0.3.2-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for flowgentra_ai-0.3.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ba2b79898854b11a28ac461d62f7160e44411157264d837ab045d9d5a2c1a9e4
MD5 1b1d82b59687c4776e33b5da3cac1694
BLAKE2b-256 d1fe3d9d9f58fdbdda7d7b74c02f4d2e5a365f2373cc7d47328cf7c0b77a3ffe

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgentra_ai-0.3.2-cp39-cp39-macosx_10_12_x86_64.whl:

Publisher: publish.yml on oussamabenhariz/flowgentra-ai-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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