|
14 | 14 | from types import ModuleType
|
15 | 15 | from typing import Any, Dict, List, Tuple, Type
|
16 | 16 |
|
17 |
| -from pydantic.json_schema import GenerateJsonSchema, JsonSchemaValue |
18 |
| -from pydantic_core import core_schema |
19 | 17 | from uuid import uuid4
|
20 | 18 |
|
21 | 19 | from pydantic import VERSION, BaseModel, create_model
|
|
33 | 31 | except ImportError:
|
34 | 32 | GenericModel = None
|
35 | 33 |
|
| 34 | +if V2: |
| 35 | + try: |
| 36 | + from pydantic.json_schema import GenerateJsonSchema, JsonSchemaValue |
| 37 | + from pydantic_core import core_schema |
| 38 | + except ImportError: |
| 39 | + GenerateJsonSchema = None |
| 40 | + JsonSchemaValue = None |
| 41 | + pydantic_core = None |
| 42 | + |
36 | 43 | logger = logging.getLogger("pydantic2ts")
|
37 | 44 |
|
38 | 45 |
|
@@ -208,15 +215,17 @@ def is_matching_enum(prop_type: Any, schema_title: str, schema_enum: list[str])
|
208 | 215 | )
|
209 | 216 |
|
210 | 217 |
|
211 |
| -class CustomGenerateJsonSchema(GenerateJsonSchema): |
212 |
| - def enum_schema(self, schema: core_schema.EnumSchema) -> JsonSchemaValue: |
213 |
| - # Call the original method |
214 |
| - result = super().enum_schema(schema) |
| 218 | +if V2: |
| 219 | + |
| 220 | + class CustomGenerateJsonSchema(GenerateJsonSchema): |
| 221 | + def enum_schema(self, schema: core_schema.EnumSchema) -> JsonSchemaValue: |
| 222 | + # Call the original method |
| 223 | + result = super().enum_schema(schema) |
215 | 224 |
|
216 |
| - # Add tsEnumNames property |
217 |
| - result["tsEnumNames"] = [v.name for v in schema["members"]] |
| 225 | + # Add tsEnumNames property |
| 226 | + result["tsEnumNames"] = [v.name for v in schema["members"]] |
218 | 227 |
|
219 |
| - return result |
| 228 | + return result |
220 | 229 |
|
221 | 230 |
|
222 | 231 | def generate_json_schema_v1(
|
|
0 commit comments