Releases: bmad-sim/pytao
PyTao v0.5.3
PyTao v0.5.2
What's Changed
- MAINT: rebuild interface for 'lat_header' by @ken-lauer in #134
- DOC: add floor plan plot with ParticleGroup plot overlays example by @ken-lauer in #110
Full Changelog: v0.5.1...v0.5.2
PyTao v0.5.1
What's Changed
- PERF: PyTao plotting performance has been improved.
- FIX: Overlapping plot regions should no longer affect PyTao's internal plotting mechanism.
Pull Requests
- PERF: use array buffer methods for plot curve line/symbol data retrieval by @ken-lauer in #133
Full Changelog: v0.5.0...v0.5.1
PyTao v0.5.0
Changes
-
Bug fix: Tao refused to initialize after the very first initialization attempt failed.
-
Enhanced and reworked the
pytao
command-line interface- If in a directory with a
tao.init
file, PyTao can be started with just runningpytao
with no arguments. - IPython is used if available, though the regular Python interpreter will be used as a backup.
- If in a directory with a
-
For the command-line interface, as in JupyterLab mode,
%tao
and%%tao
magics allow you to send commands directly to the Tao command-line.- For example:
%tao show lat
- For example:
-
An even shorter shortcut is the input transformer.
-
This shortcut can be customized with the
--pyprefix
argument. Every IPython line that starts with this character will turn into atao.cmd()
line. It defaults to the backtick character (i.e., the key typically shared by tilde~
) -
For example, noting the backtick:
In [1]: ` show lat
-
-
A preliminary Tao input mode is also available that behaves like the standard Tao command-line. Tab completion is offered for top-level commands and element names (in certain scenarios). To access it, either use
tao.shell()
or the single backtick shortcut:In [1]: ` Tao> show lat
-
New command-line arguments:
--help
to see PyTao and Tao's command-line options--pyplot
to configure PyTao's plotting backend (mpl
orbokeh
)--pyscript
to run a Python script after Tao initialization--pycommand
to run a Python command after Tao initialization--pylog
set the Python log level--pyno-subprocess
useTao
instead ofSubprocessTao
--pyquiet
to hide the banner when startingpytao
--pytao
to go straight to Tao mode without initializing aTao
object
Issues
Screenshots
Tao>
command-line mode:

Element name tab completion in Tao>
command-line mode:

What's Changed
- ENH:
pytao
CLI rework with tab completion/magics + fixes forTaoInitializationError
by @ken-lauer in #131
Full Changelog: v0.4.8...v0.5.0
PyTao v0.4.8
What's Changed
- FIX: Tao.track_beam() case issue by @ken-lauer in #127
Full Changelog: v0.4.7...v0.4.8
Changes
-
pytao
import speed was improved when not using plotting libraries. -
In
Tao.track_beam
:- Bug fix: case sensitivity of track_start/track_end elements could cause
Tao.track_beam
to fail. - Add support for
Tao.track_beam(start, end)
to set the track start/end positions easily - Add support for setting
lattice_calc_on
automatically (and resetting it afterward)
- Bug fix: case sensitivity of track_start/track_end elements could cause
Issues
PyTao v0.4.7
What's Changed
- MAINT: warn when in quiet mode by @ken-lauer in #122
- DOC: PyTao plotting issues that arise from
-noplot
by @ken-lauer in #121 - FIX: no
ele_y2s
may lead toValueError: max() iterable argument is empty
by @ken-lauer in #124 - ENH: support new 'quiet' flags by @ken-lauer in #123
- ENH: tqdm progress bar for Tao.track_beam by @ken-lauer in #125
Changes
-
pytao
now requires Bmad 20250226 or later. -
Added
Tao.track_beam()
which (by default) displays a progress bar while settingtrack_type = beam
. -
Added new module
pytao.pbar
which helps with progress-bar related tools- For now, this is limited to beam tracking updates with track_beam_wrapper, a context manager which allows you to perform arbitrary Tao commands while it displays beam tracking status
- Auto-detection of JupyterLab to determine which type of progress bar to use (CLI vs Jupyter widget)
-
Bug fix: layout plots may raise an exception in taking the
max()
of an emptyele_y2s
list. -
Added support for new
-quiet
flags fromTao
.
Issues
Screenshots
- Using PyTao in Jupyter Lab:
Screen.Recording.2025-02-26.at.10.36.22.AM.mov
- Using PyTao in the terminal:
Screen.Recording.2025-02-26.at.10.46.02.AM.mov
PyTao v0.4.6
What's Changed
- BLD: remove deprecated/invalid options in pyproject by @ken-lauer in #113
- ENH: SubprocessTao environment variable setting by @ken-lauer in #116
- ENH: 'with SubprocessTao.timeout' support by @ken-lauer in #117
- ENH: add line width scaling factor for matplotlib/bokeh by @ken-lauer in #112
Full Changelog: v0.4.5...v0.4.6
PyTao v0.4.5
What's Changed
- FIX: SBend line intersection code caused large vertex values in shapes by @ken-lauer in #111
Full Changelog: v0.4.4...v0.4.5
PyTao v0.4.4
What's Changed
- MAINT: do not log cell magic exception when IPython unavailable by @ken-lauer in #106
- MAINT: tweak Tao repr by @ken-lauer in #107
- ENH:
tao.wall3d_radius
support by @ken-lauer in #108 - ENH: support %tao line magic and multiple %%tao [tao_var] cell magic by @ken-lauer in #109
Full Changelog: v0.4.3...v0.4.4
PyTao v0.4.3
What's Changed
- Update FUNDING.yml by @ChristopherMayes in #105
- FIX:
ele:grid_field
who=points
,ele:elec_multipoles
by @ken-lauer in #103
Full Changelog: v0.4.2...v0.4.3