Skip to content

PYTHON INTEGRATION

DATAMIMIC Entity Services enable the definition, bundling, and reuse of domain-specific data generation logic—such as for personal data, addresses, internet, or banking.

They allow data dat generation directly through Python code.

Entity Services are parameterized and attribute-driven, similar to entities in Domain Generators (e.g., PersonService corresponds to a Person entity).

Basic Usage

Create one object

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from datamimic_ce.domains.common.services import PersonService
# get object service
person_service = PersonService()
# use object service to generate object (Person)
person = person_service.generate()
# get attribute of generated object
name = person.name  # Jose Ayers
given_name = person.given_name  # Jose
family_name = person.family_name  # Ayers
age = person.age  # 64

Create multi objects (as list)

1
2
3
4
5
6
7
8
person_service = PersonService()

persons = person_service.generate_batch(10)
for person in persons:
    name = person.name
    given_name = person.given_name
    family_name = person.family_name
    age = person.age

Provided Entity Services

  • PersonService
  • CountryService
  • CityService
  • AddressService
  • CompanyService
  • ProductService
  • OrderService
  • BankService
  • BankAccountService
  • CreditCardService
  • HospitalService
  • DoctorService
  • MedicalProcedureService
  • MedicalDeviceService
  • PatientService
  • InsuranceCompanyService
  • InsurancePolicyService
  • InsuranceCoverageService
  • InsuranceProductService
  • AdministrationOfficeService
  • EducationalInstitutionService
  • PoliceOfficerService

Custom Domain Factory

User can create a custom one using DataMimicTestFactory

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<setup>
    <!-- customer.xml -->
    <generate name="customer" count="10">
        <!-- Basic customer info -->
        <variable name="person" entity="Person(min_age=21, max_age=67)"/>
        <key name="id" generator="IncrementGenerator"/>
        <key name="first_name" script="person.given_name"/>
        <key name="last_name" script="person.family_name"/>
        <key name="email" script="person.email"/>
        <key name="status" values="'active', 'inactive', 'pending'"/>
    </generate>
</setup>
1
2
3
4
5
6
7
8
from datamimic_ce.factory.datamimic_test_factory import DataMimicTestFactory

customer_factory = DataMimicTestFactory("datamimic.xml", "customer")
customer = customer_factory.create()

customer["id"]  # 1
customer["first_name"]  # Jose
customer["last_name"]   # Ayers