langchain/pyproject.toml
Mason Daugherty f624ad489a
feat(docs): improve devx, fix Makefile targets (#32237)
**TL;DR much of the provided `Makefile` targets were broken, and any
time I wanted to preview changes locally I either had to refer to a
command Chester gave me or try waiting on a Vercel preview deployment.
With this PR, everything should behave like normal.**

Significant updates to the `Makefile` and documentation files, focusing
on improving usability, adding clear messaging, and fixing/enhancing
documentation workflows.

### Updates to `Makefile`:

#### Enhanced build and cleaning processes:
- Added informative messages (e.g., "📚 Building LangChain
documentation...") to makefile targets like `docs_build`, `docs_clean`,
and `api_docs_build` for better user feedback during execution.
- Introduced a `clean-cache` target to the `docs` `Makefile` to clear
cached dependencies and ensure clean builds.

#### Improved dependency handling:
- Modified `install-py-deps` to create a `.venv/deps_installed` marker,
preventing redundant/duplicate dependency installations and improving
efficiency.

#### Streamlined file generation and infrastructure setup:
- Added caching for the LangServe README download and parallelized
feature table generation
- Added user-friendly completion messages for targets like `copy-infra`
and `render`.

#### Documentation server updates:
- Enhanced the `start` target with messages indicating server start and
URL for local documentation viewing.

---

### Documentation Improvements:

#### Content clarity and consistency:
- Standardized section titles for consistency across documentation
files.
[[1]](diffhunk://#diff-9b1a85ea8a9dcf79f58246c88692cd7a36316665d7e05a69141cfdc50794c82aL1-R1)
[[2]](diffhunk://#diff-944008ad3a79d8a312183618401fcfa71da0e69c75803eff09b779fc8e03183dL1-R1)
- Refined phrasing and formatting in sections like "Dependency
management" and "Formatting and linting" for better readability.
[[1]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L6-R6)
[[2]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L84-R82)

#### Enhanced workflows:
- Updated instructions for building and viewing documentation locally,
including tips for specifying server ports and handling API reference
previews.
[[1]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L60-R94)
[[2]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L82-R126)
- Expanded guidance on cleaning documentation artifacts and using
linting tools effectively.
[[1]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L82-R126)
[[2]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L107-R142)

#### API reference documentation:
- Improved instructions for generating and formatting in-code
documentation, highlighting best practices for docstring writing.
[[1]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L107-R142)
[[2]](diffhunk://#diff-048deddcfd44b242e5b23aed9f2e9ec73afc672244ce14df2a0a316d95840c87L144-R186)

---

### Minor Changes:
- Added support for a new package name (`langchain_v1`) in the API
documentation generation script.
- Fixed minor capitalization and formatting issues in documentation
files.
[[1]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L40-R40)
[[2]](diffhunk://#diff-2069d4f956ab606ae6d51b191439283798adaf3a6648542c409d258131617059L166-R160)

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-25 14:49:03 -04:00

116 lines
4.2 KiB
TOML

[project]
authors = []
license = { text = "MIT" }
requires-python = ">=3.9"
dependencies = []
name = "langchain-monorepo"
version = "0.0.1"
description = "LangChain mono-repo"
readme = "README.md"
[project.urls]
repository = "https://www.github.com/langchain-ai/langchain"
[dependency-groups]
lint = ["ruff<0.13,>=0.12.2"]
dev = [
"langchain-core",
"langchain-text-splitters",
"langchain-community",
"langchain",
"langchain-openai",
"ipykernel<7.0.0,>=6.29.2",
]
codespell = [
"codespell<3.0.0,>=2.2.0",
"tomli>=2.2.1",
]
typing = []
test = [
"langchain-experimental @ git+https://github.com/langchain-ai/langchain-experimental.git#subdirectory=libs/experimental",
"langchain-anthropic",
"langchain-aws @ git+https://github.com/langchain-ai/langchain-aws.git#subdirectory=libs/aws",
"langchain-chroma",
"langchain-fireworks",
"langchain-google-vertexai @ git+https://github.com/langchain-ai/langchain-google.git#subdirectory=libs/vertexai",
"langchain-google-genai @ git+https://github.com/langchain-ai/langchain-google.git#subdirectory=libs/genai",
"langchain-groq",
"langchain-mistralai",
"langchain-tavily",
"langchain-together @ git+https://github.com/langchain-ai/langchain-together.git#subdirectory=libs/together",
"langchain-unstructured @ git+https://github.com/langchain-ai/langchain-unstructured.git#subdirectory=libs/unstructured",
"langgraph",
"msgpack",
"jupyter<2.0.0,>=1.1.1",
"click<9.0.0,>=8.1.7",
"aiofiles<25.0.0,>=24.1.0",
"faiss-cpu<2.0.0,>=1.7.4",
"grandalf<1.0,>=0.8",
"lark<2.0.0,>=1.1.9",
"pandas<3,>=2",
"rank-bm25<1.0.0,>=0.2.2",
"tabulate<1.0.0,>=0.9.0",
"unstructured[md]<1.0.0,>=0.16.11; python_version < \"3.13\"",
"wikipedia<2.0.0,>=1.4.0",
"pypdf<6.0.0,>=5.0.0",
"vcrpy<7.0.0,>=6.0.1",
"linkchecker>=10.5.0",
]
docs = [
"toml>=0.10.2",
"autodoc-pydantic>=2,<3",
"sphinx>=6,<8",
"myst-parser>=3",
"sphinx-autobuild>=2024",
"pydata-sphinx-theme>=0.15",
"myst-nb>=1.1.1",
"pyyaml",
"sphinx-design",
"sphinx-copybutton",
"beautifulsoup4",
"sphinxcontrib-googleanalytics",
]
[tool.uv.sources]
langchain-core = { path = "./libs/core", editable = true }
langchain-text-splitters = { path = "./libs/text-splitters", editable = true }
langchain-tests = { path = "./libs/standard-tests", editable = true }
langchain = { path = "./libs/langchain", editable = true }
langchain-openai = { path = "./libs/partners/openai", editable = true }
langchain-anthropic = { path = "./libs/partners/anthropic", editable = true }
langchain-chroma = { path = "./libs/partners/chroma", editable = true }
langchain-fireworks = { path = "./libs/partners/fireworks", editable = true }
langchain-groq = { path = "./libs/partners/groq", editable = true }
langchain-mistralai = { path = "./libs/partners/mistralai", editable = true }
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[tool.codespell]
skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,example_data,_dist,examples,templates,*.trig,*cache*,*.msgpack.zlib,*.csv,*.lock,*.png,*.jpg,*.jpeg,*.gif,*.bmp,*.ico,*.webp,*.tiff,*.mp4,*.mp3,*.wav,*.avi,*.mov,*.zip,*.tar,*.gz,*.rar,*.7z,*.exe,*.dll,*.so,*.dylib,*.bin,*.dat,*.db,*.sqlite'
# Ignore latin etc
ignore-regex = '.*(Stati Uniti|Tense=Pres).*'
# whats is a typo but used frequently in queries so kept as is
# aapply - async apply
# unsecure - typo but part of API, decided to not bother for now
ignore-words-list = 'momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogyny,unsecure,damon,crate,aadd,symbl,precesses,accademia,nin,cann'
[tool.ruff]
extend-include = ["*.ipynb"]
[tool.ruff.lint]
select = ["D"] # global select for pydocstyle
pydocstyle = { convention = "google" }
[tool.ruff.lint.per-file-ignores]
"**/{cookbook,docs}/*" = [
"E402", # allow imports to appear anywhere in docs
"F401", # allow "imported but unused" example code
"F811", # allow re-importing the same module, so that cells can stay independent
"F841", # allow assignments to variables that are never read -- it's example code
]
"!libs/langchain/langchain/model_laboratory.py" = ["D"]