abjad.contextmanagers

abjad.contextmanagers.temporary_directory_change(...)

Temporary directory change context manager.

abjad.contextmanagers.FilesystemState(*[, ...])

Filesystem state context manager.

abjad.contextmanagers.ForbidUpdate(component, *)

Forbid update context manager.

abjad.contextmanagers.NullContextManager()

Null context manager.

abjad.contextmanagers.RedirectedStreams(*[, ...])

Redirected streams context manager.

abjad.contextmanagers.Timer(*[, ...])

Timer context manager.

abjad.contextmanagers.temporary_directory_change(directory: str | PathLike) Iterator[None][source]

Temporary directory change context manager.

class abjad.contextmanagers.FilesystemState(*, keep: list[Path] | None = None, remove: list[Path] | None = None)[source]

Filesystem state context manager.

keep()

Gets paths to restore on exit.

remove()

Gets paths to remove on exit.

keep() tuple[str, ...][source]

Gets paths to restore on exit.

remove() tuple[str, ...][source]

Gets paths to remove on exit.

class abjad.contextmanagers.ForbidUpdate(component: Component, *, update_on_exit: bool = False)[source]

Forbid update context manager.

component()

Gets component.

update_on_exit()

Is true when context manager updates offsets on exit.

component() Component[source]

Gets component.

update_on_exit() bool[source]

Is true when context manager updates offsets on exit.

class abjad.contextmanagers.NullContextManager[source]

Null context manager.

class abjad.contextmanagers.RedirectedStreams(*, stdout: TextIO | None = None, stderr: TextIO | None = None)[source]

Redirected streams context manager.

Captures stdout and stderr output:

>>> import io
>>> string_io = io.StringIO()
>>> with abjad.contextmanagers.RedirectedStreams(stdout=string_io):
...     print("hello, world!")
... 
>>> result = string_io.getvalue()
>>> string_io.close()
>>> print(result)
hello, world!

stderr()

Gets stderr of context manager.

stdout()

Gets stdout of context manager.

stderr() TextIO[source]

Gets stderr of context manager.

stdout() TextIO[source]

Gets stdout of context manager.

class abjad.contextmanagers.Timer(*, enter_message: str = '', exit_message: str = '', print_continuously_from_background: bool = False, verbose: bool = True)[source]

Timer context manager.

Prints elapsed time after timer finishes:

>>> timer = abjad.contextmanagers.Timer()
>>> with timer:
...     for _ in range(1000000):
...         x = 1 + 1
... 
>>> timer.elapsed_time()  
0.025196075439453125

Prints elapsed time while timer is running; timers can be reused between with-blocks:

>>> with abjad.contextmanagers.Timer() as timer:  
...     for _ in range(5):
...         for _ in range(1000000):
...             x = 1 + 1
...         print(timer.elapsed_time())
... 
0.025491952896118164
0.050909996032714844
0.07634210586547852
0.1017160415649414
0.12719011306762695

elapsed_time()

Gets elapsed time of timer.

enter_message()

Gets timer enter message.

exit_message()

Gets timer exit message.

print_continuously_from_background()

Is true when timer prints continuously from background.

start_time()

Gets start time of timer.

stop_time()

Gets stop time of timer.

total_time_message()

Gets total time message, truncated to nearest second.

verbose()

Is true when timer prints messages.

elapsed_time() float[source]

Gets elapsed time of timer.

enter_message() str[source]

Gets timer enter message.

exit_message() str[source]

Gets timer exit message.

print_continuously_from_background() bool[source]

Is true when timer prints continuously from background.

start_time() float | None[source]

Gets start time of timer.

stop_time() float | None[source]

Gets stop time of timer.

total_time_message() str[source]

Gets total time message, truncated to nearest second.

verbose() bool[source]

Is true when timer prints messages.