40 lines
954 B
Python
40 lines
954 B
Python
from pathlib import Path
|
|
from polyfactory.factories.pydantic_factory import ModelFactory
|
|
from polyfactory import Use
|
|
|
|
from benchmark.pydantic_benchmark.models import (
|
|
ColumnsInput,
|
|
PlanogramInput,
|
|
PlanogramsBulkInputPayload,
|
|
)
|
|
|
|
|
|
COLUMNS_COUNT = 1000
|
|
PLANOGRAMS_COUNT = 1000
|
|
|
|
|
|
class ColumnsInputFactory(ModelFactory):
|
|
__model__ = ColumnsInput
|
|
|
|
|
|
class PlanogramInputFactory(ModelFactory):
|
|
__model__ = PlanogramInput
|
|
columns = Use(ColumnsInputFactory.batch, size=COLUMNS_COUNT)
|
|
|
|
|
|
class PlanogramsBulkInputPayloadFactory(ModelFactory):
|
|
__model__ = PlanogramsBulkInputPayload
|
|
|
|
planograms = Use(PlanogramInputFactory.batch, size=PLANOGRAMS_COUNT)
|
|
|
|
|
|
def create_test_file(filename: Path):
|
|
bulk = PlanogramsBulkInputPayloadFactory.build()
|
|
|
|
out_data = bulk.model_dump_json(by_alias=True)
|
|
|
|
with open(filename, "w") as f:
|
|
f.write(out_data)
|
|
|
|
print(f"{len(out_data)} bytes of test data written to {filename}.")
|