feat: migrate to PEP 420 namespace package structure#332
Open
vishalg0wda wants to merge 9 commits intomistralai:mainfrom
Open
feat: migrate to PEP 420 namespace package structure#332vishalg0wda wants to merge 9 commits intomistralai:mainfrom
vishalg0wda wants to merge 9 commits intomistralai:mainfrom
Conversation
Add moduleName: mistralai.sdk to enable implicit namespace packages, allowing mistralai.workflows to be managed separately. Changes: - gen.yaml: Add moduleName config, bump version to 2.0.0 - docs: Add migration plan and Speakeasy feature request templates Breaking change: imports will change from `from mistralai import X` to `from mistralai.sdk import X`
Speakeasy regeneration with moduleName: mistralai.sdk creates: - src/mistralai/sdk/ - new SDK location (namespace subpackage) - src/mistralai/ - namespace root (no __init__.py) Custom code regions migrated: - sdk/chat.py: parse, parse_async, parse_stream, parse_stream_async - sdk/conversations.py: run_async, run_stream_async Extra package imports updated to use mistralai.sdk: - mistralai.sdk.models instead of mistralai.models - mistralai.sdk.types instead of mistralai.types - mistralai.sdk.utils instead of mistralai.utils Breaking change: imports now require mistralai.sdk prefix
Update remaining relative imports (..models, ...types) to absolute imports (mistralai.sdk.models, mistralai.sdk.types) to work with the new PEP 420 namespace package structure.
Update force-include and package-data paths from src/mistralai/py.typed to src/mistralai/sdk/py.typed to match new namespace package layout.
Migrate custom hooks (custom_user_agent, deprecation_warning, tracing) to new sdk/_hooks location. Update import path in tracing.py to use absolute import for mistralai.extra.observability.otel.
- Add pylint disable comments for intentional lazy imports - Use lazy % formatting in logging calls - Remove unnecessary else after break statements
Add namespace_packages and explicit_package_bases settings to resolve duplicate module name errors when running mypy with src in the path.
Update generated lock files and fix minor formatting in conversations.py.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates the SDK to use PEP 420 implicit namespace packages, enabling future
mistralai.workflowssubpackage to be managed separately.Breaking Change: Import paths change from
from mistralai import Xtofrom mistralai.sdk import XChanges
moduleName: mistralai.sdkin gen.yaml for namespace package supportsrc/mistralai/sdk/)extra/packageNew Structure
Test Plan
uv build)Test PyPI Verification
Published and tested at: https://test.pypi.org/project/mistralai/1.11.0/
Migration Guide