Markdown Converter
Agent skill for markdown-converter
This document provides context to understand the LangChain Python project and assist with development.
Sign in to like and favorite skills
This document provides context to understand the LangChain Python project and assist with development.
This is a Python monorepo with multiple independently versioned packages that use
uv.
langchain/ ├── libs/ │ ├── core/ # `langchain-core` primitives and base abstractions │ ├── langchain/ # `langchain-classic` (legacy, no new features) │ ├── langchain_v1/ # Actively maintained `langchain` package │ ├── partners/ # Third-party integrations │ │ ├── openai/ # OpenAI models and embeddings │ │ ├── anthropic/ # Anthropic (Claude) integration │ │ ├── ollama/ # Local model support │ │ └── ... (other integrations maintained by the LangChain team) │ ├── text-splitters/ # Document chunking utilities │ ├── standard-tests/ # Shared test suite for integrations │ ├── model-profiles/ # Model configuration profiles │ └── cli/ # Command-line interface tools ├── .github/ # CI/CD workflows and templates ├── .vscode/ # VSCode IDE standard settings and recommended extensions └── README.md # Information about LangChain
langchain-core): Base abstractions, interfaces, and protocols. Users should not need to know about this layer directly.langchain): Concrete implementations and high-level public utilitiespartners/): Third-party service integrations. Note that this monorepo is not exhaustive of all LangChain integrations; some are maintained in separate repos, such as langchain-ai/langchain-google and langchain-ai/langchain-aws. Usually these repos are cloned at the same level as this monorepo, so if needed, you can refer to their code directly by navigating to ../langchain-google/ from this monorepo.standard-tests/): Standardized integration tests for partner integrationsuv – Fast Python package installer and resolver (replaces pip/poetry)make – Task runner for common development commands. Feel free to look at the Makefile for available commands and usage patterns.ruff – Fast Python linter and formattermypy – Static type checkingpytest – Testing frameworkThis monorepo uses
uv for dependency management. Local development uses editable installs: [tool.uv.sources]
Each package in
libs/ has its own pyproject.toml and uv.lock.
# Run unit tests (no network) make test # Run specific test file uv run --group test pytest tests/unit_tests/test_specific.py
# Lint code make lint # Format code make format # Type checking uv run --group lint mypy .
Suggest PR titles that follow Conventional Commits format. Refer to .github/workflows/pr_lint for allowed types and scopes.
CRITICAL: Always attempt to preserve function signatures, argument positions, and names for exported/public methods. Do not make breaking changes. You should warn the developer for any function signature changes, regardless of whether they look breaking or not.
Before making ANY changes to public APIs:
__init__.py*, new_param: str = "default"!!! warning)Ask: "Would this change break someone's code if they used it last week?"
All Python code MUST include type hints and return types.
def filter_unknown_users(users: list[str], known_users: set[str]) -> list[str]: """Single line description of the function. Any additional context about the function can go here. Args: users: List of user identifiers to filter. known_users: Set of known/valid user identifiers. Returns: List of users that are not in the known_users set. """
Every new feature or bugfix MUST be covered by unit tests.
tests/unit_tests/ (no network calls allowed)tests/integration_tests/ (network calls permitted)pytest as the testing framework; if in doubt, check other existing tests for examples.Checklist:
eval(), exec(), or pickle on user-controlled inputexcept:) and use a msg variable for error messagesUse Google-style docstrings with Args section for all public functions.
def send_email(to: str, msg: str, *, priority: str = "normal") -> bool: """Send an email to a recipient with specified priority. Any additional context about the function can go here. Args: to: The email address of the recipient. msg: The message body to send. priority: Email priority level. Returns: `True` if email was sent successfully, `False` otherwise. Raises: InvalidEmailError: If the email address format is invalid. SMTPConnectionError: If unable to connect to email server. """
../docs/. Prefer the local install and use file search tools for best results. If needed, use the docs MCP server as defined in .mcp.json for programmatic access..github/CONTRIBUTING.md