-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
114 lines (100 loc) · 3.92 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# ビルドシステムの設定
[build-system]
# Pythonパッケージングツールの指定
requires = ["hatchling"] # モダンなビルドシステム
build-backend = "hatchling.build" # ビルドバックエンドの指定
# プロジェクトの基本情報
[project]
name = "genai-tag-db-tools" # パッケージ名 ハイフン推奨なぜかは知らん
version = "0.2.0" # バージョン番号
description = "AI生成画像のタグ管理ツール" # プロジェクトの説明
requires-python = ">=3.12" # 必要なPythonバージョン
# 必要なパッケージの依存関係
dependencies = [
"PySide6>=6.8.0.2", # Qt GUIフレームワーク
"superqt>=0.6.7", # PySide6の拡張機能
"polars[all]>=1.9.0", # 高性能データフレームライブラリ [all] は全機能をインストール必要ない部分は後で削る
"alembic>=1.13.1", # データベースマイグレーションツール
"SQLAlchemy>=2.0.0", # データベースライブラリ
]
# プロジェクトの分類情報
classifiers = [
"Operating System :: Microsoft :: Windows :: Windows 11" # 対応OS
]
# 開発時のみ必要な追加パッケージ
[project.optional-dependencies]
dev = [
"ruff>=0.9.2" , # コード整形ツール
"pytest>=8.3.3", # テストフレームワーク
"pytest-cov>=6.0.0", # テストカバレッジツール
"pytest-qt", # Qtアプリケーションのテストツール
"sphinx", # ドキュメント生成ツール
"sphinx-rtd-theme", # Sphinxのテーマ
"sphinx-autobuild", # Sphinxの自動ビルドツール
"restructuredtext_lint", # RST文法チェックツール
"esbonio", # ドキュメント生成ツール
]
[tool.ruff]
exclude = [
"*/gui/designer/*", # Qtdesignerで自動生成されたファイル
"*/__pycache__",
"*/tests/*",
"*/shibokensupport/*",
"*/site-packages/*",
"*/pyscript",
"*/signature_bootstrap.py",
"*/__init__.py",
]
# pytestの設定オプション
[tool.pytest.ini_options]
pythonpath = ["genai_tag_db_tools"] # テスト実行時のPythonパス
addopts ="""
-ra -q -v
--cov=genai_tag_db_tools
--cov-report=term-missing tests/
"""
# テスト実行時のオプション(結果表示の詳細度など)
testpaths = ["tests"] # テストファイルの場所
[tool.coverage.run]
source = ["genai_tag_db_tools"]
omit = [
"*/shibokensupport/*",
"*/site-packages/*",
"*/tests/*",
"*/pyscript",
"*/signature_bootstrap.py",
"*/__init__.py",
"*/__pycache__",
"*/genai_tag_db_tools/gui/designer/*",
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"if __name__ == \"__main__\":",
"raise NotImplementedError",
"if TYPE_CHECKING:",
]
# ビルド設定
[tool.hatch.build.targets.wheel]
packages = ["genai_tag_db_tools"] # Pythonパッケージ名(アンダースコア)
[tool.hatch.build.targets.wheel.package-data]
genai_tag_db_tools = ["data/*.db"]
# プロジェクトスクリプト
[project.scripts]
gtdtools = "genai_tag_db_tools.main:main"
#インストールして genai_tag_db_tools をターミナルで入力するとmainが実行されるよという話
# Pyright(静的型チェッカー)の設定
[tool.pyright]
include = ["genai_tag_db_tools"] # 型チェック対象
exclude = [ # 型チェック除外対象
"**/__pycache__",
"test"
]
venvPath = "." # 仮想環境のパス
venv = "gtdt" # 仮想環境の名前
typeCheckingMode = "basic" # 型チェックの厳格さ
# PySide6関連の特別な設定
reportGeneralTypeIssues = "warning" # 一般的な型の問題を警告として報告
reportMissingTypeStubs = false # 型定義ファイルの不足を無視
reportUnknownMemberType = false # 不明なメンバー型を無視