Files
semantic-kernel/python/mypy.ini
T
Evan Mattson 44d47ac382 Python: Enable mypy for connector utils and search connectors. Improve code quality. (#7163)
### Motivation and Context

We have mypy enabled on parts of the code base, but not all. The goal is
to enable it across the entire SK python code. As part of this, we've
broken up the work to tackle different sections. Additionally, we're
working to improve the code coverage for these sections of code.

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

This PR:
- turns on mypy for the connector utils and the search connectors (Bing
and Google). Small Code adjustments were made per mypy.
- other refactoring to make the code cleaner like using https
AsyncClient, and better error handling around the API call.
- introduces Google Search settings for the connector.
- adds more unit test coverage for the document loader util and the
Bing/Google search connectors. There is 100% code coverage.
- closes #7136

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone 😄
2024-07-09 15:03:08 +00:00

84 lines
2.4 KiB
INI

[mypy]
python_version = 3.11
plugins = pydantic.mypy
ignore_missing_imports = true
[pydantic-mypy]
init_forbid_extra = false
init_typed = false
warn_required_dynamic_aliases = false
warn_untyped_fields = true
[mypy-semantic_kernel]
no_implicit_reexport = true
[mypy-semantic_kernel.connectors.ai.open_ai.*]
ignore_errors = true
# TODO (eavanvalkenburg): remove this: https://github.com/microsoft/semantic-kernel/issues/7131
[mypy-semantic_kernel.connectors.ai.azure_ai_inference.*]
ignore_errors = true
# TODO (eavanvalkenburg): remove this: https://github.com/microsoft/semantic-kernel/issues/7132
[mypy-semantic_kernel.connectors.ai.hugging_face.*]
ignore_errors = true
# TODO (eavanvalkenburg): remove this: https://github.com/microsoft/semantic-kernel/issues/7133
[mypy-semantic_kernel.connectors.ai.ollama.*]
ignore_errors = true
# TODO (eavanvalkenburg): remove this: https://github.com/microsoft/semantic-kernel/issues/7134
[mypy-semantic_kernel.connectors.ai.function_choice_behavior.*]
ignore_errors = true
# TODO (eavanvalkenburg): remove this: https://github.com/microsoft/semantic-kernel/issues/7137
[mypy-semantic_kernel.memory.*]
ignore_errors = true
# TODO (eavanvalkenburg): remove this
# https://github.com/microsoft/semantic-kernel/issues/6463
[mypy-semantic_kernel.planners.*]
ignore_errors = true
# TODO (eavanvalkenburg): remove this after future of planner is decided
# https://github.com/microsoft/semantic-kernel/issues/6465
[mypy-semantic_kernel.connectors.memory.astradb.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.azure_cognitive_search.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.azure_cosmosdb.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.azure_cosmosdb_no_sql.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.chroma.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.milvus.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.mongodb_atlas.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.pinecone.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.postgres.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.qdrant.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.redis.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.usearch.*]
ignore_errors = true
[mypy-semantic_kernel.connectors.memory.weaviate.*]
ignore_errors = true