Skip to content

feat: add convenience re-exports to conductor.client for common symbols#396

Draft
nthmost-orkes wants to merge 1 commit intomainfrom
fix/shallow-imports-client-init
Draft

feat: add convenience re-exports to conductor.client for common symbols#396
nthmost-orkes wants to merge 1 commit intomainfrom
fix/shallow-imports-client-init

Conversation

@nthmost-orkes
Copy link
Copy Markdown
Contributor

@nthmost-orkes nthmost-orkes commented Apr 10, 2026

Summary

Adds convenience re-exports to src/conductor/client/__init__.py so users can use shallow imports instead of deeply nested full paths.

Before:

from conductor.client.configuration.configuration import Configuration
from conductor.client.automator.task_handler import TaskHandler
from conductor.client.orkes_clients import OrkesClients
from conductor.client.workflow.conductor_workflow import ConductorWorkflow
from conductor.client.worker.worker_task import worker_task

After:

from conductor.client import Configuration, TaskHandler, OrkesClients, ConductorWorkflow, worker_task

Why this matters

Shallow, discoverable imports are the established convention in the Python ecosystem — libraries like FastAPI, Pydantic, and Celery all expose their core symbols at the top package level. Developers reasonably expect from conductor.client import Configuration to work and are surprised when it doesn't.

This is also increasingly important for LLM-assisted development. When an LLM generates code using the Conductor SDK, it will naturally reach for the shortest, most obvious import path. Deep paths like conductor.client.configuration.configuration.Configuration are hard to infer correctly and create noisy, error-prone quickstart examples. Exposing common symbols at conductor.client makes LLM-generated code work correctly on the first try.

Symbols re-exported

  • Configuration
  • TaskHandler, TaskRunner
  • OrkesClients
  • ConductorWorkflow, WorkflowExecutor
  • worker_task, WorkerInterface
  • Task, TaskResult, TaskResultStatus
  • StartWorkflowRequest

Closes conductor-oss/getting-started#44

Allows shallow imports like:
  from conductor.client import Configuration, TaskHandler, OrkesClients

instead of the deeply nested full paths previously required.

Resolves conductor-oss/getting-started#44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python SDK: all imports require deeply nested paths with no top-level convenience re-exports

1 participant