Repository navigation
Python: [BREAKING] Remove Python 3.10 support - #9948
Conversation
Code coverage overviewLanguages: Python Python / code-coverage/python
View coverage of the 10 most impacted files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. Updated |
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the Python 3.11 minimum-version update.
No open issues 🎉
What changed in this PR
Completes the breaking removal of Python 3.10 support by enforcing Python 3.11+ across affected packages and samples, and removing obsolete compatibility code.
Changes:
- Raise installation requirements and tooling targets while preserving integration-specific upper bounds.
- Simplify typing imports, TOML parsing, cancellation handling, and version-gated tests, retaining backports still needed on Python 3.11.
- Update support documentation, development settings, and dependency-lock metadata.
This pull request is too complex or risky for automated approval.
| File | Description |
|---|---|
TRANSPARENCY_FAQ.md |
Update Python platform requirements. |
skills/agent-framework-builder-python/SKILL.md |
Document the Python 3.11 minimum. |
python/uv.lock |
Refresh dependency markers and tooling metadata. |
python/scripts/workspace_poe_tasks.py |
Remove Python 3.10 sample-profile selection. |
python/scripts/tests/test_prepare_release.py |
Update release-test project requirements. |
python/scripts/sample_validation/report.py |
Use standard-library Never. |
python/scripts/sample_validation/create_dynamic_workflow_executor.py |
Use standard-library Never. |
python/scripts/dependencies/tests/test_upgrade_dev_dependencies.py |
Update dependency-marker fixtures. |
python/scripts/dependencies/tests/test_dependency_bounds_release.py |
Update minimum-version fixtures and expectations. |
python/scripts/_toml.py |
Use built-in tomllib. |
python/samples/semantic-kernel-migration/processes/nested_process.py |
Raise minimum and update Never import. |
python/samples/semantic-kernel-migration/processes/fan_out_fan_in_process.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/orchestrations/sequential.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/orchestrations/magentic.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/orchestrations/handoff.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/orchestrations/group_chat.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/orchestrations/concurrent_basic.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/openai_responses/03_responses_agent_structured_output.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/openai_responses/02_responses_agent_with_tool.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/openai_responses/01_basic_responses_agent.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/copilot_studio/02_copilot_studio_streaming.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/copilot_studio/01_basic_copilot_studio_agent.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/chat_completion/03_chat_completion_thread_and_stream.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/chat_completion/02_chat_completion_with_tool.py |
Require Python 3.11. |
python/samples/semantic-kernel-migration/chat_completion/01_basic_chat_completion.py |
Require Python 3.11. |
python/samples/SAMPLE_GUIDELINES.md |
Update inline script-metadata guidance. |
python/samples/autogen-migration/single_agent/03_agent_thread_and_stream.py |
Require Python 3.11. |
python/samples/autogen-migration/single_agent/02_agent_with_tool.py |
Require Python 3.11. |
python/samples/autogen-migration/single_agent/01_basic_agent.py |
Require Python 3.11. |
python/samples/05-end-to-end/workflow_evaluation/create_workflow.py |
Use standard-library Never. |
python/samples/05-end-to-end/neo4j_graphrag/main.py |
Require Python 3.11. |
python/samples/05-end-to-end/evaluation/self_reflection/self_reflection.py |
Require Python 3.11. |
python/samples/05-end-to-end/evaluation/red_teaming/red_team_agent_sample.py |
Require Python 3.11. |
python/samples/05-end-to-end/chatkit-integration/app.py |
Require Python 3.11. |
python/samples/05-end-to-end/ag_ui_single_agent/backend/server.py |
Require Python 3.11. |
python/samples/04-hosting/mcp/workflow_app.py |
Require Python 3.11. |
python/samples/04-hosting/mcp/session_app.py |
Require Python 3.11. |
python/samples/04-hosting/mcp/pyproject.toml |
Raise sample project minimum. |
python/samples/04-hosting/mcp/mcpserver_app.py |
Require Python 3.11. |
python/samples/04-hosting/mcp/manual_app.py |
Require Python 3.11. |
python/samples/04-hosting/mcp/agent_app.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/tools/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/observability/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/mcp/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/foundry_toolbox/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/foundry_toolbox_mcp_skills/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/foundry_memory/provision_memory_store.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/foundry_memory/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/files/upload_file.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/files/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/custom_storage/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/responses/azure_search_rag/main.py |
Require Python 3.11. |
python/samples/04-hosting/foundry-hosted-agents/invocations/telegram/tests/test_infrastructure.py |
Group tomllib with standard-library imports. |
python/samples/04-hosting/foundry-hosted-agents/invocations/basic/workflow.py |
Require Python 3.11. |
python/samples/04-hosting/container/hyperlight_codeact/call_server.py |
Require Python 3.11. |
python/samples/04-hosting/af-hosting/local_telegram/pyproject.toml |
Raise sample project minimum. |
python/samples/04-hosting/af-hosting/local_telegram/polling_app.py |
Require Python 3.11. |
python/samples/04-hosting/af-hosting/local_telegram/app.py |
Require Python 3.11. |
python/samples/04-hosting/af-hosting/local_responses/pyproject.toml |
Raise sample project minimum. |
python/samples/04-hosting/af-hosting/local_responses_workflow/pyproject.toml |
Raise sample project minimum. |
python/samples/04-hosting/af-hosting/local_responses_harness/pyproject.toml |
Raise sample project minimum. |
python/samples/03-workflows/visualization/concurrent_with_visualization.py |
Use standard-library Never. |
python/samples/03-workflows/tool-approval/agent_as_tool_vs_workflow_approval.py |
Use standard-library Never. |
python/samples/03-workflows/state-management/state_with_agents.py |
Use standard-library Never. |
python/samples/03-workflows/parallelism/map_reduce_and_visualization.py |
Use standard-library Never. |
python/samples/03-workflows/parallelism/fan_out_fan_in_edges.py |
Use standard-library Never. |
python/samples/03-workflows/parallelism/aggregate_results_of_different_types.py |
Use standard-library Never. |
python/samples/03-workflows/orchestrations/sequential_custom_executors.py |
Use standard-library Never. |
python/samples/03-workflows/observability/executor_io_observation.py |
Use standard-library Never. |
python/samples/03-workflows/human-in-the-loop/agents_with_HITL.py |
Use standard-library Never. |
python/samples/03-workflows/human-in-the-loop/agents_with_approval_requests.py |
Use standard-library Never. |
python/samples/03-workflows/control-flow/workflow_cancellation.py |
Use standard-library Never. |
python/samples/03-workflows/control-flow/switch_case_edge_group.py |
Use standard-library Never. |
python/samples/03-workflows/control-flow/sequential_streaming.py |
Use standard-library Never. |
python/samples/03-workflows/control-flow/sequential_executors.py |
Use standard-library Never. |
python/samples/03-workflows/control-flow/multi_selection_edge_group.py |
Use standard-library Never. |
python/samples/03-workflows/control-flow/intermediate_vs_terminal_outputs.py |
Use standard-library Never. |
python/samples/03-workflows/control-flow/edge_condition.py |
Use standard-library Never. |
python/samples/03-workflows/composition/sub_workflow_request_interception.py |
Use standard-library Never. |
python/samples/03-workflows/composition/sub_workflow_parallel_requests.py |
Use standard-library Never. |
python/samples/03-workflows/composition/sub_workflow_basics.py |
Use standard-library Never. |
python/samples/03-workflows/agents/azure_chat_agents_tool_calls_with_feedback.py |
Use standard-library Never. |
python/samples/03-workflows/_start-here/step1_executors_and_edges.py |
Use standard-library Never. |
python/samples/02-agents/vector_stores/optimized_data_formats.py |
Require Python 3.11. |
python/samples/02-agents/vector_stores/azure_ai_search.py |
Require Python 3.11. |
python/samples/02-agents/providers/mistral/mistral_embeddings.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_with_google_search.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_with_google_maps.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_with_code_execution.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_search_agent.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_image_search_agent.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_embeddings.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_basic.py |
Require Python 3.11. |
python/samples/02-agents/providers/gemini/gemini_advanced.py |
Require Python 3.11. |
python/samples/02-agents/providers/copilotstudio/copilotstudio_with_explicit_settings.py |
Require Python 3.11. |
python/samples/02-agents/observability/workflow_observability.py |
Use standard-library Never. |
python/samples/02-agents/observability/microsoft_opentelemetry_distro.py |
Require Python 3.11. |
python/samples/02-agents/observability/foundry_tracing.py |
Require Python 3.11. |
python/samples/02-agents/observability/foundry_agent_tracing.py |
Require Python 3.11. |
python/samples/02-agents/middleware/atr_validation_middleware.py |
Require Python 3.11. |
python/samples/02-agents/harness/harness_research.py |
Require Python 3.11. |
python/samples/02-agents/harness/harness_data_processing.py |
Require Python 3.11. |
python/samples/02-agents/harness/build_your_own_claw/claw_step04_production_ready/hosted.py |
Require Python 3.11. |
python/samples/02-agents/harness/build_your_own_claw/claw_step04_production_ready/evals.py |
Require Python 3.11. |
python/samples/02-agents/harness/build_your_own_claw/claw_step04_production_ready/console_app.py |
Require Python 3.11. |
python/samples/02-agents/harness/build_your_own_claw/claw_step04_production_ready/agent.py |
Require Python 3.11. |
python/samples/02-agents/harness/build_your_own_claw/claw_step03_scaling_capabilities.py |
Require Python 3.11. |
python/samples/02-agents/harness/build_your_own_claw/claw_step02_working_with_data.py |
Require Python 3.11. |
python/samples/02-agents/harness/build_your_own_claw/claw_step01_meet_your_claw.py |
Require Python 3.11. |
python/samples/02-agents/embeddings/foundry_image_embeddings.py |
Require Python 3.11. |
python/samples/02-agents/embeddings/foundry_embeddings.py |
Require Python 3.11. |
python/samples/02-agents/devui/workflow_spam/workflow.py |
Use standard-library Never. |
python/samples/02-agents/devui/workflow_fanout/workflow.py |
Use standard-library Never. |
python/samples/02-agents/devui/in_memory_mode.py |
Use standard-library Never. |
python/samples/02-agents/context_providers/azure_content_understanding/05_large_doc_file_search.py |
Require Python 3.11. |
python/samples/02-agents/context_providers/azure_content_understanding/04_invoice_processing.py |
Require Python 3.11. |
python/samples/02-agents/context_providers/azure_content_understanding/03_multimodal_chat.py |
Require Python 3.11. |
python/samples/02-agents/context_providers/azure_content_understanding/02_multi_turn_session.py |
Require Python 3.11. |
python/samples/02-agents/context_providers/azure_content_understanding/01_document_qa.py |
Require Python 3.11. |
python/samples/02-agents/compaction/tiktoken_tokenizer.py |
Require Python 3.11. |
python/samples/02-agents/auto_retry.py |
Require Python 3.11. |
python/samples/01-get-started/07_hosting.py |
Require Python 3.11. |
python/samples/01-get-started/05c_first_graph_workflow.py |
Use standard-library Never. |
python/README.md |
Document the enforced installation minimum. |
python/pyrightconfig.samples.py310.json |
Delete the obsolete sample profile. |
python/pyproject.toml |
Raise minimum and tooling targets; preserve timeout APIs. |
python/packages/typesafe/samples/mcp_weather_server.py |
Require Python 3.11. |
python/packages/typesafe/samples/mcp_function_calling.py |
Require Python 3.11. |
python/packages/typesafe/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/typesafe/agent_framework_typesafe/_chat_client.py |
Use standard-library Self. |
python/packages/tools/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/sql-server/README.md |
Remove Python 3.10 installation guidance. |
python/packages/sql-server/pyproject.toml |
Raise package minimum. |
python/packages/sql-server/agent_framework_sql_server/_vector_store.py |
Use standard-library Self. |
python/packages/redis/README.md |
Update support guidance, retaining the upper bound. |
python/packages/redis/pyproject.toml |
Raise minimum while preserving the upper bound. |
python/packages/redis/agent_framework_redis/_context_provider.py |
Remove the Self compatibility branch. |
python/packages/qdrant/README.md |
Remove Python 3.10 installation guidance. |
python/packages/qdrant/pyproject.toml |
Raise package minimum. |
python/packages/purview/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/purview/agent_framework_purview/_settings.py |
Remove obsolete TypedDict import branching. |
python/packages/postgres/tests/test_postgres_integration.py |
Use standard-library Self. |
python/packages/postgres/README.md |
Update support and binary-install version ranges. |
python/packages/postgres/pyproject.toml |
Raise package minimum. |
python/packages/postgres/agent_framework_postgres/_vector_store.py |
Use standard-library Self. |
python/packages/orchestrations/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/orchestrations/agent_framework_orchestrations/_magentic.py |
Move Never; retain backported Sentinel. |
python/packages/orchestrations/agent_framework_orchestrations/_group_chat.py |
Use standard-library Never. |
python/packages/orchestrations/agent_framework_orchestrations/_concurrent.py |
Use standard-library Never. |
python/packages/orchestrations/agent_framework_orchestrations/_base_group_chat_orchestrator.py |
Use standard-library Never. |
python/packages/oracle/README.md |
Remove Python 3.10 installation guidance. |
python/packages/oracle/pyproject.toml |
Raise package minimum. |
python/packages/oracle/agent_framework_oracle/_vector_store.py |
Use standard-library Self. |
python/packages/openai/tests/openai/test_openai_embedding_client_azure.py |
Use exception notes directly. |
python/packages/openai/tests/openai/test_openai_chat_completion_client_azure.py |
Use exception notes directly. |
python/packages/openai/tests/openai/test_openai_chat_client.py |
Assert exception-note preservation unconditionally. |
python/packages/openai/tests/openai/test_openai_chat_client_azure.py |
Use exception notes directly. |
python/packages/openai/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/openai/agent_framework_openai/_shared.py |
Remove obsolete TypedDict import branching. |
python/packages/openai/agent_framework_openai/_chat_completion_client.py |
Remove obsolete TypedDict import branching. |
python/packages/openai/agent_framework_openai/_chat_client.py |
Remove obsolete TypedDict import branching. |
python/packages/ollama/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/ollama/agent_framework_ollama/_chat_client.py |
Remove obsolete TypedDict import branching. |
python/packages/nvidia/pyproject.toml |
Raise package minimum. |
python/packages/monty/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/mongodb/README.md |
Remove Python 3.10 installation guidance. |
python/packages/mongodb/pyproject.toml |
Raise package minimum. |
python/packages/mistral/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/mistral/agent_framework_mistral/_chat_client.py |
Remove obsolete TypedDict import branching. |
python/packages/mem0/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/mem0/agent_framework_mem0/_context_provider.py |
Remove the Self compatibility branch. |
python/packages/lab/README.md |
Remove Python 3.10 installation guidance. |
python/packages/lab/pyproject.toml |
Raise minimum and remove direct tomli dependency. |
python/packages/hyperlight/tests/hyperlight/test_hyperlight_codeact.py |
Remove a Python 3.10-specific Windows skip. |
python/packages/hyperlight/README.md |
Update supported backend Python range. |
python/packages/hyperlight/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/hosting/pyproject.toml |
Raise package minimum. |
python/packages/hosting-telegram/pyproject.toml |
Raise package minimum. |
python/packages/hosting-responses/pyproject.toml |
Raise package minimum. |
python/packages/hosting-mcp/pyproject.toml |
Raise package minimum. |
python/packages/hosting-a2a/pyproject.toml |
Raise package minimum. |
python/packages/github_copilot/tests/test_github_copilot_agent.py |
Remove obsolete SDK import skip. |
python/packages/github_copilot/pyproject.toml |
Remove redundant SDK version marker. |
python/packages/github_copilot/agent_framework_github_copilot/_agent.py |
Remove the Self compatibility branch. |
python/packages/gemini/tests/test_gemini_client.py |
Use standard-library NotRequired. |
python/packages/gemini/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/gemini/agent_framework_gemini/_chat_client.py |
Remove obsolete TypedDict import branching. |
python/packages/foundry/tests/foundry/test_foundry_chat_client.py |
Use exception notes directly. |
python/packages/foundry/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/foundry/agent_framework_foundry/_memory_provider.py |
Remove obsolete typing import branches. |
python/packages/foundry/agent_framework_foundry/_chat_client.py |
Remove obsolete TypedDict import branching. |
python/packages/foundry/agent_framework_foundry/_agent.py |
Remove obsolete TypedDict import branching. |
python/packages/foundry_local/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/foundry_local/agent_framework_foundry_local/_foundry_local_client.py |
Remove obsolete TypedDict import branching. |
python/packages/foundry_hosting/tests/test_responses.py |
Use standard-library Any. |
python/packages/foundry_hosting/tests/test_responses_int.py |
Use standard-library Never. |
python/packages/foundry_hosting/tests/test_invocations.py |
Use standard-library Any. |
python/packages/foundry_hosting/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/foundry_hosting/agent_framework_foundry_hosting/_responses.py |
Use standard-library Any. |
python/packages/foundry_hosting/agent_framework_foundry_hosting/_invocations.py |
Use standard-library Any. |
python/packages/duckdb/README.md |
Update supported installation version ranges. |
python/packages/duckdb/pyproject.toml |
Raise package minimum. |
python/packages/devui/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/devui/agent_framework_devui/_session.py |
Use standard-library NotRequired. |
python/packages/declarative/tests/test_default_mcp_tool_handler.py |
Assert cancellation-message preservation. |
python/packages/declarative/README.md |
Remove Python 3.10 installation guidance. |
python/packages/declarative/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/declarative/agent_framework_declarative/_workflows/_declarative_base.py |
Remove obsolete TypedDict import branching. |
python/packages/declarative/agent_framework_declarative/_loader.py |
Remove obsolete TypedDict import branching. |
python/packages/core/tests/workflow/test_workflow_states.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_workflow_kwargs.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_workflow_context.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_workflow_agent.py |
Use standard-library typing helpers. |
python/packages/core/tests/workflow/test_workflow_agent_intermediate.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_typevar_validation.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_sub_workflow.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_strict_mode_event_labeling.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_output_executors_contract.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_output_designation.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_functional_workflow.py |
Remove obsolete cancellation and TaskGroup skips. |
python/packages/core/tests/workflow/test_function_executor.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_full_conversation.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_executor.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_checkpoint.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_checkpoint_validation.py |
Use standard-library Never. |
python/packages/core/tests/workflow/test_agent_executor_tool_calls.py |
Use standard-library Never. |
python/packages/core/tests/core/test_vectors.py |
Use standard-library TypeVar without defaults. |
python/packages/core/tests/core/test_sessions.py |
Use standard-library Self. |
python/packages/core/tests/core/test_serializable_mixin.py |
Use standard-library Self. |
python/packages/core/tests/core/test_observability.py |
Use standard-library Self. |
python/packages/core/tests/core/test_mcp.py |
Remove obsolete skips and exception-group guards. |
python/packages/core/tests/core/test_mcp_http_auth.py |
Remove version-dependent cancellation expectations. |
python/packages/core/tests/core/test_harness_file_access.py |
Update Windows-fallback test documentation. |
python/packages/core/README.md |
Document the enforced installation minimum. |
python/packages/core/pyproject.toml |
Raise minimum and remove redundant integration marker. |
python/packages/core/agent_framework/_workflows/_workflow_context.py |
Move Never; retain backported TypeVar. |
python/packages/core/agent_framework/_workflows/_workflow_builder.py |
Simplify Self import and update examples. |
python/packages/core/agent_framework/_workflows/_viz.py |
Use Python 3.11 starred subscript syntax. |
python/packages/core/agent_framework/_workflows/_request_info_mixin.py |
Use standard-library overload directly. |
python/packages/core/agent_framework/_workflows/_model_utils.py |
Remove the Self compatibility branch. |
python/packages/core/agent_framework/_workflows/_functional.py |
Simplify cancellation handling; preserve Task/Future distinction. |
python/packages/core/agent_framework/_workflows/_function_executor.py |
Use standard-library overload directly. |
python/packages/core/agent_framework/_workflows/_agent_executor.py |
Move Never; retain backported TypedDict. |
python/packages/core/agent_framework/_vectors.py |
Move Self; retain required typing backports. |
python/packages/core/agent_framework/_types.py |
Move Required; retain backported TypedDict. |
python/packages/core/agent_framework/_settings.py |
Remove obsolete Python 3.10 commentary. |
python/packages/core/agent_framework/_middleware.py |
Remove obsolete TypedDict import branching. |
python/packages/core/agent_framework/_mcp.py |
Simplify typing imports and cancellation detection. |
python/packages/core/agent_framework/_harness/_todo.py |
Use standard-library NotRequired. |
python/packages/core/agent_framework/_harness/_loop.py |
Use standard-library Self. |
python/packages/core/agent_framework/_clients.py |
Remove the Self compatibility branch. |
python/packages/core/agent_framework/_agents.py |
Remove obsolete typing import branches. |
python/packages/copilotstudio/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/claude/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/claude/agent_framework_claude/_agent.py |
Remove obsolete TypedDict import branching. |
python/packages/chatkit/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/bedrock/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/bedrock/agent_framework_bedrock/_chat_client.py |
Remove obsolete TypedDict import branching. |
python/packages/azure-documentdb/README.md |
Remove Python 3.10 installation guidance. |
python/packages/azure-documentdb/pyproject.toml |
Raise package minimum. |
python/packages/azure-documentdb/agent_framework_azure_documentdb/_vector_store.py |
Use standard-library Self. |
python/packages/azure-cosmos/README.md |
Remove Python 3.10 installation guidance. |
python/packages/azure-cosmos/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/azure-cosmos-memory/tests/test_integration.py |
Remove obsolete toolkit import skip. |
python/packages/azure-cosmos-memory/tests/test_emulator.py |
Remove obsolete toolkit import skip. |
python/packages/azure-cosmos-memory/tests/test_context_provider.py |
Remove obsolete toolkit import skip. |
python/packages/azure-cosmos-memory/agent_framework_azure_cosmos_memory/_context_provider.py |
Remove the Self compatibility branch. |
python/packages/azure-contentunderstanding/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/azure-contentunderstanding/agent_framework_azure_contentunderstanding/_context_provider.py |
Remove the Self compatibility branch. |
python/packages/azure-ai-search/README.md |
Remove Python 3.10 installation guidance. |
python/packages/azure-ai-search/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/azure-ai-search/agent_framework_azure_ai_search/_context_provider.py |
Remove the Self compatibility branch. |
python/packages/anthropic/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/anthropic/agent_framework_anthropic/_chat_client.py |
Remove obsolete TypedDict import branching. |
python/packages/ag-ui/tests/ag_ui/test_approval_state.py |
Use standard-library Self. |
python/packages/ag-ui/tests/ag_ui/test_ag_ui_client.py |
Update task-ownership commentary. |
python/packages/ag-ui/README.md |
Remove Python 3.10 installation guidance. |
python/packages/ag-ui/pyproject.toml |
Raise package minimum. |
python/packages/ag-ui/agent_framework_ag_ui/_types.py |
Remove obsolete TypedDict import branching. |
python/packages/ag-ui/agent_framework_ag_ui/_client.py |
Remove obsolete typing import branches. |
python/packages/ag-ui/agent_framework_ag_ui_examples/agents/ui_generator_agent.py |
Remove obsolete TypedDict import branching. |
python/packages/a2a/pyproject.toml |
Raise package minimum and MyPy target. |
python/packages/a2a/agent_framework_a2a/_agent.py |
Remove obsolete TypedDict import branching. |
python/devsetup.sh |
Install supported Python versions. |
python/DEV_SETUP.md |
Update development-version requirements. |
python/CODING_STANDARD.md |
Document the Python 3.11 lint target. |
python/agent_framework_meta/__init__.py |
Remove TOML fallback and redundant suppression. |
python/.vscode/tasks.json |
Remove Python 3.10 selection. |
python/.pre-commit-config.yaml |
Target Python 3.11 in pyupgrade. |
python/.github/skills/python-code-quality/SKILL.md |
Update tooling targets and sample-profile guidance. |
Review effort: Balanced
There was a problem hiding this comment.
MAF Automated Review — Iteration 1
Result: No findings
Scope: full PR (1 commit(s)): 19de0523b957
Model: gpt-5.6-sol
Overview
The Python 3.11 baseline is consistently represented in package metadata, lockfiles, tooling, CI matrices, and documentation, while required post-3.11 typing backports remain intact. The workflow and MCP compatibility cleanup preserves supported-runtime cancellation guards, including the distinction between plain futures and tasks. No Critical, High, or Medium defect is introduced on a changed right-side line in the authoritative pipeline diff.
Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
No publishable findings remained after source verification for this scope.
There was a problem hiding this comment.
MAF Automated Review — Iteration 2
Result: No findings
Scope: 1 net-new commit(s): 48d8dd92c033
Model: gpt-5.6-sol
Overview
This incremental commit applies Python 3.11 pyupgrade rewrites, replacing asyncio.TimeoutError with its identical built-in alias and datetime.timezone.utc with the identical datetime.UTC singleton. Existing timeout handling, cancellation, cleanup, state transitions, and public contracts remain unchanged, with focused tests covering the affected high-risk paths. No publishable concern was established.
Reviewed the supplied incremental change set across correctness, security/reliability, architecture, and failure behavior.
No publishable findings remained after source verification for this scope.
Motivation & Context
Complete the Python 3.10 support removal now that the interpreter has reached upstream end of life. The supported baseline is already Python 3.11+, but package metadata still allows Python 3.10 installation and the codebase retains compatibility branches for it.
Description & Review Guide
TypedDict,TypeVardefaults,override, andSentinel. Existing timeout APIs remain unchanged: disable the newly activated ASYNC109 rule rather than rename their parameters. Changelog and release-note assembly remain with the central release workflow.Taskobjects from plainFutureobjects.Targeted Python 3.11 suites passed for core APIs, MCP, workflows, OpenAI, GitHub Copilot, Cosmos memory, declarative MCP handling, AG-UI, and release/dependency tooling. The full workspace unit suite and live-service integration suites were not run. Representative exact commands, run from
python/:uv run --no-sync python -m pytest packages/core/tests/core/test_vectors.py -m 'not integration' -q --tb=short— passed.uv run --no-sync python -m pytest packages/github_copilot/tests/test_github_copilot_agent.py packages/azure-cosmos-memory/tests/test_context_provider.py packages/declarative/tests/test_default_mcp_tool_handler.py packages/ag-ui/tests/ag_ui/test_ag_ui_client.py packages/core/tests/workflow/test_functional_workflow.py scripts/tests scripts/dependencies/tests -m 'not integration' -q --tb=short— passed.uv run --no-sync --with-requirements tooling/requirements-typing.txt pyright --project packages/core/pyproject.toml— passed with zero errors and warnings. Changed source also passed strict Pyright or its package-specific configuration.uv lock --quiet --checkanduv lock --quiet --check --directory packages/lab— passed.Built core and meta-package wheels both declare
Requires-Python: >=3.11. Manifest checks confirmed Python 3.10 rejection in all 52 project manifests and 85 inline script manifests. Core/OpenAI source lint passed; the broader baseline comparison found no newly introduced lint failures.Related Issue
Fixes #9373
The issue has the
ready-for-implementationlabel. No competing open PR was found for this issue.AI Assistance
AI assistance details: GitHub Copilot assisted with implementation, test updates and execution, documentation, lockfile regeneration, and this PR description.
Contribution Checklist
breaking changelabel (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and title prefix in sync automatically.