Creating command-line Tools

[1]:
from ctapipe.core import Tool, Component, TelescopeComponent
from ctapipe.core.traits import (
    Integer,
    Float,
    List,
    Dict,
    Unicode,
    TraitError,
    observe,
    FloatTelescopeParameter,
    Path,
)
import logging
from time import sleep
from astropy import units as u
from ctapipe.utils import get_dataset_path
[2]:
GAMMA_FILE = get_dataset_path("gamma_prod5.simtel.zst")

see https://github.com/ipython/traitlets/blob/master/examples/myapp.py

Setup:

Create a few Components that we will use later in a Tool:

[3]:
class MyComponent(Component):
    """A Component that does stuff"""

    value = Integer(default_value=-1, help="Value to use").tag(config=True)

    def do_thing(self):
        self.log.debug("Did thing")


# in order to have 2 of the same components at once
class SecondaryMyComponent(MyComponent):
    """A second component"""

    pass


class AdvancedComponent(Component):
    """An advanced technique"""

    value1 = Integer(default_value=-1, help="Value to use").tag(config=True)
    infile = Path(
        help="input file name",
        exists=None,  # set to True to require existing, False for requiring non-existing
        directory_ok=False,
    ).tag(config=True)
    outfile = Path(help="output file name", exists=False, directory_ok=False).tag(
        config=True
    )

    def __init__(self, config=None, parent=None, **kwargs):
        super().__init__(config=config, parent=parent, **kwargs)
        # components can have sub components, but these must have
        # then parent=self as argument and be assigned as member
        # so the full config can be received later
        self.subcompent = MyComponent(parent=self)

    @observe("outfile")
    def on_outfile_changed(self, change):
        self.log.warning("Outfile was changed to '{}'".format(change))


class TelescopeWiseComponent(TelescopeComponent):
    """a component that contains parameters that are per-telescope configurable"""

    param = FloatTelescopeParameter(
        help="Something configurable with telescope patterns", default_value=5.0
    ).tag(config=True)
[4]:
MyComponent()
[4]:
MyComponent

A Component that does stuff

value -1 Value to use (default: -1)
[5]:
AdvancedComponent(infile="test.foo", outfile="out.foo")
Outfile was changed to '{'name': 'outfile', 'old': None, 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.foo'), 'owner': <__main__.AdvancedComponent object at 0x7fe7e07bcc10>, 'type': 'change'}'
[5]:
AdvancedComponent

An advanced technique

infile /home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/test.foo input file name (default: traitlets.Undefined)
outfile /home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.foo output file name (default: traitlets.Undefined)
value1 -1 Value to use (default: -1)

TelescopeComponents need to have a subarray given to them in order to work (since they need one to turn a TelescopeParameter into a concrete list of values for each telescope. Here we will give a dummy one:

[6]:
from ctapipe.instrument import SubarrayDescription, TelescopeDescription

subarray = SubarrayDescription.read(GAMMA_FILE)
subarray.info()
Subarray : MonteCarloArray
Num Tels : 180
Footprint: 4.92 km2

       Type       Count     Tel IDs
----------------- ----- ---------------
   SST_ASTRI_CHEC   120 30-99,131-180
   LST_LST_LSTCam     4 1-4
 MST_MST_FlashCam    28 5-29,125-127
MST_MST_NectarCam    28 100-124,128-130
[7]:
TelescopeWiseComponent(subarray=subarray)
[7]:
TelescopeWiseComponent

a component that contains parameters that are per-telescope configurable

param [('type', '*', 5.0)] Something configurable with telescope patterns. (default: traitlets.Undefined)

This TelescopeParameters can then be set using a list of patterns like:

component.param = [
    ("type", "LST*",3.0),
    ("type", "MST*", 2.0),
    (id, 25, 4.0)
]

These get translated into per-telescope-id values once the subarray is registered. After that one acccess the per-telescope id values via:

component.param.tel[tel_id]

Now create an executable Tool that contains the Components

Note that all the components we wish to be configured via the tool must be added to the classes attribute.

[8]:
class MyTool(Tool):
    name = "mytool"
    description = "do some things and stuff"
    aliases = dict(
        infile="AdvancedComponent.infile",
        outfile="AdvancedComponent.outfile",
        iterations="MyTool.iterations",
    )

    # Which classes are registered for configuration
    classes = [
        MyComponent,
        AdvancedComponent,
        SecondaryMyComponent,
        TelescopeWiseComponent,
    ]

    # local configuration parameters
    iterations = Integer(5, help="Number of times to run", allow_none=False).tag(
        config=True
    )

    def setup(self):
        self.comp = MyComponent(parent=self)
        self.comp2 = SecondaryMyComponent(parent=self)
        self.comp3 = TelescopeWiseComponent(parent=self, subarray=subarray)
        self.advanced = AdvancedComponent(parent=self)

    def start(self):
        self.log.info("Performing {} iterations...".format(self.iterations))
        for ii in range(self.iterations):
            self.log.info("ITERATION {}".format(ii))
            self.comp.do_thing()
            self.comp2.do_thing()
            sleep(0.1)

    def finish(self):
        self.log.warning("Shutting down.")

Get Help info

The following allows you to print the help info within a Jupyter notebook, but this same inforamtion would be displayed if the user types:

mytool --help
[9]:
tool = MyTool()
tool
[9]:
MyTool

do some things and stuff

config_files [] (default: traitlets.Undefined)
iterations 5 Number of times to run (default: 5)
log_config {} (default: traitlets.Undefined)
log_datefmt %Y-%m-%d %H:%M:%S The date format used by logging formatters for %(asctime)s (default: %Y-%m-%d %H:%M:%S)
log_file None Filename for the log (default: None)
log_file_level INFO Logging Level for File Logging (default: INFO)
log_format [%(name)s]%(highlevel)s %(message)s The Logging format template (default: [%(name)s]%(highlevel)s %(message)s)
log_level 30 Set the log level by value or name. (default: 30)
logging_config {} Configure additional log handlers. The default stderr logs handler is configured by the log_level, log_datefmt and log_format settings. This configuration can be used to configure additional handlers (e.g. to output the log to a file) or for finer control over the default handlers. If provided this should be a logging configuration dictionary, for more information see: https://docs.python.org/3/library/logging.config.html#logging-config-dictschema This dictionary is merged with the base logging configuration which defines the following: * A logging formatter intended for interactive use called ``console``. * A logging handler that writes to stderr called ``console`` which uses the formatter ``console``. * A logger with the name of this application set to ``DEBUG`` level. This example adds a new handler that writes to a file: .. code-block:: python c.Application.logging_config = { 'handlers': { 'file': { 'class': 'logging.FileHandler', 'level': 'DEBUG', 'filename': '', } }, 'loggers': { '': { 'level': 'DEBUG', # NOTE: if you don't list the default "console" # handler here then it will be disabled 'handlers': ['console', 'file'], }, } } (default: traitlets.Undefined)
overwrite False (default: False)
provenance_log /home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log (default: traitlets.Undefined)
quiet False (default: False)
show_config False Instead of starting the Application, dump configuration to stdout (default: False)
show_config_json False Instead of starting the Application, dump configuration to stdout (as JSON) (default: False)

Components: MyTool, MyComponent, AdvancedComponent, SecondaryMyComponent, TelescopeWiseComponent

[10]:
tool.print_help()
do some things and stuff

Options
=======
The options below are convenience aliases to configurable class-options,
as listed in the "Equivalent to" description-line of the aliases.
To see all configurable class-options for some <cmd>, use:
    <cmd> --help-all

-q, --quiet
    Disable console logging.
    Equivalent to: [--Tool.quiet=True]
-v, --verbose
    Set log level to DEBUG
    Equivalent to: [--Tool.log_level=DEBUG]
--overwrite
    Overwrite existing output files without asking
    Equivalent to: [--Tool.overwrite=True]
--debug
    Set log-level to debug, for the most verbose logging.
    Equivalent to: [--Application.log_level=10]
--show-config
    Show the application's configuration (human-readable format)
    Equivalent to: [--Application.show_config=True]
--show-config-json
    Show the application's configuration (json format)
    Equivalent to: [--Application.show_config_json=True]
-c, --config=<list-item-1>...
    Default: []
    Equivalent to: [--Tool.config_files]
--log-level=<Enum>
    Set the log level by value or name.
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 30
    Equivalent to: [--Tool.log_level]
-l, --log-file=<Path>
    Filename for the log
    Default: None
    Equivalent to: [--Tool.log_file]
--log-file-level=<Enum>
    Logging Level for File Logging
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 'INFO'
    Equivalent to: [--Tool.log_file_level]
--provenance-log=<Path>
    Default: traitlets.Undefined
    Equivalent to: [--Tool.provenance_log]
--infile=<Path>
    input file name
    Default: traitlets.Undefined
    Equivalent to: [--AdvancedComponent.infile]
--outfile=<Path>
    output file name
    Default: traitlets.Undefined
    Equivalent to: [--AdvancedComponent.outfile]
--iterations=<Int>
    Number of times to run
    Default: 5
    Equivalent to: [--MyTool.iterations]

To see all available configurables, use `--help-all`.

The following is equivalant to the user typing mytool --help-all

[11]:
tool.print_help(classes=True)
do some things and stuff

Options
=======
The options below are convenience aliases to configurable class-options,
as listed in the "Equivalent to" description-line of the aliases.
To see all configurable class-options for some <cmd>, use:
    <cmd> --help-all

-q, --quiet
    Disable console logging.
    Equivalent to: [--Tool.quiet=True]
-v, --verbose
    Set log level to DEBUG
    Equivalent to: [--Tool.log_level=DEBUG]
--overwrite
    Overwrite existing output files without asking
    Equivalent to: [--Tool.overwrite=True]
--debug
    Set log-level to debug, for the most verbose logging.
    Equivalent to: [--Application.log_level=10]
--show-config
    Show the application's configuration (human-readable format)
    Equivalent to: [--Application.show_config=True]
--show-config-json
    Show the application's configuration (json format)
    Equivalent to: [--Application.show_config_json=True]
-c, --config=<list-item-1>...
    Default: []
    Equivalent to: [--Tool.config_files]
--log-level=<Enum>
    Set the log level by value or name.
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 30
    Equivalent to: [--Tool.log_level]
-l, --log-file=<Path>
    Filename for the log
    Default: None
    Equivalent to: [--Tool.log_file]
--log-file-level=<Enum>
    Logging Level for File Logging
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 'INFO'
    Equivalent to: [--Tool.log_file_level]
--provenance-log=<Path>
    Default: traitlets.Undefined
    Equivalent to: [--Tool.provenance_log]
--infile=<Path>
    input file name
    Default: traitlets.Undefined
    Equivalent to: [--AdvancedComponent.infile]
--outfile=<Path>
    output file name
    Default: traitlets.Undefined
    Equivalent to: [--AdvancedComponent.outfile]
--iterations=<Int>
    Number of times to run
    Default: 5
    Equivalent to: [--MyTool.iterations]

Class options
=============
The command-line option below sets the respective configurable class-parameter:
    --Class.parameter=value
This line is evaluated in Python, so simple expressions are allowed.
For instance, to set `C.a=[0,1,2]`, you may type this:
    --C.a='range(3)'

Application(SingletonConfigurable) options
------------------------------------------
--Application.log_datefmt=<Unicode>
    The date format used by logging formatters for %(asctime)s
    Default: '%Y-%m-%d %H:%M:%S'
--Application.log_format=<Unicode>
    The Logging format template
    Default: '[%(name)s]%(highlevel)s %(message)s'
--Application.log_level=<Enum>
    Set the log level by value or name.
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 30
--Application.logging_config=<key-1>=<value-1>...
    Configure additional log handlers.
    The default stderr logs handler is configured by the log_level, log_datefmt
    and log_format settings.
    This configuration can be used to configure additional handlers (e.g. to
    output the log to a file) or for finer control over the default handlers.
    If provided this should be a logging configuration dictionary, for more
    information see:
    https://docs.python.org/3/library/logging.config.html#logging-config-
    dictschema
    This dictionary is merged with the base logging configuration which defines
    the following:
    * A logging formatter intended for interactive use called
      ``console``.
    * A logging handler that writes to stderr called
      ``console`` which uses the formatter ``console``.
    * A logger with the name of this application set to ``DEBUG``
      level.
    This example adds a new handler that writes to a file:
    .. code-block:: python
       c.Application.logging_config = {
           'handlers': {
               'file': {
                   'class': 'logging.FileHandler',
                   'level': 'DEBUG',
                   'filename': '<path/to/file>',
               }
           },
           'loggers': {
               '<application-name>': {
                   'level': 'DEBUG',
                   # NOTE: if you don't list the default "console"
                   # handler here then it will be disabled
                   'handlers': ['console', 'file'],
               },
           }
       }
    Default: {}
--Application.show_config=<Bool>
    Instead of starting the Application, dump configuration to stdout
    Default: False
--Application.show_config_json=<Bool>
    Instead of starting the Application, dump configuration to stdout (as JSON)
    Default: False

Tool(Application) options
-------------------------
--Tool.config_files=<list-item-1>...
    Default: []
--Tool.log_config=<key-1>=<value-1>...
    Default: {}
--Tool.log_datefmt=<Unicode>
    The date format used by logging formatters for %(asctime)s
    Default: '%Y-%m-%d %H:%M:%S'
--Tool.log_file=<Path>
    Filename for the log
    Default: None
--Tool.log_file_level=<Enum>
    Logging Level for File Logging
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 'INFO'
--Tool.log_format=<Unicode>
    The Logging format template
    Default: '[%(name)s]%(highlevel)s %(message)s'
--Tool.log_level=<Enum>
    Set the log level by value or name.
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 30
--Tool.logging_config=<key-1>=<value-1>...
    Configure additional log handlers.
    The default stderr logs handler is configured by the log_level, log_datefmt
    and log_format settings.
    This configuration can be used to configure additional handlers (e.g. to
    output the log to a file) or for finer control over the default handlers.
    If provided this should be a logging configuration dictionary, for more
    information see:
    https://docs.python.org/3/library/logging.config.html#logging-config-
    dictschema
    This dictionary is merged with the base logging configuration which defines
    the following:
    * A logging formatter intended for interactive use called
      ``console``.
    * A logging handler that writes to stderr called
      ``console`` which uses the formatter ``console``.
    * A logger with the name of this application set to ``DEBUG``
      level.
    This example adds a new handler that writes to a file:
    .. code-block:: python
       c.Application.logging_config = {
           'handlers': {
               'file': {
                   'class': 'logging.FileHandler',
                   'level': 'DEBUG',
                   'filename': '<path/to/file>',
               }
           },
           'loggers': {
               '<application-name>': {
                   'level': 'DEBUG',
                   # NOTE: if you don't list the default "console"
                   # handler here then it will be disabled
                   'handlers': ['console', 'file'],
               },
           }
       }
    Default: {}
--Tool.overwrite=<Bool>
    Default: False
--Tool.provenance_log=<Path>
    Default: traitlets.Undefined
--Tool.quiet=<Bool>
    Default: False
--Tool.show_config=<Bool>
    Instead of starting the Application, dump configuration to stdout
    Default: False
--Tool.show_config_json=<Bool>
    Instead of starting the Application, dump configuration to stdout (as JSON)
    Default: False

MyTool(Tool) options
--------------------
--MyTool.config_files=<list-item-1>...
    Default: []
--MyTool.iterations=<Int>
    Number of times to run
    Default: 5
--MyTool.log_config=<key-1>=<value-1>...
    Default: {}
--MyTool.log_datefmt=<Unicode>
    The date format used by logging formatters for %(asctime)s
    Default: '%Y-%m-%d %H:%M:%S'
--MyTool.log_file=<Path>
    Filename for the log
    Default: None
--MyTool.log_file_level=<Enum>
    Logging Level for File Logging
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 'INFO'
--MyTool.log_format=<Unicode>
    The Logging format template
    Default: '[%(name)s]%(highlevel)s %(message)s'
--MyTool.log_level=<Enum>
    Set the log level by value or name.
    Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL']
    Default: 30
--MyTool.logging_config=<key-1>=<value-1>...
    Configure additional log handlers.
    The default stderr logs handler is configured by the log_level, log_datefmt
    and log_format settings.
    This configuration can be used to configure additional handlers (e.g. to
    output the log to a file) or for finer control over the default handlers.
    If provided this should be a logging configuration dictionary, for more
    information see:
    https://docs.python.org/3/library/logging.config.html#logging-config-
    dictschema
    This dictionary is merged with the base logging configuration which defines
    the following:
    * A logging formatter intended for interactive use called
      ``console``.
    * A logging handler that writes to stderr called
      ``console`` which uses the formatter ``console``.
    * A logger with the name of this application set to ``DEBUG``
      level.
    This example adds a new handler that writes to a file:
    .. code-block:: python
       c.Application.logging_config = {
           'handlers': {
               'file': {
                   'class': 'logging.FileHandler',
                   'level': 'DEBUG',
                   'filename': '<path/to/file>',
               }
           },
           'loggers': {
               '<application-name>': {
                   'level': 'DEBUG',
                   # NOTE: if you don't list the default "console"
                   # handler here then it will be disabled
                   'handlers': ['console', 'file'],
               },
           }
       }
    Default: {}
--MyTool.overwrite=<Bool>
    Default: False
--MyTool.provenance_log=<Path>
    Default: traitlets.Undefined
--MyTool.quiet=<Bool>
    Default: False
--MyTool.show_config=<Bool>
    Instead of starting the Application, dump configuration to stdout
    Default: False
--MyTool.show_config_json=<Bool>
    Instead of starting the Application, dump configuration to stdout (as JSON)
    Default: False

MyComponent(Component) options
------------------------------
--MyComponent.value=<Int>
    Value to use
    Default: -1

AdvancedComponent(Component) options
------------------------------------
--AdvancedComponent.infile=<Path>
    input file name
    Default: traitlets.Undefined
--AdvancedComponent.outfile=<Path>
    output file name
    Default: traitlets.Undefined
--AdvancedComponent.value1=<Int>
    Value to use
    Default: -1

SecondaryMyComponent(MyComponent) options
-----------------------------------------
--SecondaryMyComponent.value=<Int>
    Value to use
    Default: -1

TelescopeWiseComponent(TelescopeComponent) options
--------------------------------------------------
--TelescopeWiseComponent.param=<floattelescopeparameter-item-1>...
    Something configurable with telescope patterns.
    Default: [('type', '*', 5.0)]

Run the tool

here we pass in argv since it is a Notebook, but if argv is not specified it’s read from sys.argv, so the following is the same as running:

mytool --log_level=INFO --infile gamma_test.simtel.gz --iterations=3

As Tools are intended to be exectutables, they are raising SystemExit on exit. Here, we use them to demonstrate how it would work, so we catch the SystemExit.

[12]:
try:
    tool.run(argv=["--infile", str(GAMMA_FILE), "--outfile", "out.csv"])
except SystemExit as e:
    assert e.code == 0, f"Tool returned with error status {e}"
2023-05-17 15:27:46,459 WARNING [__main__.mytool.AdvancedComponent] (2562530776.on_outfile_changed): Outfile was changed to '{'name': 'outfile', 'old': traitlets.Undefined, 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv'), 'owner': <__main__.AdvancedComponent object at 0x7fe7d4f9de50>, 'type': 'change'}'
2023-05-17 15:27:46,962 WARNING [__main__.mytool] (462504653.finish): Shutting down.
[13]:
tool.log_format = "%(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s"


try:
    tool.run(
        argv=[
            "--log-level",
            "INFO",
            "--infile",
            str(GAMMA_FILE),
            "--outfile",
            "out.csv",
            "--iterations",
            "3",
        ]
    )
except SystemExit as e:
    assert e.code == 0, f"Tool returned with error status {e}"
2023-05-17 15:27:47,214 INFO [__main__.mytool] (tool.initialize): Loading config from '[]'
2023-05-17 15:27:47,219 INFO [__main__.mytool] (tool.initialize): ctapipe version 0.19.2
2023-05-17 15:27:47,223 WARNING [__main__.mytool.AdvancedComponent] (2562530776.on_outfile_changed): Outfile was changed to '{'name': 'outfile', 'old': traitlets.Undefined, 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv'), 'owner': <__main__.AdvancedComponent object at 0x7fe7d4f9d370>, 'type': 'change'}'
2023-05-17 15:27:47,225 INFO [__main__.mytool] (462504653.start): Performing 3 iterations...
2023-05-17 15:27:47,226 INFO [__main__.mytool] (462504653.start): ITERATION 0
2023-05-17 15:27:47,327 INFO [__main__.mytool] (462504653.start): ITERATION 1
2023-05-17 15:27:47,428 INFO [__main__.mytool] (462504653.start): ITERATION 2
2023-05-17 15:27:47,529 WARNING [__main__.mytool] (462504653.finish): Shutting down.
2023-05-17 15:27:47,530 INFO [__main__.mytool] (tool.run): Finished: mytool
2023-05-17 15:27:47,534 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:47,535 INFO [__main__.mytool] (tool.write_provenance): Output:

here we change the log-level to DEBUG:

[14]:
try:
    tool.run(
        argv=[
            "--log-level",
            "DEBUG",
            "--infile",
            str(GAMMA_FILE),
            "--outfile",
            "out.csv",
        ]
    )
except SystemExit as e:
    assert e.code == 0, f"Tool returned with error status {e}"
2023-05-17 15:27:47,550 INFO [__main__.mytool] (tool.run): Starting: mytool
2023-05-17 15:27:47,776 INFO [__main__.mytool] (tool.initialize): Loading config from '[]'
2023-05-17 15:27:47,780 INFO [__main__.mytool] (tool.initialize): ctapipe version 0.19.2
2023-05-17 15:27:47,786 WARNING [__main__.mytool.AdvancedComponent] (2562530776.on_outfile_changed): Outfile was changed to '{'name': 'outfile', 'old': traitlets.Undefined, 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv'), 'owner': <__main__.AdvancedComponent object at 0x7fe7d500d850>, 'type': 'change'}'
2023-05-17 15:27:47,786 DEBUG [__main__.mytool] (tool.run): CONFIG: {'MyTool': {'config_files': [], 'iterations': 3, 'log_config': {}, 'log_datefmt': '%Y-%m-%d %H:%M:%S', 'log_file': None, 'log_file_level': 'INFO', 'log_format': '%(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s', 'log_level': 10, 'logging_config': {}, 'overwrite': False, 'provenance_log': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log'), 'quiet': False, 'show_config': False, 'show_config_json': False, 'MyComponent': {'value': -1}, 'SecondaryMyComponent': {'value': -1}, 'TelescopeWiseComponent': {'param': [('type', '*', 5.0)]}, 'AdvancedComponent': {'infile': PosixPath('/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst'), 'outfile': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv'), 'value1': -1, 'MyComponent': {'value': -1}}}}
2023-05-17 15:27:47,788 INFO [__main__.mytool] (462504653.start): Performing 3 iterations...
2023-05-17 15:27:47,790 INFO [__main__.mytool] (462504653.start): ITERATION 0
2023-05-17 15:27:47,791 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:47,792 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:47,893 INFO [__main__.mytool] (462504653.start): ITERATION 1
2023-05-17 15:27:47,894 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:47,894 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:47,995 INFO [__main__.mytool] (462504653.start): ITERATION 2
2023-05-17 15:27:47,996 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:47,997 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:48,098 WARNING [__main__.mytool] (462504653.finish): Shutting down.
2023-05-17 15:27:48,099 INFO [__main__.mytool] (tool.run): Finished: mytool
2023-05-17 15:27:48,102 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:48,103 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:48,105 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:48,110 DEBUG [__main__.mytool] (tool.write_provenance): PROVENANCE: '[
   {
      "activity_name": "mytool",
      "activity_uuid": "063b058d-3860-4fda-9e0e-50c54c53e83c",
      "start": {
         "time_utc": "2023-05-17T15:27:46.231"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:46.963"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:46.451"
      },
      "input": [],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [],
            "iterations": 5,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "[%(name)s]%(highlevel)s %(message)s",
            "log_level": 30,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.012199999999999989
   },
   {
      "activity_name": "mytool",
      "activity_uuid": "1965b8d8-0de4-4773-b8be-c1cc4d45aa2c",
      "start": {
         "time_utc": "2023-05-17T15:27:46.987"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:47.532"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:47.209"
      },
      "input": [],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [],
            "iterations": 3,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "%(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s",
            "log_level": 20,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.009083333333332888
   },
   {
      "activity_name": "mytool",
      "activity_uuid": "a81e4fab-a21c-4667-a429-e9932399f1e3",
      "start": {
         "time_utc": "2023-05-17T15:27:47.552"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:48.100"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:47.771"
      },
      "input": [],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [],
            "iterations": 3,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "%(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s",
            "log_level": 10,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.009133333333313232
   }
]'
2023-05-17 15:27:48,116 DEBUG [__main__.mytool] (application.exit): Exiting application: mytool

you can also set parameters directly in the class, rather than using the argument/configfile parser. This is useful if you are calling the Tool from a script rather than the command-line

[15]:
tool.iterations = 1
tool.log_level = 0

try:
    tool.run(["--infile", str(GAMMA_FILE), "--outfile", "out.csv"])
except SystemExit as e:
    assert e.code == 0, f"Tool returned with error status {e}"
2023-05-17 15:27:48,129 INFO [__main__.mytool] (tool.run): Starting: mytool
2023-05-17 15:27:48,372 WARNING [__main__.mytool.AdvancedComponent] (2562530776.on_outfile_changed): Outfile was changed to '{'name': 'outfile', 'old': traitlets.Undefined, 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv'), 'owner': <__main__.AdvancedComponent object at 0x7fe7d500d8b0>, 'type': 'change'}'
2023-05-17 15:27:48,474 WARNING [__main__.mytool] (462504653.finish): Shutting down.

see what happens when a value is set that is not of the correct type:

[16]:
try:
    tool.iterations = "badval"
except TraitError as E:
    print("bad value:", E)
except SystemExit as e:
    assert e.code == 0, f"Tool returned with error status {e}"
bad value: The 'iterations' trait of a MyTool instance expected an int, not the str 'badval'.

Example of what happens when you change a parameter that is being “observed” in a class. It’s handler is called:

[17]:
tool.advanced.outfile = "Another.txt"
2023-05-17 15:27:48,504 WARNING [__main__.mytool.AdvancedComponent] (2562530776.on_outfile_changed): Outfile was changed to '{'name': 'outfile', 'old': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv'), 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/Another.txt'), 'owner': <__main__.AdvancedComponent object at 0x7fe7d500d8b0>, 'type': 'change'}'

we see that the handler for outfile was called, and it receive a change dict that shows the old and new values.

create a tool using a config file:

[18]:
tool2 = MyTool()
[19]:
try:
    tool2.run(argv=["--config", "Tools.json"])
except SystemExit as e:
    assert e.code == 0, f"Tool returned with error status {e}"
2023-05-17 15:27:48,751 INFO [__main__.mytool] (tool.initialize): ctapipe version 0.19.2
2023-05-17 15:27:48,755 WARNING [__main__.mytool.AdvancedComponent] (2562530776.on_outfile_changed): Outfile was changed to '{'name': 'outfile', 'old': traitlets.Undefined, 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/foo.txt'), 'owner': <__main__.AdvancedComponent object at 0x7fe7d4f76610>, 'type': 'change'}'
2023-05-17 15:27:48,757 DEBUG [__main__.mytool] (tool.run): CONFIG: {'MyTool': {'config_files': [PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/Tools.json')], 'iterations': 5, 'log_config': {}, 'log_datefmt': '%Y-%m-%d %H:%M:%S', 'log_file': None, 'log_file_level': 'INFO', 'log_format': '[%(name)s]%(highlevel)s %(message)s', 'log_level': 10, 'logging_config': {}, 'overwrite': False, 'provenance_log': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log'), 'quiet': False, 'show_config': False, 'show_config_json': False, 'MyComponent': {'value': -1}, 'SecondaryMyComponent': {'value': -1}, 'TelescopeWiseComponent': {'param': [('type', '*', 5.0)]}, 'AdvancedComponent': {'infile': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/something.txt'), 'outfile': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/foo.txt'), 'value1': -1, 'MyComponent': {'value': -1}}}}
2023-05-17 15:27:48,759 INFO [__main__.mytool] (462504653.start): Performing 5 iterations...
2023-05-17 15:27:48,760 INFO [__main__.mytool] (462504653.start): ITERATION 0
2023-05-17 15:27:48,763 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:48,763 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:48,865 INFO [__main__.mytool] (462504653.start): ITERATION 1
2023-05-17 15:27:48,865 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:48,867 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:48,968 INFO [__main__.mytool] (462504653.start): ITERATION 2
2023-05-17 15:27:48,968 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:48,971 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:49,072 INFO [__main__.mytool] (462504653.start): ITERATION 3
2023-05-17 15:27:49,073 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:49,074 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:49,175 INFO [__main__.mytool] (462504653.start): ITERATION 4
2023-05-17 15:27:49,175 DEBUG [__main__.mytool.MyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:49,176 DEBUG [__main__.mytool.SecondaryMyComponent] (2562530776.do_thing): Did thing
2023-05-17 15:27:49,277 WARNING [__main__.mytool] (462504653.finish): Shutting down.
2023-05-17 15:27:49,278 INFO [__main__.mytool] (tool.run): Finished: mytool
2023-05-17 15:27:49,280 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:49,281 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:49,282 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:49,282 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:49,283 INFO [__main__.mytool] (tool.write_provenance): Output:
2023-05-17 15:27:49,292 DEBUG [__main__.mytool] (tool.write_provenance): PROVENANCE: '[
   {
      "activity_name": "mytool",
      "activity_uuid": "063b058d-3860-4fda-9e0e-50c54c53e83c",
      "start": {
         "time_utc": "2023-05-17T15:27:46.231"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:46.963"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:46.451"
      },
      "input": [],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [],
            "iterations": 5,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "[%(name)s]%(highlevel)s %(message)s",
            "log_level": 30,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.012199999999999989
   },
   {
      "activity_name": "mytool",
      "activity_uuid": "1965b8d8-0de4-4773-b8be-c1cc4d45aa2c",
      "start": {
         "time_utc": "2023-05-17T15:27:46.987"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:47.532"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:47.209"
      },
      "input": [],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [],
            "iterations": 3,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "%(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s",
            "log_level": 20,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.009083333333332888
   },
   {
      "activity_name": "mytool",
      "activity_uuid": "a81e4fab-a21c-4667-a429-e9932399f1e3",
      "start": {
         "time_utc": "2023-05-17T15:27:47.552"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:48.100"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:47.771"
      },
      "input": [],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [],
            "iterations": 3,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "%(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s",
            "log_level": 10,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.009133333333313232
   },
   {
      "activity_name": "mytool",
      "activity_uuid": "d5480606-509c-4129-9b3f-c5a0ab0272cd",
      "start": {
         "time_utc": "2023-05-17T15:27:48.131"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:48.475"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:48.364"
      },
      "input": [],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [],
            "iterations": 1,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "%(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s",
            "log_level": 0,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/.cache/ctapipe/cccta-dataserver.in2p3.fr/data/ctapipe-test-data/v1.1.0/gamma_prod5.simtel.zst",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.0057333333332110215
   },
   {
      "activity_name": "mytool",
      "activity_uuid": "d1a462fa-57ec-46b9-9287-4b70c21fd78f",
      "start": {
         "time_utc": "2023-05-17T15:27:48.523"
      },
      "stop": {
         "time_utc": "2023-05-17T15:27:49.279"
      },
      "system": {
         "ctapipe_version": "0.19.2",
         "ctapipe_resources_version": "not installed",
         "eventio_version": "1.11.0",
         "ctapipe_svc_path": null,
         "executable": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin/python",
         "platform": {
            "architecture_bits": "64bit",
            "architecture_linkage": "",
            "machine": "x86_64",
            "processor": "x86_64",
            "node": "build-20735940-project-702899-ctapipe",
            "version": "#6-Ubuntu SMP Thu Mar 31 09:44:20 UTC 2022",
            "system": "Linux",
            "release": "5.15.0-1004-aws",
            "libcver": [
               "glibc",
               "2.35"
            ],
            "n_cpus": 2,
            "boot_time": "2023-05-17T12:46:35.000"
         },
         "python": {
            "version_string": "3.8.15 (default, Oct 26 2022, 10:34:39) \n[GCC 11.2.0]",
            "version": [
               "3",
               "8",
               "15"
            ],
            "compiler": "GCC 11.2.0",
            "implementation": "CPython",
            "packages": [
               {
                  "name": "Babel",
                  "version": "2.12.1"
               },
               {
                  "name": "Cython",
                  "version": "0.29.34"
               },
               {
                  "name": "Jinja2",
                  "version": "3.0.3"
               },
               {
                  "name": "MarkupSafe",
                  "version": "2.1.2"
               },
               {
                  "name": "Pillow",
                  "version": "9.5.0"
               },
               {
                  "name": "PyYAML",
                  "version": "6.0"
               },
               {
                  "name": "Pygments",
                  "version": "2.15.1"
               },
               {
                  "name": "QtPy",
                  "version": "2.3.1"
               },
               {
                  "name": "Send2Trash",
                  "version": "1.8.2"
               },
               {
                  "name": "Sphinx",
                  "version": "3.5.4"
               },
               {
                  "name": "alabaster",
                  "version": "0.7.13"
               },
               {
                  "name": "anyio",
                  "version": "3.6.2"
               },
               {
                  "name": "argon2-cffi",
                  "version": "21.3.0"
               },
               {
                  "name": "argon2-cffi-bindings",
                  "version": "21.2.0"
               },
               {
                  "name": "arrow",
                  "version": "1.2.3"
               },
               {
                  "name": "astropy",
                  "version": "5.2.2"
               },
               {
                  "name": "asttokens",
                  "version": "2.2.1"
               },
               {
                  "name": "attrs",
                  "version": "23.1.0"
               },
               {
                  "name": "backcall",
                  "version": "0.2.0"
               },
               {
                  "name": "beautifulsoup4",
                  "version": "4.12.2"
               },
               {
                  "name": "bleach",
                  "version": "6.0.0"
               },
               {
                  "name": "blosc2",
                  "version": "2.0.0"
               },
               {
                  "name": "bokeh",
                  "version": "2.4.3"
               },
               {
                  "name": "certifi",
                  "version": "2023.5.7"
               },
               {
                  "name": "cffi",
                  "version": "1.15.1"
               },
               {
                  "name": "charset-normalizer",
                  "version": "3.1.0"
               },
               {
                  "name": "comm",
                  "version": "0.1.3"
               },
               {
                  "name": "commonmark",
                  "version": "0.9.1"
               },
               {
                  "name": "contourpy",
                  "version": "1.0.7"
               },
               {
                  "name": "corsikaio",
                  "version": "0.2.6.post1"
               },
               {
                  "name": "ctapipe",
                  "version": "0.19.2"
               },
               {
                  "name": "cycler",
                  "version": "0.11.0"
               },
               {
                  "name": "debugpy",
                  "version": "1.6.7"
               },
               {
                  "name": "decorator",
                  "version": "5.1.1"
               },
               {
                  "name": "defusedxml",
                  "version": "0.7.1"
               },
               {
                  "name": "docutils",
                  "version": "0.16"
               },
               {
                  "name": "eventio",
                  "version": "1.11.0"
               },
               {
                  "name": "executing",
                  "version": "1.2.0"
               },
               {
                  "name": "fastjsonschema",
                  "version": "2.16.3"
               },
               {
                  "name": "ffmpeg-python",
                  "version": "0.2.0"
               },
               {
                  "name": "fonttools",
                  "version": "4.39.4"
               },
               {
                  "name": "fqdn",
                  "version": "1.5.1"
               },
               {
                  "name": "future",
                  "version": "0.18.3"
               },
               {
                  "name": "graphviz",
                  "version": "0.20.1"
               },
               {
                  "name": "idna",
                  "version": "3.4"
               },
               {
                  "name": "imagesize",
                  "version": "1.4.1"
               },
               {
                  "name": "iminuit",
                  "version": "2.21.3"
               },
               {
                  "name": "importlib-metadata",
                  "version": "6.6.0"
               },
               {
                  "name": "importlib-resources",
                  "version": "5.12.0"
               },
               {
                  "name": "ipykernel",
                  "version": "6.23.1"
               },
               {
                  "name": "ipython",
                  "version": "8.12.2"
               },
               {
                  "name": "ipython-genutils",
                  "version": "0.2.0"
               },
               {
                  "name": "ipywidgets",
                  "version": "8.0.6"
               },
               {
                  "name": "isoduration",
                  "version": "20.11.0"
               },
               {
                  "name": "jedi",
                  "version": "0.18.2"
               },
               {
                  "name": "joblib",
                  "version": "1.2.0"
               },
               {
                  "name": "jsonpointer",
                  "version": "2.3"
               },
               {
                  "name": "jsonschema",
                  "version": "4.17.3"
               },
               {
                  "name": "jupyter",
                  "version": "1.0.0"
               },
               {
                  "name": "jupyter-console",
                  "version": "6.6.3"
               },
               {
                  "name": "jupyter-events",
                  "version": "0.6.3"
               },
               {
                  "name": "jupyter_client",
                  "version": "8.2.0"
               },
               {
                  "name": "jupyter_core",
                  "version": "5.3.0"
               },
               {
                  "name": "jupyter_server",
                  "version": "2.5.0"
               },
               {
                  "name": "jupyter_server_terminals",
                  "version": "0.4.4"
               },
               {
                  "name": "jupyterlab-pygments",
                  "version": "0.2.2"
               },
               {
                  "name": "jupyterlab-widgets",
                  "version": "3.0.7"
               },
               {
                  "name": "kiwisolver",
                  "version": "1.4.4"
               },
               {
                  "name": "llvmlite",
                  "version": "0.40.0"
               },
               {
                  "name": "matplotlib",
                  "version": "3.7.1"
               },
               {
                  "name": "matplotlib-inline",
                  "version": "0.1.6"
               },
               {
                  "name": "mistune",
                  "version": "2.0.5"
               },
               {
                  "name": "mock",
                  "version": "1.0.1"
               },
               {
                  "name": "msgpack",
                  "version": "1.0.5"
               },
               {
                  "name": "nbclassic",
                  "version": "1.0.0"
               },
               {
                  "name": "nbclient",
                  "version": "0.7.4"
               },
               {
                  "name": "nbconvert",
                  "version": "7.4.0"
               },
               {
                  "name": "nbformat",
                  "version": "5.8.0"
               },
               {
                  "name": "nbsphinx",
                  "version": "0.8.12"
               },
               {
                  "name": "nest-asyncio",
                  "version": "1.5.6"
               },
               {
                  "name": "notebook",
                  "version": "6.5.4"
               },
               {
                  "name": "notebook_shim",
                  "version": "0.2.3"
               },
               {
                  "name": "numba",
                  "version": "0.57.0"
               },
               {
                  "name": "numexpr",
                  "version": "2.8.4"
               },
               {
                  "name": "numpy",
                  "version": "1.24.3"
               },
               {
                  "name": "numpydoc",
                  "version": "1.4.0"
               },
               {
                  "name": "packaging",
                  "version": "23.1"
               },
               {
                  "name": "pandas",
                  "version": "2.0.1"
               },
               {
                  "name": "pandocfilters",
                  "version": "1.5.0"
               },
               {
                  "name": "parso",
                  "version": "0.8.3"
               },
               {
                  "name": "pexpect",
                  "version": "4.8.0"
               },
               {
                  "name": "pickleshare",
                  "version": "0.7.5"
               },
               {
                  "name": "pip",
                  "version": "23.1.2"
               },
               {
                  "name": "pkgutil_resolve_name",
                  "version": "1.3.10"
               },
               {
                  "name": "platformdirs",
                  "version": "3.5.1"
               },
               {
                  "name": "prometheus-client",
                  "version": "0.16.0"
               },
               {
                  "name": "prompt-toolkit",
                  "version": "3.0.38"
               },
               {
                  "name": "psutil",
                  "version": "5.9.5"
               },
               {
                  "name": "ptyprocess",
                  "version": "0.7.0"
               },
               {
                  "name": "pure-eval",
                  "version": "0.2.2"
               },
               {
                  "name": "py-cpuinfo",
                  "version": "9.0.0"
               },
               {
                  "name": "pycparser",
                  "version": "2.21"
               },
               {
                  "name": "pyerfa",
                  "version": "2.0.0.3"
               },
               {
                  "name": "pyparsing",
                  "version": "3.0.9"
               },
               {
                  "name": "pyrsistent",
                  "version": "0.19.3"
               },
               {
                  "name": "python-dateutil",
                  "version": "2.8.2"
               },
               {
                  "name": "python-json-logger",
                  "version": "2.0.7"
               },
               {
                  "name": "pytz",
                  "version": "2023.3"
               },
               {
                  "name": "pyzmq",
                  "version": "25.0.2"
               },
               {
                  "name": "qtconsole",
                  "version": "5.4.3"
               },
               {
                  "name": "readthedocs-sphinx-ext",
                  "version": "2.2.0"
               },
               {
                  "name": "recommonmark",
                  "version": "0.5.0"
               },
               {
                  "name": "requests",
                  "version": "2.30.0"
               },
               {
                  "name": "rfc3339-validator",
                  "version": "0.1.4"
               },
               {
                  "name": "rfc3986-validator",
                  "version": "0.1.1"
               },
               {
                  "name": "scikit-learn",
                  "version": "1.2.2"
               },
               {
                  "name": "scipy",
                  "version": "1.10.1"
               },
               {
                  "name": "setuptools",
                  "version": "67.7.2"
               },
               {
                  "name": "setuptools-scm",
                  "version": "7.1.0"
               },
               {
                  "name": "six",
                  "version": "1.16.0"
               },
               {
                  "name": "sniffio",
                  "version": "1.3.0"
               },
               {
                  "name": "snowballstemmer",
                  "version": "2.2.0"
               },
               {
                  "name": "soupsieve",
                  "version": "2.4.1"
               },
               {
                  "name": "sphinx-automodapi",
                  "version": "0.15.0"
               },
               {
                  "name": "sphinx-rtd-theme",
                  "version": "1.2.0"
               },
               {
                  "name": "sphinxcontrib-applehelp",
                  "version": "1.0.4"
               },
               {
                  "name": "sphinxcontrib-devhelp",
                  "version": "1.0.2"
               },
               {
                  "name": "sphinxcontrib-htmlhelp",
                  "version": "2.0.1"
               },
               {
                  "name": "sphinxcontrib-jquery",
                  "version": "4.1"
               },
               {
                  "name": "sphinxcontrib-jsmath",
                  "version": "1.0.1"
               },
               {
                  "name": "sphinxcontrib-qthelp",
                  "version": "1.0.3"
               },
               {
                  "name": "sphinxcontrib-serializinghtml",
                  "version": "1.1.5"
               },
               {
                  "name": "stack-data",
                  "version": "0.6.2"
               },
               {
                  "name": "tables",
                  "version": "3.8.0"
               },
               {
                  "name": "terminado",
                  "version": "0.17.1"
               },
               {
                  "name": "threadpoolctl",
                  "version": "3.1.0"
               },
               {
                  "name": "tinycss2",
                  "version": "1.2.1"
               },
               {
                  "name": "tomli",
                  "version": "2.0.1"
               },
               {
                  "name": "tornado",
                  "version": "6.3.2"
               },
               {
                  "name": "tqdm",
                  "version": "4.65.0"
               },
               {
                  "name": "traitlets",
                  "version": "5.9.0"
               },
               {
                  "name": "typing_extensions",
                  "version": "4.5.0"
               },
               {
                  "name": "tzdata",
                  "version": "2023.3"
               },
               {
                  "name": "uri-template",
                  "version": "1.2.0"
               },
               {
                  "name": "urllib3",
                  "version": "2.0.2"
               },
               {
                  "name": "wcwidth",
                  "version": "0.2.6"
               },
               {
                  "name": "webcolors",
                  "version": "1.13"
               },
               {
                  "name": "webencodings",
                  "version": "0.5.1"
               },
               {
                  "name": "websocket-client",
                  "version": "1.5.1"
               },
               {
                  "name": "wheel",
                  "version": "0.37.0"
               },
               {
                  "name": "widgetsnbextension",
                  "version": "4.0.7"
               },
               {
                  "name": "zipp",
                  "version": "3.15.0"
               },
               {
                  "name": "zstandard",
                  "version": "0.21.0"
               }
            ]
         },
         "environment": {
            "CONDA_DEFAULT_ENV": null,
            "CONDA_PREFIX": null,
            "CONDA_PYTHON_EXE": null,
            "CONDA_EXE": null,
            "CONDA_PROMPT_MODIFIER": null,
            "CONDA_SHLVL": null,
            "PATH": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LD_LIBRARY_PATH": null,
            "DYLD_LIBRARY_PATH": null,
            "USER": null,
            "HOME": "/home/docs",
            "SHELL": null
         },
         "arguments": [
            "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/envs/v0.19.2/lib/python3.8/site-packages/ipykernel_launcher.py",
            "-f",
            "/tmp/tmpwq7fcpmb.json",
            "--HistoryManager.hist_file=:memory:"
         ],
         "start_time_utc": "2023-05-17T15:27:48.743"
      },
      "input": [
         {
            "url": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/Tools.json",
            "role": "Tool Configuration"
         }
      ],
      "output": [],
      "config": {
         "MyTool": {
            "config_files": [
               "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/Tools.json"
            ],
            "iterations": 5,
            "log_config": {},
            "log_datefmt": "%Y-%m-%d %H:%M:%S",
            "log_file": null,
            "log_file_level": "INFO",
            "log_format": "[%(name)s]%(highlevel)s %(message)s",
            "log_level": 10,
            "logging_config": {},
            "overwrite": false,
            "provenance_log": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log",
            "quiet": false,
            "show_config": false,
            "show_config_json": false,
            "MyComponent": {
               "value": -1
            },
            "SecondaryMyComponent": {
               "value": -1
            },
            "TelescopeWiseComponent": {
               "param": [
                  [
                     "type",
                     "*",
                     5.0
                  ]
               ]
            },
            "AdvancedComponent": {
               "infile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/something.txt",
               "outfile": "/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/foo.txt",
               "value1": -1,
               "MyComponent": {
                  "value": -1
               }
            }
         }
      },
      "status": "completed",
      "duration_min": 0.012600000000002609
   }
]'
2023-05-17 15:27:49,304 DEBUG [__main__.mytool] (application.exit): Exiting application: mytool
[20]:
print(tool2.advanced.infile)
/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/something.txt
[21]:
print(tool2.config)
{'MyTool': {'config_files': ['Tools.json'], 'log_level': 'DEBUG'}, 'AdvancedComponent': {'infile': 'something.txt', 'outfile': 'foo.txt'}}
[22]:
tool2.is_setup
[22]:
True
[23]:
tool3 = MyTool()
[24]:
tool3.is_setup
[24]:
False
[25]:
tool3.initialize(argv=[])
[26]:
tool3.is_setup
[26]:
False
[27]:
tool3
[27]:
MyTool

do some things and stuff

config_files [] (default: traitlets.Undefined)
iterations 5 Number of times to run (default: 5)
log_config {} (default: traitlets.Undefined)
log_datefmt %Y-%m-%d %H:%M:%S The date format used by logging formatters for %(asctime)s (default: %Y-%m-%d %H:%M:%S)
log_file None Filename for the log (default: None)
log_file_level INFO Logging Level for File Logging (default: INFO)
log_format [%(name)s]%(highlevel)s %(message)s The Logging format template (default: [%(name)s]%(highlevel)s %(message)s)
log_level 30 Set the log level by value or name. (default: 30)
logging_config {} Configure additional log handlers. The default stderr logs handler is configured by the log_level, log_datefmt and log_format settings. This configuration can be used to configure additional handlers (e.g. to output the log to a file) or for finer control over the default handlers. If provided this should be a logging configuration dictionary, for more information see: https://docs.python.org/3/library/logging.config.html#logging-config-dictschema This dictionary is merged with the base logging configuration which defines the following: * A logging formatter intended for interactive use called ``console``. * A logging handler that writes to stderr called ``console`` which uses the formatter ``console``. * A logger with the name of this application set to ``DEBUG`` level. This example adds a new handler that writes to a file: .. code-block:: python c.Application.logging_config = { 'handlers': { 'file': { 'class': 'logging.FileHandler', 'level': 'DEBUG', 'filename': '', } }, 'loggers': { '': { 'level': 'DEBUG', # NOTE: if you don't list the default "console" # handler here then it will be disabled 'handlers': ['console', 'file'], }, } } (default: traitlets.Undefined)
overwrite False (default: False)
provenance_log /home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log (default: traitlets.Undefined)
quiet False (default: False)
show_config False Instead of starting the Application, dump configuration to stdout (default: False)
show_config_json False Instead of starting the Application, dump configuration to stdout (as JSON) (default: False)

Components: MyTool, MyComponent, AdvancedComponent, SecondaryMyComponent, TelescopeWiseComponent

[28]:
tool.setup()
tool
2023-05-17 15:27:49,396 WARNING [__main__.mytool.AdvancedComponent] (2562530776.on_outfile_changed): Outfile was changed to '{'name': 'outfile', 'old': traitlets.Undefined, 'new': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/out.csv'), 'owner': <__main__.AdvancedComponent object at 0x7fe7d4ff9490>, 'type': 'change'}'
[28]:
MyTool

do some things and stuff

config_files [] (default: traitlets.Undefined)
iterations 1 Number of times to run (default: 5)
log_config {} (default: traitlets.Undefined)
log_datefmt %Y-%m-%d %H:%M:%S The date format used by logging formatters for %(asctime)s (default: %Y-%m-%d %H:%M:%S)
log_file None Filename for the log (default: None)
log_file_level INFO Logging Level for File Logging (default: INFO)
log_format %(asctime)s : %(levelname)s [%(name)s %(funcName)s] %(message)s The Logging format template (default: [%(name)s]%(highlevel)s %(message)s)
log_level 0 Set the log level by value or name. (default: 30)
logging_config {} Configure additional log handlers. The default stderr logs handler is configured by the log_level, log_datefmt and log_format settings. This configuration can be used to configure additional handlers (e.g. to output the log to a file) or for finer control over the default handlers. If provided this should be a logging configuration dictionary, for more information see: https://docs.python.org/3/library/logging.config.html#logging-config-dictschema This dictionary is merged with the base logging configuration which defines the following: * A logging formatter intended for interactive use called ``console``. * A logging handler that writes to stderr called ``console`` which uses the formatter ``console``. * A logger with the name of this application set to ``DEBUG`` level. This example adds a new handler that writes to a file: .. code-block:: python c.Application.logging_config = { 'handlers': { 'file': { 'class': 'logging.FileHandler', 'level': 'DEBUG', 'filename': '', } }, 'loggers': { '': { 'level': 'DEBUG', # NOTE: if you don't list the default "console" # handler here then it will be disabled 'handlers': ['console', 'file'], }, } } (default: traitlets.Undefined)
overwrite False (default: False)
provenance_log /home/docs/checkouts/readthedocs.org/user_builds/ctapipe/checkouts/v0.19.2/docs/examples/mytool.provenance.log (default: traitlets.Undefined)
quiet False (default: False)
show_config False Instead of starting the Application, dump configuration to stdout (default: False)
show_config_json False Instead of starting the Application, dump configuration to stdout (as JSON) (default: False)

Components: MyTool, MyComponent, AdvancedComponent, SecondaryMyComponent, TelescopeWiseComponent

[29]:
tool.comp2
[29]:
SecondaryMyComponent

A second component

value -1 Value to use (default: -1)