Skip to content
Health
70/100
fair
  • Security25/25
    No findings
  • Activity25/25
    Last human commit 2 months ago
  • Required by15/25
    1 module depends on it
  • Maturity5/25
    In 1 Odoo series since 20.0

Heuristic over the facts below, not an audit · How it's computed

Security findings
Grave / minor (static analysis)
Required by
1
Modules depending on it
External deps
0 pip · 0 bin
Python packages / system binaries
License
LGPL-3
No conflicts with its dependencies
Folder size
1.54 MB
Module directory on disk
Code analysis 0 migration notes 4 models 0 views 0 HTTP endpoints

Description

Generate synthetic data for an Odoo database, following a predefined blueprint. Used for performance testing.

Dependencies

Odoo dependencies
odoo/odoo:
Python dependencies
None
System dependencies
None
Required by
test_populate

Code analysis

Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.

Views touched 0

No views found for this module.

HTTP endpoints 0

No HTTP endpoints found for this module.

Models touched 4

New fields (5)
  • definition Json
    compute='_compute_definition' prefetch=DEFINITION_PREFETCH_GROUP readonly=True string='JSON Definition'
  • definition_json Json
    prefetch=DEFINITION_PREFETCH_GROUP args: 'Raw JSON Definition'
  • definition_xml Char
    prefetch=DEFINITION_PREFETCH_GROUP args: 'Raw XML Definition'
  • inherit_id Many2one → populate.blueprint
    comodel_name='populate.blueprint' help='Blueprint to inherit from. Use XPath expressions in definition_xml to modify the parent.' index=True ondelete='set null' string='Inherited Blueprint'
  • name Char
    required=True args: 'Blueprint Name'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (17)
  • batched Boolean
    help='For write/function jobs: generate one value set and perform one call per executable job.'
  • blueprint_id Many2one → populate.blueprint
    index=True ondelete='cascade' precompute=True related='session_id.blueprint_id' required=True store=True args: 'populate.blueprint'
  • child_ids One2many → populate.job
    inverse_name='parent_id' args: 'populate.job'
  • context Json
  • domain Char
    help='Domain selecting target records for jobs that update existing records.'
  • instructions Json
  • is_done Boolean
  • method_name Char
    help='Method called by function jobs.'
  • model_name Char
    required=True
  • operation Selection
    default='create' required=True args: [('create', 'Create'), ('write', 'Write'), ('function', 'Function')]
  • parallel Boolean
    default=True help='Can the job be executed in parallel?'
  • parent_id Many2one → populate.job
    index=True args: 'populate.job'
  • parent_path Char
    index=True
  • record_count Integer
    default=1
  • ref Char
    help="Reference the batch of records used by the job.\n If the job operation is 'create' -> Annotates the records for referencing.\n If the job operation is 'write' or 'function' -> Refers to records with said reference.\n "
  • seed Integer
  • session_id Many2one → populate.session
    index=True required=True args: 'populate.session'
Public methods (3)
  • is_executable(self) -> bool
    @property
    Whether this job performs actual work.
  • pending_subjobs(self) -> Self
    @property
  • progress(self) -> float
    @property
    Get the progress of the job as value between [0, 1]

New fields (6)
  • blueprint_id Many2one
    related='job_id.blueprint_id'
  • job_id Many2one → populate.job
    ondelete='cascade' required=True args: 'populate.job'
  • ref Char
    related='job_id.ref'
  • res_id Many2oneReference
    model_field='res_model' required=True args: 'Record'
  • res_model Char
    related='job_id.model_name' args: 'Model'
  • session_id Many2one
    related='job_id.session_id'
Public methods (0)

No public methods.

New fields (5)
  • blueprint_id Many2one → populate.blueprint
    ondelete='cascade' required=True args: 'populate.blueprint'
  • job_ids One2many → populate.job
    domain=[('parent_id', '=', False)] inverse_name='session_id' args: 'populate.job'
  • scaling_factor Float
    args: 'Scaling Factor'
  • seed Integer
    default=<expr> args: 'Seed'
  • worker_count Integer
    default=1 args: 'Number of parallel workers that will run jobs at the same time'
Public methods (8)
  • create(self, vals_list)
    @api.model_create_multi
    Create sessions and instantiate their jobs from the selected blueprint. :param vals_list: Values for the new ``populate.session`` records. :return: Created session records.
  • is_done(self) -> bool
    @property
  • is_parallel(self) -> bool
    @property
  • is_profiling(self) -> bool
    @property
  • is_running(self) -> bool
    @property
    The session is running if its advisory lock is currently held.
  • pending_jobs(self)
    @property
  • profile_session_name(self) -> <expr>
    @property
  • progress(self) -> float
    @property
    Get the progress of the session as value between [0, 1]