Files
semantic-kernel/python/pyproject.toml
T
dependabot[bot] 12f14bd911 Python: Update ipykernel requirement from ~=6.29 to >=6.29,<8.0 in /python (#13330)
Updates the requirements on
[ipykernel](https://github.com/ipython/ipykernel) to permit the latest
version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ipython/ipykernel/releases">ipykernel's
releases</a>.</em></p>
<blockquote>
<h2>v7.1.0</h2>
<h2>7.1.0</h2>
<p>IPykernel 7.1.0 fixes an issue where display outputs such as
Matplotlib plots were not included when using <code>%notebook</code>
magic to save sessions as <code>.ipynb</code> files (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1435">#1435</a>).
This is enabled using the traitlet
<code>ZMQDisplayPublisher.store_display_history</code> which defaults to
the previous behaviour of False. This is a minor release rather than a
patch release due to the addition of the new traitlet.</p>
<p>Output from threads is restored to the pre-6.29 behavior by default
(route to latest cell, unless <code>get_ipython().set_parent()</code> is
called explicitly from the thread. If it is called, output from that
thread will continue to be routed to the same cell). This behavior is
now opt-in, instead of unconditional (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1451">#1451</a>).</p>
<p>This release also fixes bugs that were introduced into the 7.x branch
relating to Matplotlib plots in separate windows not being displayed
correctly (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1458">#1458</a>),
kernels launched in new threads failing asserts (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1455">#1455</a>),
and <code>ContextVar</code>s persisting between cells (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1462">#1462</a>).
There is also a fix for keyboard interrupts on Windows (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1434">#1434</a>).</p>
<p>(<a
href="https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43">Full
Changelog</a>)</p>
<h3>Enhancements made</h3>
<ul>
<li>Store display outputs in history for <code>%notebook</code> magic <a
href="https://redirect.github.com/ipython/ipykernel/pull/1435">#1435</a>
(<a
href="https://github.com/Darshan808"><code>@​Darshan808</code></a>)</li>
</ul>
<h3>Bugs fixed</h3>
<ul>
<li>fix ContextVar persistence across cells <a
href="https://redirect.github.com/ipython/ipykernel/pull/1462">#1462</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
<li>Fix matplotlib eventloops <a
href="https://redirect.github.com/ipython/ipykernel/pull/1458">#1458</a>
(<a
href="https://github.com/ianthomas23"><code>@​ianthomas23</code></a>)</li>
<li>Refer to kernel launching thread instead of assuming the main thread
<a
href="https://redirect.github.com/ipython/ipykernel/pull/1455">#1455</a>
(<a href="https://github.com/dfalbel"><code>@​dfalbel</code></a>)</li>
<li>Fix routing of background thread output when no parent is set
explicitly <a
href="https://redirect.github.com/ipython/ipykernel/pull/1451">#1451</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
<li>Fix KeyboardInterrupt on Windows by manually resetting interrupt
event <a
href="https://redirect.github.com/ipython/ipykernel/pull/1434">#1434</a>
(<a href="https://github.com/ptosco"><code>@​ptosco</code></a>)</li>
</ul>
<h3>Maintenance and upkeep improvements</h3>
<ul>
<li>update pre-commit and related <a
href="https://redirect.github.com/ipython/ipykernel/pull/1465">#1465</a>
(<a href="https://github.com/Carreau"><code>@​Carreau</code></a>)</li>
<li>test that matplotlib event loop integration is responsive <a
href="https://redirect.github.com/ipython/ipykernel/pull/1463">#1463</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
<li>update tests for 3.14 <a
href="https://redirect.github.com/ipython/ipykernel/pull/1453">#1453</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
</ul>
<h3>Contributors to this release</h3>
<p>(<a
href="https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14&amp;to=2025-10-27&amp;type=c">GitHub
contributors page for this release</a>)</p>
<p><a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​Carreau</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​Darshan808</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​dfalbel</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​ianthomas23</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​krassowski</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​lumberbot-app</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​minrk</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​ptosco</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md">ipykernel's
changelog</a>.</em></p>
<blockquote>
<h2>7.1.0</h2>
<p>IPykernel 7.1.0 fixes an issue where display outputs such as
Matplotlib plots were not included when using <code>%notebook</code>
magic to save sessions as <code>.ipynb</code> files (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1435">#1435</a>).
This is enabled using the traitlet
<code>ZMQDisplayPublisher.store_display_history</code> which defaults to
the previous behaviour of False. This is a minor release rather than a
patch release due to the addition of the new traitlet.</p>
<p>Output from threads is restored to the pre-6.29 behavior by default
(route to latest cell, unless <code>get_ipython().set_parent()</code> is
called explicitly from the thread. If it is called, output from that
thread will continue to be routed to the same cell). This behavior is
now opt-in, instead of unconditional (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1451">#1451</a>).</p>
<p>This release also fixes bugs that were introduced into the 7.x branch
relating to Matplotlib plots in separate windows not being displayed
correctly (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1458">#1458</a>),
kernels launched in new threads failing asserts (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1455">#1455</a>),
and <code>ContextVar</code>s persisting between cells (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1462">#1462</a>).
There is also a fix for keyboard interrupts on Windows (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1434">#1434</a>).</p>
<p>(<a
href="https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43">Full
Changelog</a>)</p>
<h3>Enhancements made</h3>
<ul>
<li>Store display outputs in history for <code>%notebook</code> magic <a
href="https://redirect.github.com/ipython/ipykernel/pull/1435">#1435</a>
(<a
href="https://github.com/Darshan808"><code>@​Darshan808</code></a>)</li>
</ul>
<h3>Bugs fixed</h3>
<ul>
<li>fix ContextVar persistence across cells <a
href="https://redirect.github.com/ipython/ipykernel/pull/1462">#1462</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
<li>Fix matplotlib eventloops <a
href="https://redirect.github.com/ipython/ipykernel/pull/1458">#1458</a>
(<a
href="https://github.com/ianthomas23"><code>@​ianthomas23</code></a>)</li>
<li>Refer to kernel launching thread instead of assuming the main thread
<a
href="https://redirect.github.com/ipython/ipykernel/pull/1455">#1455</a>
(<a href="https://github.com/dfalbel"><code>@​dfalbel</code></a>)</li>
<li>Fix routing of background thread output when no parent is set
explicitly <a
href="https://redirect.github.com/ipython/ipykernel/pull/1451">#1451</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
<li>Fix KeyboardInterrupt on Windows by manually resetting interrupt
event <a
href="https://redirect.github.com/ipython/ipykernel/pull/1434">#1434</a>
(<a href="https://github.com/ptosco"><code>@​ptosco</code></a>)</li>
</ul>
<h3>Maintenance and upkeep improvements</h3>
<ul>
<li>update pre-commit and related <a
href="https://redirect.github.com/ipython/ipykernel/pull/1465">#1465</a>
(<a href="https://github.com/Carreau"><code>@​Carreau</code></a>)</li>
<li>test that matplotlib event loop integration is responsive <a
href="https://redirect.github.com/ipython/ipykernel/pull/1463">#1463</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
<li>update tests for 3.14 <a
href="https://redirect.github.com/ipython/ipykernel/pull/1453">#1453</a>
(<a href="https://github.com/minrk"><code>@​minrk</code></a>)</li>
</ul>
<h3>Contributors to this release</h3>
<p>(<a
href="https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14&amp;to=2025-10-27&amp;type=c">GitHub
contributors page for this release</a>)</p>
<p><a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​Carreau</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​Darshan808</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​dfalbel</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​ianthomas23</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​krassowski</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​lumberbot-app</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​minrk</code></a>
| <a
href="https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27&amp;type=Issues"><code>@​ptosco</code></a></p>
<!-- raw HTML omitted -->
<h2>7.0.1</h2>
<p>IPykernel 7.0.1 is a bug fix release to support CPython 3.14.</p>
<p>(<a
href="https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45">Full
Changelog</a>)</p>
<h3>Bugs fixed</h3>
<ul>
<li>Avoid overriding Thread._context in Python 3.14 <a
href="https://redirect.github.com/ipython/ipykernel/pull/1447">#1447</a>
(<a
href="https://github.com/ianthomas23"><code>@​ianthomas23</code></a>)</li>
</ul>
<h3>Maintenance and upkeep improvements</h3>
<ul>
<li>Fix 7.x license warnings <a
href="https://redirect.github.com/ipython/ipykernel/pull/1448">#1448</a>
(<a href="https://github.com/bollwyvl"><code>@​bollwyvl</code></a>)</li>
<li>ci: Test on PyPy 3.11 instead of 3.10 <a
href="https://redirect.github.com/ipython/ipykernel/pull/1444">#1444</a>
(<a href="https://github.com/cclauss"><code>@​cclauss</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ipython/ipykernel/commit/39eaf96ab6db0d0ff9ad269831384c53a11e11d8"><code>39eaf96</code></a>
Publish 7.1.0</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/6f61a6835c217e42c406ee01b359e2fa235baf43"><code>6f61a68</code></a>
test that matplotlib event loop integration is responsive (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1463">#1463</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/8446e02948c390793e129affeceedfa30ed5080f"><code>8446e02</code></a>
Fix KeyboardInterrupt on Windows by manually resetting interrupt event
(<a
href="https://redirect.github.com/ipython/ipykernel/issues/1434">#1434</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/dd1e09484854c8dedcd98436bc01b6b8e1cc9034"><code>dd1e094</code></a>
update pre-commit and related (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1465">#1465</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/95f245138589db4f723b8af06107cdfeadc53314"><code>95f2451</code></a>
fix ContextVar persistence across cells (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1462">#1462</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/c56a7aab3cad1fb91f7e7185dc7403d561ecd667"><code>c56a7aa</code></a>
Fix matplotlib eventloops (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1458">#1458</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/c7af34cd19ebcd43f5aafe1919909feb6e898387"><code>c7af34c</code></a>
Refer to kernel laucnhing thread instead of assuming the main thread (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1455">#1455</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/7193d14de447a18470a18d60b81eda5f0048b6aa"><code>7193d14</code></a>
Fix routing of background thread output when no parent is set explicitly
(<a
href="https://redirect.github.com/ipython/ipykernel/issues/1451">#1451</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/b8f5dfc3a35a658c66b85213e60f634bd8a44488"><code>b8f5dfc</code></a>
Store display outputs in history for <code>%notebook</code> magic (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1435">#1435</a>)</li>
<li><a
href="https://github.com/ipython/ipykernel/commit/93f11dbb02692a7922cb6fdb4ebadffdb8b691c0"><code>93f11db</code></a>
update tests for 3.14 (<a
href="https://redirect.github.com/ipython/ipykernel/issues/1453">#1453</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ipython/ipykernel/compare/v6.29.0...v7.1.0">compare
view</a></li>
</ul>
</details>
<br />


You can trigger a rebase of this PR 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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 01:25:57 +00:00

257 lines
6.1 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.13",
"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.41.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.0",
"google-genai ~= 1.51.0"
]
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 = [
# Pinning due to uv tag-resolution issues on macOS.
"onnxruntime==1.22.1",
"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"