Skip to content

Releases: bmad-sim/pytao

PyTao v0.5.3

14 May 23:46
d39d862
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.2...v0.5.3

PyTao v0.5.2

28 Apr 16:45
a8d3ddb
Compare
Choose a tag to compare

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

07 Apr 21:05
686f811
Compare
Choose a tag to compare

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

18 Mar 23:16
393717d
Compare
Choose a tag to compare

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 running pytao with no arguments.
    • IPython is used if available, though the regular Python interpreter will be used as a backup.
  • 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
  • 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 a tao.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 or bokeh)
    • --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 use Tao instead of SubprocessTao
    • --pyquiet to hide the banner when starting pytao
    • --pytao to go straight to Tao mode without initializing a Tao object

Issues

Screenshots

The input transformer:
input transformer

Tao> command-line mode:

tao command-line mode

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

tab completion

What's Changed

  • ENH: pytao CLI rework with tab completion/magics + fixes for TaoInitializationError by @ken-lauer in #131

Full Changelog: v0.4.8...v0.5.0

PyTao v0.4.8

13 Mar 21:57
49e7629
Compare
Choose a tag to compare

What's Changed

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)

Issues

PyTao v0.4.7

28 Feb 18:05
4e8faa3
Compare
Choose a tag to compare

What's Changed

Changes

  • pytao now requires Bmad 20250226 or later.

  • Added Tao.track_beam() which (by default) displays a progress bar while setting track_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 empty ele_y2s list.

  • Added support for new -quiet flags from Tao.

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

08 Jan 20:50
3fac35c
Compare
Choose a tag to compare

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

10 Dec 04:16
14b9569
Compare
Choose a tag to compare

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

25 Nov 23:48
d736e5a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.3...v0.4.4

PyTao v0.4.3

21 Oct 21:28
8c01665
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.2...v0.4.3