---
title: "langchain-text-splitters (pypi) Breaking Changes | Since.dev"
description: "What each langchain-text-splitters release removed, renamed or changed: 22 breaking changes in 3 versions on PyPI, each with its source."
canonical_url: https://since.dev/packages/pypi/langchain-text-splitters
last_updated: 2026-04-16
---

# langchain-text-splitters breaking changes

Every breaking API change we have recorded in langchain-text-splitters on PyPI: 22 breaking changes in 3 versions. Below are its newest 3 versions, removals and renames first, each with its source.

Newest change April 16, 2026

## 1.1.2

2 breaking changes, first published April 16, 2026.

- **Signature changed** `langchain_text_splitters.TextSplitter.from_tiktoken_encoder`  

Was @classmethod def from_tiktoken_encoder(cls, encoding_name: str = 'gpt2', model_name: str | None = None, allowed_special: Literal\['all'\] | AbstractSet\[str\] = set(), disallowed_special: Literal\['all'\] | Collection\[str\] = 'all', \*\*kwargs... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.1.2/)
- **Signature changed** `langchain_text_splitters.TokenTextSplitter.__init__`  

Was def \_\_init\_\_(self, encoding_name: str = 'gpt2', model_name: str | None = None, allowed_special: Literal\['all'\] | AbstractSet\[str\] = set(), disallowed_special: Literal\['all'\] | Collection\[str\] = 'all', \*\*kwargs: Any) -> None; now def... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.1.2/)

## 1.1.1

3 breaking changes, first published February 18, 2026.

- **Removed** `langchain_text_splitters.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS`  

langchain_text_splitters.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS was removed in langchain-text-splitters 1.1.1 [pypi.org](https://pypi.org/project/langchain-text-splitters/1.1.1/)
- **Removed** `langchain_text_splitters.markdown.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS`  

langchain_text_splitters.markdown.ExperimentalMarkdownSyntaxTextSplitter.DEFAULT_HEADER_KEYS was removed in langchain-text-splitters 1.1.1 [pypi.org](https://pypi.org/project/langchain-text-splitters/1.1.1/)
- **Signature changed** `langchain_text_splitters.SentenceTransformersTokenTextSplitter.__init__`  

Was def \_\_init\_\_(self, chunk_overlap: int = 50, model_name: str = 'sentence-transformers/all-mpnet-base-v2', tokens_per_chunk: int | None = None, \*\*kwargs: Any) -> None; now def \_\_init\_\_(self, chunk_overlap: int = 50, model_name: str =... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.1.1/)

## 1.0.0

17 breaking changes, first published October 17, 2025.

- **Signature changed** `langchain_text_splitters.ExperimentalMarkdownSyntaxTextSplitter.__init__`  

Was def \_\_init\_\_(self, headers_to_split_on: Union\[list\[tuple\[str, str\]\], None\] = None, return_each_line: bool = False, strip_headers: bool = True) -> None; now def \_\_init\_\_(self, headers_to_split_on: list\[tuple\[str, str\]\] | None = None... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.HTMLHeaderTextSplitter.split_text_from_file`  

Was def split_text_from_file(self, file: Any) -> list\[Document\]; now def split_text_from_file(self, file: str | IO\[str\]) -> list\[Document\]. [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.HTMLSectionSplitter.create_documents`  

Was def create_documents(self, texts: list\[str\], metadatas: Optional\[list\[dict\[Any, Any\]\]\] = None) -> list\[Document\]; now def create_documents(self, texts: list\[str\], metadatas: list\[dict\[Any, Any\]\] | None = None) -> list\[Document\]. [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.HTMLSectionSplitter.split_html_by_headers`  

Was def split_html_by_headers(self, html_doc: str) -> list\[dict\[str, Optional\[str\]\]\]; now def split_html_by_headers(self, html_doc: str) -> list\[dict\[str, str | None\]\]. [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.HTMLSectionSplitter.split_text_from_file`  

Was def split_text_from_file(self, file: Any) -> list\[Document\]; now def split_text_from_file(self, file: StringIO) -> list\[Document\]. [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.HTMLSemanticPreservingSplitter.__init__`  

Was def \_\_init\_\_(self, headers_to_split_on: list\[tuple\[str, str\]\], \*, max_chunk_size: int = 1000, chunk_overlap: int = 0, separators: Optional\[list\[str\]\] = None, elements_to_preserve: Optional\[list\[str\]\] = None, preserve_links: bool =... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.JSFrameworkTextSplitter.__init__`  

Was def \_\_init\_\_(self, separators: Optional\[list\[str\]\] = None, chunk_size: int = 2000, chunk_overlap: int = 0, \*\*kwargs: Any) -> None; now def \_\_init\_\_(self, separators: list\[str\] | None = None, chunk_size: int = 2000, chunk_overlap: int =... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.MarkdownHeaderTextSplitter.__init__`  

Was def \_\_init\_\_(self, headers_to_split_on: list\[tuple\[str, str\]\], return_each_line: bool = False, strip_headers: bool = True, custom_header_patterns: Optional\[dict\[str, int\]\] = None) -> None; now def \_\_init\_\_(self, headers_to_split_on... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.RecursiveCharacterTextSplitter.__init__`  

Was def \_\_init\_\_(self, separators: Optional\[list\[str\]\] = None, keep_separator: Union\[bool, Literal\['start', 'end'\]\] = True, is_separator_regex: bool = False, \*\*kwargs: Any) -> None; now def \_\_init\_\_(self, separators: list\[str\] | None =... [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)
- **Signature changed** `langchain_text_splitters.RecursiveJsonSplitter.__init__`  

Was def \_\_init\_\_(self, max_chunk_size: int = 2000, min_chunk_size: Optional\[int\] = None) -> None; now def \_\_init\_\_(self, max_chunk_size: int = 2000, min_chunk_size: int | None = None) -> None. [pypi.org](https://pypi.org/project/langchain-text-splitters/1.0.0/)

And 7 more in this version.

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
