Files
doczyai-pipelines/pyproject.toml
T
Siddhant Medar 8a872cdc67 Merged in bugfix/unify_prompt_exhibit_header (pull request #952)
Bugfix/unify prompt exhibit header

* Remove dead prompt_exhibit_header overrides and legacy get_exhibit_pages

Investigation (AST call tree analysis) proved both were dead code:

1. get_exhibit_pages() in preprocessing_funcs.py had ZERO callers in the
   entire codebase. It was superseded by get_exhibit_pages_new() which is
   the only live path (called by preprocess.one_to_n_exhibit_chunking).

2. Client prompt_exhibit_header overrides (2-arg) in bcbs_promise and
   clover prompt_calls.py were dead for two independent reasons:
   a) Their only consumer (get_exhibit_pages) has zero callers
   b) The live consumer (get_exhibit_pages_new) calls with 3 args —
      if the resolver returned the client 2-arg function, Python would
      raise TypeError. The SaaS 3-arg version was always running.

Verification:
- Programmatic AST call tree (local_scripts/call_tree_analysis.py)
  confirms zero callers and signature mismatch
- Resolver test confirms all clients resolve to SaaS 3-arg implementation
- Full unit suite: 1077 passed, 0 failures
- E2E: BCBS P…
* Merged dev into bugfix/unify_prompt_exhibit_header

* Add dev dependencies for local code index

Add tree-sitter, lancedb, and tiktoken as dev dependencies for a local
codebase indexing system. The index provides hybrid search (symbol table,
call graph, semantic embeddings, BM25) for token-efficient code exploration.

The index lives in a gitignored .index/ folder — each developer builds
their own locally.


Approved-by: Katon Minhas
2026-04-10 16:26:26 +00:00

64 lines
1.4 KiB
TOML

[project]
name = "doczy-field-extraction"
version = "0.1.0"
description = "Contract field extraction using LLMs"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"pandas>=2.2.3",
"boto3>=1.35.40",
"anthropic>=0.36.0",
"python-dotenv>=1.0.1",
"psutil>=6.1.0",
"rapidfuzz>=3.10.1",
"pyxlsb>=1.0.10",
"openpyxl>=3.1.5",
"langchain>=0.3.14",
"langchainhub>=0.1.21",
"langchain-aws>=0.2.11",
"langchain-text-splitters>=0.3.5",
"langchain-community>=0.3.15",
"nltk>=3.9.1",
"rank-bm25>=0.2.2",
"sentence-transformers>=3.4.1",
"faiss-cpu>=1.10.0",
"word2number>=1.1",
"orjson>=3.10.16",
"pymupdf>=1.25.5",
"pillow>=11.2.1",
"xlsxwriter>=3.2.9",
"langchain-classic>=1.0.1",
"black[jupyter]>=25.12.0",
]
[dependency-groups]
dev = [
"mypy>=1.12.0",
"jupyter>=1.1.1",
"isort>=5.13.2",
"pytest>=8.3.3",
"pytest-mock>=3.14.0",
"tree-sitter>=0.25.2",
"tree-sitter-python>=0.25.0",
"lancedb>=0.30.2",
"tiktoken>=0.12.0",
]
test = [
"pytest>=8.3.3",
"pytest-mock>=3.14.0",
"pytest-cov>=6.0.0",
]
[tool.black]
line-length = 88
target-version = ['py312']
[tool.mypy]
disable_error_code = ["import-untyped","assignment","name-defined","call-arg","var-annotated","attr-defined","arg-type","return-value"]
exclude = ["scripts/"]
explicit_package_bases = true
[tool.pytest.ini_options]
pythonpath = ["."]
testpaths = ["src/tests"]