microsoftgraph / microsoftgraph/msgraph-sdk-python
False-positive DeprecationWarning
まだ誰も着手していません。
- 主要言語
- Python
- スター
- 630
- フォーク
- 96
- 平均マージ
- 15時間 20分
- マージ済み PR(30日)
- 3
説明
Describe the bug
Simply just importing one of the class request builders is enough to trigger a deprecation warnings. The reproduction steps below will output 3 different deprecation warnings, even though the deprecated classes are not being used.
This is because the warnings are in the class scope, so will be ran at "compile" time.
Changing the first example to the second will only warn when the dataclass is instantiated.
# kiota_abstractions.default_query_parameters.py
@dataclass
class GetQueryParameters(QueryParameters):
"""
Default placeholder class for query parameters.
"""
warn("GetQueryParameters is deprecated. Use QueryParameters instead.", DeprecationWarning)
# kiota_abstractions.default_query_parameters.py
@dataclass
class GetQueryParameters(QueryParameters):
"""
Default placeholder class for query parameters.
"""
def __init__(self, *args, **kwargs):
warn("GetQueryParameters is deprecated. Use QueryParameters instead.", DeprecationWarning)
super().__init__(*args, **kwargs)
Expected behavior
Deprecation warnings are only raised when you instantiate a deprecated class I.E. are actually using it, not just importing it.
How to reproduce
python -Wd -c "from msgraph.generated.education.classes.classes_request_builder import ClassesRequestBuilder"
SDK Version
1.12.0
Latest version known to work for scenario above?
No response
Known Workarounds
Only workaround is to suppress deprecation warnings from this library.
import warnings
warnings.filterwarnings("ignore", module="msgraph", category=DeprecationWarning)
warnings.filterwarnings(
"ignore",
module="kiota_abstractions",
category=DeprecationWarning,
)
Debug output
Click to expand log
```</details>
### Configuration
_No response_
### Other information
_No response_
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
kiota_abstractions.default_query_parameters.py から始め、提供された Python の import コマンドを使って警告を再現します。非推奨の request-builder クラスがクラス定義中にどのように警告を発するかを確認し、その後、ClassesRequestBuilder のインポートでは何も警告されない一方で、非推奨クラスをインスタンス化すると引き続き警告されることを検証します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- api
- issue の種類
- バグ
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 45/100