Source code for apptools.scripting.util
# (C) Copyright 2005-2024 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
"""Simple utility functions provided by the scripting API.
"""
from .recorder import Recorder
from .recorder_with_ui import RecorderWithUI
from .package_globals import get_recorder, set_recorder
###############################################################################
# Utility functions.
###############################################################################
[docs]def start_recording(object, ui=True, **kw):
"""Convenience function to start recording. Returns the recorder.
Parameters
----------
object : object to record.
ui : bool specifying if a UI is to be shown or not
kw : Keyword arguments to pass to the register function of the
recorder.
"""
if ui:
r = RecorderWithUI(root=object)
r.edit_traits(kind="live")
else:
r = Recorder()
# Set the global recorder.
set_recorder(r)
r.recording = True
r.register(object, **kw)
return r
[docs]def stop_recording(object, save=True):
"""Stop recording the object. If `save` is `True`, this will pop up
a UI to ask where to save the script.
"""
recorder = get_recorder()
recorder.unregister(object)
recorder.recording = False
# Set the global recorder back to None
set_recorder(None)
# Save the script.
if save:
recorder.ui_save()