41 """Return a constructor for the named CP tool type.
43 Called when code accesses ``atlascp.<ToolTypeName>``. Returns a callable
44 that creates and initializes a ``Tool`` subclass instance.
49 Tool type name without namespace, e.g. "MuonEfficiencyScaleFactors".
54 A constructor with signature
55 ``(instance_name, /, *, namespace="CP", properties=None, rename_containers=None)``.
56 ``instance_name`` is positional-only; all other arguments are keyword-only.
58 def constructor(instance_name, /, *, namespace="CP", properties=None, rename_containers=None):
59 type_and_name = f
"{namespace}::{name}/{instance_name}"
61 instance = cls.__new__(cls)
62 Tool.__init__(instance, type_and_name, properties=properties, rename_containers=rename_containers)
64 constructor.__name__ = name
65 constructor.__qualname__ = name