Random Pydantic Model Selection and Instance Generation

  • Share this:

Code introduction


This code defines a randomly selected Pydantic model and its method, and generates an instance.


Technology Stack : Pydantic

Code Type : Pydantic Model Usage

Code Difficulty : Intermediate


                
                    
from pydantic import BaseModel, Field
from random import choice
from typing import Optional

def generate_random_model():
    # Define a list of possible Pydantic models
    models = [
        BaseModel,
        BaseModel.__class__,
        Field,
        BaseModel.create schemas,
        BaseModel.parse_obj,
        BaseModel.parse_raw
    ]
    
    # Randomly select a Pydantic model
    selected_model = choice(models)
    
    # Define a random Pydantic model
    class RandomModel(BaseModel):
        name: str
        age: int = Field(default=18)
        is_student: Optional[bool] = None
    
    # Call the selected Pydantic model method
    if selected_model == BaseModel:
        instance = RandomModel(name="John Doe")
    elif selected_model == BaseModel.__class__:
        instance = RandomModel
    elif selected_model == Field:
        instance = Field(default=18)
    elif selected_model == BaseModel.create_schemas:
        instance = RandomModel.create_schemas()
    elif selected_model == BaseModel.parse_obj:
        instance = RandomModel.parse_obj({"name": "John Doe", "age": 30, "is_student": False})
    elif selected_model == BaseModel.parse_raw:
        instance = RandomModel.parse_raw('{"name": "John Doe", "age": 30, "is_student": false}')
    
    return instance

# Code Information                
              
Tags: