(
cls,
source_: Optional[Union[str, Path, TextIOWrapper]] = None,
allow_properties: bool = False,
sql_renderer: Type[BaseRenderer] = DefaultSQLRenderer,
dbml_renderer: Type[BaseRenderer] = DefaultDBMLRenderer,
)
| 51 | """ |
| 52 | |
| 53 | def __new__( |
| 54 | cls, |
| 55 | source_: Optional[Union[str, Path, TextIOWrapper]] = None, |
| 56 | allow_properties: bool = False, |
| 57 | sql_renderer: Type[BaseRenderer] = DefaultSQLRenderer, |
| 58 | dbml_renderer: Type[BaseRenderer] = DefaultDBMLRenderer, |
| 59 | ): |
| 60 | if source_ is not None: |
| 61 | if isinstance(source_, str): |
| 62 | source = source_ |
| 63 | elif isinstance(source_, Path): |
| 64 | with open(source_, encoding="utf8") as f: |
| 65 | source = f.read() |
| 66 | elif isinstance(source_, TextIOWrapper): |
| 67 | source = source_.read() |
| 68 | else: |
| 69 | raise TypeError("Source must be str, path or file stream") |
| 70 | |
| 71 | source = remove_bom(source) |
| 72 | return cls.parse( |
| 73 | source, |
| 74 | allow_properties=allow_properties, |
| 75 | sql_renderer=sql_renderer, |
| 76 | dbml_renderer=dbml_renderer, |
| 77 | ) |
| 78 | else: |
| 79 | return super().__new__(cls) |
| 80 | |
| 81 | def __repr__(self): |
| 82 | return "<PyDBML>" |
nothing calls this directly
no test coverage detected