Document loaders
zenpyre.document_loaders ¶
Contain document loaders.
zenpyre.document_loaders.DocumentListLoader ¶
Bases: BaseLoader
A loader that yields documents from a pre-built sequence.
Use this when documents are already in memory and you need to wrap
them in a :class:~langchain_core.document_loaders.BaseLoader
interface — for example, in tests or when constructing a pipeline
that expects a factory.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
documents
|
Sequence[Document]
|
A sequence of
:class: |
required |
Example
>>> from langchain_core.documents import Document
>>> from zenpyre.document_loaders import DocumentListLoader
>>> loader = DocumentListLoader(
... [Document(page_content="Hello"), Document(page_content="World")]
... )
>>> docs = loader.load()
zenpyre.document_loaders.DocumentStoreLoader ¶
Bases: BaseLoader, MultilineDisplayMixin
A loader that yields documents from a :class:BaseDocumentStore.
Use this when documents already live in a document store and you
need to wrap them in a
:class:~langchain_core.document_loaders.BaseLoader interface —
for example, to feed a store's contents into a pipeline (e.g. a
vector store indexer) that expects a loader.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
store
|
BaseDocumentStore
|
The :class: |
required |
Example
>>> from langchain_core.documents import Document
>>> from zenpyre.document_loaders import DocumentStoreLoader
>>> from zenpyre.document_stores import InMemoryDocumentStore
>>> store = InMemoryDocumentStore()
>>> store.add_documents(
... [Document(id="1", page_content="Hello"), Document(id="2", page_content="World")]
... )
>>> loader = DocumentStoreLoader(store)
>>> docs = loader.load()
zenpyre.document_loaders.resolve_document_loader ¶
resolve_document_loader(
document_loader: (
BaseLoader | dict[str, Any] | BaseConfig
),
) -> BaseLoader
Resolve a LangChain
:class:~langchain_core.document_loaders.BaseLoader instance from
an existing object, a configuration dictionary, or a
:class:~zenpyre.utils.config.BaseConfig.
If document_loader is already a
:class:~langchain_core.document_loaders.BaseLoader instance it is
returned as-is. If it is a :class:dict or a
:class:~zenpyre.utils.config.BaseConfig, it is treated as an
objectory factory configuration and instantiated via
:func:objectory.factory. See
:func:~zenpyre.utils.resolve.resolve_object for details.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
document_loader
|
BaseLoader | dict[str, Any] | BaseConfig
|
Either a fully configured
:class: |
required |
Returns:
| Type | Description |
|---|---|
BaseLoader
|
A configured :class: |
BaseLoader
|
instance. |
Raises:
| Type | Description |
|---|---|
TypeError
|
If the resolved object is not a
:class: |
Example
>>> from langchain_core.document_loaders import BaseLoader
>>> from zenpyre.document_loaders import resolve_document_loader
>>> class MyLoader(BaseLoader):
... def lazy_load(self):
... return iter([])
...
>>> # From an existing instance:
>>> document_loader = resolve_document_loader(MyLoader())
>>> # From a configuration dictionary:
>>> document_loader = resolve_document_loader( # doctest: +SKIP
... {
... "_target_": "langchain_core.document_loaders.LangSmithLoader",
... "project_name": "my-project",
... }
... )
zenpyre.document_loaders.factory ¶
Contain factories for document loaders.
zenpyre.document_loaders.factory.BaseLoaderFactory ¶
Bases: ABC
Abstract base class for document loader factories.
Subclasses implement :meth:make_loader to instantiate and return
a configured :class:~langchain_core.document_loaders.BaseLoader
object. This pattern decouples document loader creation from the
rest of the codebase, making it easy to swap loaders (e.g. file,
web, database) without changing call sites.
Example
>>> from typing import Iterator
>>> from langchain_core.document_loaders import BaseLoader
>>> from langchain_core.documents import Document
>>> from zenpyre.document_loaders.factory import BaseLoaderFactory
>>> class MyLoaderFactory(BaseLoaderFactory):
... def make_loader(self) -> BaseLoader:
... class MyLoader(BaseLoader):
... def lazy_load(self) -> Iterator[Document]:
... return iter([])
... return MyLoader()
...
zenpyre.document_loaders.factory.BaseLoaderFactory.make_loader
abstractmethod
¶
make_loader() -> BaseLoader
Create and return a configured document loader instance.
Returns:
| Name | Type | Description |
|---|---|---|
A |
BaseLoader
|
class: |
BaseLoader
|
instance ready for use. |
zenpyre.document_loaders.factory.ConfigurableLoaderFactory ¶
Bases: BaseLoaderFactory, MultilineDisplayMixin
A concrete document loader factory that accepts either a pre-
built :class:~langchain_core.document_loaders.BaseLoader instance
or a configuration dictionary.
When a dict is provided it is resolved at each :meth:make_loader
call via :func:~resolve_document_loader, which uses objectory
to instantiate the configured class. When an instance is provided
it is returned as-is.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loader
|
BaseLoader | dict[str, Any]
|
A fully configured
:class: |
required |
Example
>>> from typing import Iterator
>>> from langchain_core.document_loaders import BaseLoader
>>> from langchain_core.documents import Document
>>> from zenpyre.document_loaders.factory import ConfigurableLoaderFactory
>>> class MyLoader(BaseLoader):
... def lazy_load(self) -> Iterator[Document]:
... return iter([])
...
>>> factory = ConfigurableLoaderFactory(MyLoader())
>>> loader = factory.make_loader()
zenpyre.document_loaders.factory.LoaderFactory ¶
Bases: BaseLoaderFactory, MultilineDisplayMixin
A concrete document loader factory that wraps a pre-built
:class:~langchain_core.document_loaders.BaseLoader instance.
Use this when the document loader is already instantiated and you
simply want to wrap it in the :class:~BaseLoaderFactory
interface — for example, when injecting a fixed loader into a
component that expects a factory.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loader
|
BaseLoader
|
A fully configured
:class: |
required |
Example
>>> from typing import Iterator
>>> from langchain_core.document_loaders import BaseLoader
>>> from langchain_core.documents import Document
>>> from zenpyre.document_loaders.factory import LoaderFactory
>>> class MyLoader(BaseLoader):
... def lazy_load(self) -> Iterator[Document]:
... return iter([])
...
>>> factory = LoaderFactory(MyLoader())
>>> loader = factory.make_loader()