Coverage for src/qdrant_loader/connectors/localfile/config.py: 93%

14 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-06-04 05:50 +0000

1"""Configuration for LocalFile connector.""" 

2 

3from pydantic import AnyUrl, ConfigDict, Field, field_validator 

4 

5from qdrant_loader.config.source_config import SourceConfig 

6 

7 

8class LocalFileConfig(SourceConfig): 

9 """Configuration for a local file source.""" 

10 

11 model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") 

12 

13 include_paths: list[str] = Field( 

14 default_factory=list, description="Paths to include (glob patterns)" 

15 ) 

16 exclude_paths: list[str] = Field( 

17 default_factory=list, description="Paths to exclude (glob patterns)" 

18 ) 

19 file_types: list[str] = Field( 

20 default_factory=list, description="File types to process" 

21 ) 

22 max_file_size: int = Field( 

23 default=1048576, description="Maximum file size in bytes" 

24 ) 

25 

26 @field_validator("base_url") 

27 @classmethod 

28 def validate_base_url(cls, v: AnyUrl) -> AnyUrl: 

29 if v.scheme != "file": 

30 raise ValueError("base_url for localfile must start with 'file://'") 

31 return v