class_docstr: Lineages of trials for workers in PBT
  
  This class regroup all lineages of trials generated by PBT for a given experiment.
  
  Each lineage is a path from a leaf trial (highest fidelity level) up to the root
  (lowest fidelity level). Multiple lineages can fork from the same root, forming a tree.
  A Lineages object may reference multiple trees of lineages. Iterating a Lineages object will
  iterate on the roots of these trees.
docstr: Add or save the trial in the Lineages
  
  If the trial is not already in the Lineages, it is added as root. Otherwise,
  the corresponding lineage node is updated with given trial object.
  
  Parameters
  ----------
  trial: ``orion.core.worker.trial.Trial``
      The trial to register.
docstr_tok: ["Add","or","save","the","trial","in","the","Lineages","If","the","trial","is","not","already","in","the","Lineages",",","it","is","added","as","root",".","Otherwise",",","the","corresponding","lineage","node","is","updated","with","given","trial","object",".","Parameters","--","--","--","--","--","trial",":","``","orion.core.worker.trial.Trial","``","The","trial","to","register","."]
code: def register(self, trial: Trial) -> LineageNode:
      """Add or save the trial in the Lineages
  
      If the trial is not already in the Lineages, it is added as root. Otherwise,
      the corresponding lineage node is updated with given trial object.
  
      Parameters
      ----------
      trial: ``orion.core.worker.trial.Trial``
          The trial to register.
  
      """
      if trial.id not in self._trial_to_lineages:
          lineage = self.add(trial)
      else:
          lineage = self.get_lineage(trial)
          lineage.register(trial)
  
      return lineage
  
imports: from __future__ import annotations
  import copy
  import logging
  import time
  from typing import Any, ClassVar, Iterable, Sequence
  import numpy
  from orion.algo.base import BaseAlgorithm
  from orion.algo.pbt.exploit import exploit_factory
  from orion.algo.pbt.explore import explore_factory
  from orion.algo.random import Random
  from orion.algo.space import Fidelity, Space
  from orion.core.utils.flatten import flatten
  from orion.core.utils.tree import TreeNode
  from orion.core.worker.transformer import TransformedDimension
  from orion.core.worker.trial import Trial
label_desc: Use image node_id 8 for calling the Lineages obj's underlying member method code with example usage: obj.register(trial) and returns: lineage