[project] name = "pj-carina" version = "0.1.0" description = "" readme = "README.md" requires-python = ">=3.12" dependencies = [ "azure-ai-documentintelligence>=1.0.2", "azure-identity>=1.25.0", "azure-search-documents>=12.0.0", "azure-storage-blob>=12.26.0", "beautifulsoup4>=4.14.3", "gradio>=5.47.2", "injector>=0.24.0", "ipykernel>=6.30.1", "langchain-text-splitters>=1.1.1", "mypy>=1.17.1", "neollm", "openai>=1.107.1", "openpyxl>=3.1.5", "pandas>=2.3.2", "pdf2image", "pymupdf>=1.24.0", "tabulate>=0.9.0", "pdfplumber>=0.11.7", "pillow", "pypdf>=6.0.0", "python-docx>=1.2.0", "python-dotenv>=1.2.2", "ruff>=0.13.0", "nbdime>=4.0.4", "nbstripout>=0.9.1", ] [tool.uv.sources] neollm = { git = "ssh://git@github.com/neoAI-inc/neo-llm-module.git", rev = "v1.5.20" } [tool.ruff] line-length = 119 target-version = "py310" exclude = ["__pycache__", ".git", ".mypy_cache", ".venv", "src/sandbox", "pdf_to_db.py", "poc1", "*.ipynb"] [tool.ruff.lint] ignore = [ "PTH", "D", "C901", "T201", # print書かない "ISC001", "RUF001", # ambiguous-unicode-character-string "RUF002", # ambiguous-unicode-character-docstring "RUF003", # ambiguous-unicode-character-comment "RET504", # unnecessary-assign "INP001", # __init__.pyなし "ERA001", # commented-out-code "ANN401", # any-type "FIX002", # line-contains-todo "E501", # line-too-long "TD002", # missing-todo-author "TD003", # missing-todo-link "FBT001", # Boolean-typed positional argument in function definition "FBT002", # Boolean default positional argument in function definition "BLE001", # Do not catch blind exception: `Exception` "TRY201", # Use `raise` without specifying exception name "PYI034", # 非自己復帰型 Self "COM812", "B904", # raise-without-from-inside-except ] select = ["E", "F", "W", "C", "B", "T", "R", "RUF"] [tool.ruff.lint.per-file-ignores] "test/*" = [ "S101", # assertを許す "PLR2004", # magic-value-comparison "TC001", # typing-only-first-party-import "PT011", # pytest-raises-too-broad "SLF001", # Private member accessed ] [tool.ruff.lint.isort] combine-as-imports = true force-sort-within-sections = true force-wrap-aliases = true [tool.mypy] exclude = ["src/sandbox/", "pdf_to_db.py", "poc1/"] # ローカルモジュールの import ミス(存在しないモジュール)を検出できるよう、 # 全体での import 無視はやめ、stub の無いサードパーティだけ下の overrides で無視する。 ignore_missing_imports = false # follow_imports = normal disallow_any_unimported = false disallow_any_expr = false # 式でのAny禁止 disallow_any_decorated = false disallow_any_explicit = false # 変数でAny禁止 disallow_any_generics = true # ジェネリックで書かないの禁止 disallow_subclassing_any = false disallow_untyped_calls = true # 型なし関数呼び出し禁止 `a: int = f()` disallow_untyped_defs = true # 型なし関数定義禁止 `def f(a: int) -> int` disallow_incomplete_defs = true # 一部の型定義を禁止 `def f(a: int, b)` check_untyped_defs = true disallow_untyped_decorators = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_return_any = false warn_unreachable = true # 辿りつかないコードの検出 allow_redefinition = true # 変数の再定義を禁止 show_error_context = true show_column_numbers = true # 型スタブを持たないサードパーティ。ここだけ missing import を許容する。 [[tool.mypy.overrides]] module = ["neollm.*", "fitz", "fitz.*", "pandas", "pandas.*", "openpyxl", "openpyxl.*"] ignore_missing_imports = true [dependency-groups] dev = [ "ipykernel>=6.30.1", ]