Coverage for src\sql_organizer\file.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-07-25 09:55 +0300

1from pathlib import Path 

2 

3from pydantic import BaseModel, Field 

4 

5 

6class SqlFile(BaseModel, frozen=True): 

7 file_name: str = Field(min_length=1) 

8 sql_text: str 

9 

10 @classmethod 

11 def from_path(cls, path: Path) -> "OSError | SqlFile": 

12 file_name = path.stem 

13 try: 

14 with path.open("r") as f: 

15 sql_text = f.read() 

16 except OSError as e: 

17 return e 

18 return SqlFile(file_name=file_name, sql_text=sql_text)