mirror of
https://github.com/microsoft/semantic-kernel.git
synced 2026-10-12 11:19:56 +00:00
Updates the requirements on [pydantic](https://github.com/pydantic/pydantic) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/releases">pydantic's releases</a>.</em></p> <blockquote> <h2>v2.13.0 2026-04-13</h2> <h2>v2.13.0 (2026-04-13)</h2> <p>The highlights of the v2.13 release are available in the <a href="https://pydantic.dev/articles/pydantic-v2-13-release">blog post</a>. Several minor changes (considered non-breaking changes according to our <a href="https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2">versioning policy</a>) are also included in this release. Make sure to look into them before upgrading.</p> <p>This release contains the updated <code>pydantic.v1</code> namespace, matching version 1.10.26 which includes support for Python 3.14.</p> <h3>What's Changed</h3> <p>See the beta releases for all changes sinces 2.12.</p> <h4>Packaging</h4> <ul> <li>Add zizmor for GitHub Actions workflow linting by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13039">#13039</a></li> <li>Update jiter to v0.14.0 to fix a segmentation fault on musl Linux by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13064">#13064</a></li> </ul> <h4>New Features</h4> <ul> <li>Allow default factories of private attributes to take validated model data by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13013">#13013</a></li> </ul> <h4>Changes</h4> <ul> <li>Warn when serializing fixed length tuples with too few items by <a href="https://github.com/arvindsaripalli"><code>@arvindsaripalli</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13016">#13016</a></li> </ul> <h4>Fixes</h4> <ul> <li>Change type of <code>Any</code> when synthesizing <code>_build_sources</code> for <code>BaseSettings.__init__()</code> signature in the mypy plugin by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13049">#13049</a></li> <li>Fix model equality when using runtime <code>extra</code> configuration by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13062">#13062</a></li> </ul> <h3>New Contributors</h3> <ul> <li><a href="https://github.com/arvindsaripalli"><code>@arvindsaripalli</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic/pull/13016">#13016</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0">https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/blob/main/HISTORY.md">pydantic's changelog</a>.</em></p> <blockquote> <h2>v2.13.0 (2026-04-13)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.0">GitHub release</a></p> <p>The highlights of the v2.13 release are available in the <a href="https://pydantic.dev/articles/pydantic-v2-13-release">blog post</a>. Several minor changes (considered non-breaking changes according to our <a href="https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2">versioning policy</a>) are also included in this release. Make sure to look into them before upgrading.</p> <p>This release contains the updated <code>pydantic.v1</code> namespace, matching version 1.10.26 which includes support for Python 3.14.</p> <h3>What's Changed</h3> <p>See the beta releases for all changes sinces 2.12.</p> <h4>New Features</h4> <ul> <li>Allow default factories of private attributes to take validated model data by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13013">#13013</a></li> </ul> <h4>Changes</h4> <ul> <li>Warn when serializing fixed length tuples with too few items by <a href="https://github.com/arvindsaripalli"><code>@arvindsaripalli</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13016">#13016</a></li> </ul> <h4>Fixes</h4> <ul> <li>Change type of <code>Any</code> when synthesizing <code>_build_sources</code> for <code>BaseSettings.__init__()</code> signature in the mypy plugin by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13049">#13049</a></li> <li>Fix model equality when using runtime <code>extra</code> configuration by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13062">#13062</a></li> </ul> <h4>Packaging</h4> <ul> <li>Add zizmor for GitHub Actions workflow linting by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13039">#13039</a></li> <li>Update jiter to v0.14.0 to fix a segmentation fault on musl Linux by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13064">#13064</a></li> </ul> <h3>New Contributors</h3> <ul> <li><a href="https://github.com/arvindsaripalli"><code>@arvindsaripalli</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic/pull/13016">#13016</a></li> </ul> <h2>v2.13.0b3 (2026-03-31)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3">GitHub release</a></p> <h3>What's Changed</h3> <h4>New Features</h4> <ul> <li>Add <code>ascii_only</code> option to <code>StringConstraints</code> by <a href="https://github.com/ai-man-codes"><code>@ai-man-codes</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12907">#12907</a></li> <li>Support <code>exclude_if</code> in computed fields by <a href="https://github.com/andresliszt"><code>@andresliszt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12748">#12748</a></li> <li>Push down constraints in unions involving <code>MISSING</code> sentinel by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/12908">#12908</a></li> </ul> <h4>Changes</h4> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357"><code>46bf4fa</code></a> Fix Pydantic release workflow (<a href="https://redirect.github.com/pydantic/pydantic/issues/13067">#13067</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43"><code>1b359ed</code></a> Prepare release v2.13.0 (<a href="https://redirect.github.com/pydantic/pydantic/issues/13065">#13065</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18"><code>b1bf194</code></a> Fix model equality when using runtime <code>extra</code> configuration (<a href="https://redirect.github.com/pydantic/pydantic/issues/13062">#13062</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e"><code>17a35e3</code></a> Update jiter to v0.14.0 (<a href="https://redirect.github.com/pydantic/pydantic/issues/13064">#13064</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e"><code>feea402</code></a> Use <code>simulation</code> mode in Codspeed CI (<a href="https://redirect.github.com/pydantic/pydantic/issues/13063">#13063</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc"><code>671c9b0</code></a> Add basic benchmarks for model equality (<a href="https://redirect.github.com/pydantic/pydantic/issues/13061">#13061</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8"><code>d17d71e</code></a> Bump cryptography from 46.0.6 to 46.0.7 (<a href="https://redirect.github.com/pydantic/pydantic/issues/13056">#13056</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf"><code>919d61a</code></a> 👥 Update Pydantic People (<a href="https://redirect.github.com/pydantic/pydantic/issues/13059">#13059</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/e7cf5dcb939ea98511e669b647c0273667a1b08a"><code>e7cf5dc</code></a> Fix people workflow (<a href="https://redirect.github.com/pydantic/pydantic/issues/13047">#13047</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/2a806ad09b984fcc43568191aba5d965350995a0"><code>2a806ad</code></a> Add regression test for <code>MISSING</code> sentinel serialization with subclasses (<a href="https://redirect.github.com/pydantic/pydantic/issues/13">#13</a>...</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic/compare/v2.0...v2.13.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
258 lines
6.2 KiB
TOML
258 lines
6.2 KiB
TOML
[project]
|
|
name = "semantic-kernel"
|
|
description = "Semantic Kernel Python SDK"
|
|
authors = [{ name = "Microsoft", email = "[email protected]"}]
|
|
readme = "README.md"
|
|
# Version read from __version__ field in __init__.py by Flit
|
|
dynamic = ["version"]
|
|
requires-python = ">=3.10"
|
|
license = {file = "LICENSE"}
|
|
urls.homepage = "https://learn.microsoft.com/en-us/semantic-kernel/overview/"
|
|
urls.source = "https://github.com/microsoft/semantic-kernel/tree/main/python"
|
|
urls.release_notes = "https://github.com/microsoft/semantic-kernel/releases?q=tag%3Apython-1&expanded=true"
|
|
urls.issues = "https://github.com/microsoft/semantic-kernel/issues"
|
|
classifiers = [
|
|
"License :: OSI Approved :: MIT License",
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Framework :: Pydantic :: 2",
|
|
"Typing :: Typed",
|
|
]
|
|
dependencies = [
|
|
# azure agents
|
|
"azure-ai-projects ~= 1.0.0b12",
|
|
"azure-ai-agents >= 1.2.0b3",
|
|
"aiohttp ~= 3.8",
|
|
"cloudevents ~=1.0",
|
|
"pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.14",
|
|
"pydantic-settings ~= 2.0",
|
|
"defusedxml ~= 0.7",
|
|
# azure identity
|
|
"azure-identity >= 1.13",
|
|
# embeddings
|
|
"numpy >= 1.25.0; python_version < '3.12'",
|
|
"numpy >= 1.26.0; python_version >= '3.12'",
|
|
# openai connector
|
|
"openai >= 2.0.0",
|
|
# openapi and swagger
|
|
"openapi_core >= 0.18,<0.20",
|
|
"websockets >= 13, < 16",
|
|
"aiortc>=1.9.0",
|
|
# OpenTelemetry
|
|
"opentelemetry-api ~= 1.24",
|
|
"opentelemetry-sdk ~= 1.24",
|
|
"prance >= 23.6.21,< 25.4.9",
|
|
# templating
|
|
"pybars4 ~= 0.9",
|
|
"jinja2 ~= 3.1",
|
|
"nest-asyncio ~= 1.6",
|
|
"scipy>=1.15.1",
|
|
"websockets >= 13, < 16",
|
|
"aiortc>=1.9.0",
|
|
# Protobuf
|
|
# explicit typing extensions
|
|
"typing-extensions>=4.13",
|
|
"mcp>=1.26.0",
|
|
]
|
|
|
|
### Optional dependencies
|
|
[project.optional-dependencies]
|
|
anthropic = [
|
|
"anthropic ~= 0.32"
|
|
]
|
|
autogen = [
|
|
"autogen-agentchat >= 0.2, <0.4"
|
|
]
|
|
aws = [
|
|
"boto3>=1.36.4,<1.43.0",
|
|
]
|
|
azure = [
|
|
"azure-ai-inference >= 1.0.0b6",
|
|
"azure-core-tracing-opentelemetry >= 1.0.0b11",
|
|
"azure-search-documents >= 11.6.0b4",
|
|
"azure-cosmos ~= 4.7"
|
|
]
|
|
chroma = [
|
|
"chromadb >= 0.5,< 1.4"
|
|
]
|
|
copilotstudio = [
|
|
"microsoft-agents-copilotstudio-client >= 0.3.1",
|
|
"microsoft-agents-activity >= 0.3.1"
|
|
]
|
|
faiss = [
|
|
"faiss-cpu>=1.10.0"
|
|
]
|
|
google = [
|
|
"google-cloud-aiplatform>=1.114,<1.134",
|
|
"google-genai >= 1.51,< 1.75"
|
|
]
|
|
hugging_face = [
|
|
"transformers[torch] ~= 4.28",
|
|
"sentence-transformers >= 2.2,< 6.0",
|
|
"torch == 2.8.0"
|
|
]
|
|
mcp = [
|
|
"mcp>=1.8",
|
|
]
|
|
milvus = [
|
|
"pymilvus >= 2.3,< 2.7",
|
|
"milvus >= 2.3,<2.3.8; platform_system != 'Windows'"
|
|
]
|
|
mistralai = [
|
|
"mistralai >= 1.2,< 2.0"
|
|
]
|
|
mongo = [
|
|
"pymongo >= 4.8.0, < 4.16",
|
|
"motor >= 3.3.2,< 3.8.0"
|
|
]
|
|
notebooks = [
|
|
"ipykernel >= 6.29,< 8.0"
|
|
]
|
|
ollama = [
|
|
"ollama ~= 0.4"
|
|
]
|
|
onnx = [
|
|
# onnxruntime>=1.24.0 dropped Python 3.10 support; pin to last compatible version for 3.10.
|
|
"onnxruntime==1.22.1; python_version == '3.10'",
|
|
"onnxruntime>=1.24.3; python_version > '3.10'",
|
|
"onnxruntime-genai==0.9.0"
|
|
]
|
|
oracledb = [
|
|
"oracledb >= 3.4.1"
|
|
]
|
|
pandas = [
|
|
"pandas ~= 2.2"
|
|
]
|
|
pinecone = [
|
|
"pinecone[asyncio, grpc] ~= 7.0"
|
|
]
|
|
postgres = [
|
|
"psycopg[binary,pool] ~= 3.2"
|
|
]
|
|
qdrant = [
|
|
"qdrant-client ~= 1.9"
|
|
]
|
|
redis = [
|
|
"redis[hiredis] >= 6,< 8",
|
|
"types-redis ~= 4.6.0.20240425",
|
|
"redisvl ~= 0.4"
|
|
]
|
|
realtime = [
|
|
"websockets >= 13, < 16",
|
|
"aiortc>=1.9.0",
|
|
]
|
|
sql = [
|
|
"pyodbc >= 5.2"
|
|
]
|
|
usearch = [
|
|
"usearch ~= 2.16",
|
|
"pyarrow >= 12.0,< 22.0"
|
|
]
|
|
weaviate = [
|
|
"weaviate-client>=4.17.0,<5.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pre-commit ~= 3.7",
|
|
"ipykernel >= 6.29,< 8.0",
|
|
"nbconvert ~= 7.16",
|
|
"pytest ~= 8.2",
|
|
"pytest-xdist[psutil] ~= 3.6",
|
|
"pytest-cov >= 5.0",
|
|
"pytest-asyncio ~= 0.24",
|
|
"pytest-timeout>=2.3.1",
|
|
"snoop ~= 0.4",
|
|
"mypy >= 1.10",
|
|
"types-PyYAML ~= 6.0.12.20240311",
|
|
"ruff ~= 0.9"
|
|
]
|
|
|
|
[tool.uv]
|
|
prerelease = "if-necessary-or-explicit"
|
|
environments = [
|
|
"sys_platform == 'darwin'",
|
|
"sys_platform == 'linux'",
|
|
"sys_platform == 'win32'"
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = 'tests'
|
|
addopts = "-ra -q -r fEX"
|
|
asyncio_mode = "auto"
|
|
asyncio_default_fixture_loop_scope = "function"
|
|
filterwarnings = [
|
|
'ignore:.*FunctionChoiceBehavior.*:DeprecationWarning'
|
|
]
|
|
timeout = 120
|
|
markers = [
|
|
"ollama: mark a test as requiring the Ollama service (use \"not ollama\" to skip those tests)",
|
|
"onnx: mark a test as requiring the Onnx service (use \"not onnx\" to skip those tests)"
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 120
|
|
target-version = "py310"
|
|
include = ["*.py", "*.pyi", "**/pyproject.toml", "*.ipynb"]
|
|
preview = true
|
|
|
|
[tool.ruff.lint]
|
|
fixable = ["ALL"]
|
|
unfixable = []
|
|
select = [
|
|
"D", #pydocstyle checks
|
|
"E", #error checks
|
|
"F", #pyflakes checks
|
|
"I", #isort
|
|
"CPY", #copyright
|
|
"ISC", #implicit string concat
|
|
"INP", #implicit namespace package
|
|
"RSE", #raise exception parantheses check
|
|
"RET", #flake8-return check
|
|
"SIM", #flake8-simplify check
|
|
"TD", #todos
|
|
"FIX", #fixme checks
|
|
"ERA", #remove connected out code
|
|
"RUF" #RUF specific rules
|
|
]
|
|
ignore = [
|
|
"D100", #allow missing docstring in public module
|
|
"D104", #allow missing docstring in public package
|
|
"D418", #allow docstring on overloaded function
|
|
"TD003", #allow missing link to todo issue
|
|
"FIX002" #allow todo
|
|
]
|
|
|
|
[tool.ruff.format]
|
|
docstring-code-format = true
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
# Ignore all directories named `tests` and `samples`.
|
|
"tests/**" = ["D", "INP", "TD", "ERA001", "RUF"]
|
|
"samples/**" = ["D", "INP", "ERA001", "RUF"]
|
|
# Ignore all files that end in `_test.py`.
|
|
"*_test.py" = ["D"]
|
|
"*.ipynb" = ["CPY", "E501"]
|
|
|
|
[tool.ruff.lint.flake8-copyright]
|
|
notice-rgx = "^# Copyright \\(c\\) Microsoft\\. All rights reserved\\."
|
|
min-file-size = 1
|
|
|
|
[tool.bandit]
|
|
targets = ["semantic_kernel"]
|
|
exclude_dirs = ["tests", "samples/demos/mcp_with_oauth"]
|
|
|
|
[tool.flit.module]
|
|
name = "semantic_kernel"
|
|
|
|
[build-system]
|
|
requires = ["flit-core >= 3.9,<4.0"]
|
|
build-backend = "flit_core.buildapi"
|