Releases: fsoubelet/PyhDToolkit
Release 1.0.0
Release 1.0.0
is comes with many backwards-incompatible changes. Do not upgrade to this version if you are not prepared to adapt a substantial amount of your existing code using pyhdtoolkit
.
To see the full release notes for this version, see this section of the documentation.
Involved Changes
- Move to Hatch and hatchling as a build backend by @fsoubelet in #89
- update workflows readme by @fsoubelet in #90
- fix empty exclude key in cron jobs by @fsoubelet in #91
- [Breaking] First step towards 1.0.0 - Extract and regroup plotters by @fsoubelet in #92
- [ImgBot] Optimize images by @imgbot in #93
- Misc and setup by @fsoubelet in #94
- [ImgBot] Optimize images by @imgbot in #95
- Doc tweaks by @fsoubelet in #96
- B4 option in LHCSetup by @fsoubelet in #97
- Plotting styles by @fsoubelet in #98
Full Changelog: 0.21.0...1.0.0
Release 0.21.0
Version 0.21.0 is a feature release and brings the following changes:
Enhancements
- The
pyhdtoolkit.cpymadtools.lhc
module now has a new function,apply_lhc_colinearity_knob_delta
, to apply a variation on top of the colinearity knob variables. - The
pyhdtoolkit.cpymadtools.lhc.make_lhc_beams
function now has a specific argument for both horizontal and vertical emittances (resp.emittance_x
andemittance_y
) to enable differentiating the two. The default value for each is the same as previously. If you were calling the function without specifying theemittance
argument, you will not see changes. If you used to specify the argument, then switch to the new ones. - Added a
~pyhdtoolkit.version
module, with a convenience function to get version, platform and runtime information for debugging and reporting purposes.
Bug Fixes
- The
~pyhdtoolkit.cpymadtools.coupling.get_cminus_from_coupling_rdts
function now properly handles methods that compute complexDELTAQMIN
values inoptics_functions.coupling.closest_tune_approach
, and returns a correct result when using these methods.
Maintenance
- Increased the minimum required Python version to
3.8
. - Increased the minimum required
numpy
version to1.21
. - Increased the minumum required
pandas
version to1.4
. - Removed the dependency on
sympy
. - Relaxed version constraint on the
matplotlib
dependency, increased minimum version to3.3
. - Updated API documentation by specifying the version added for every public API classes, functions and methods.
- Updated and cleaned up Continuous Integration workflows.
- Modularised the release notes sources of the documentation.
What's Changed
- Changes for v0.21.0 by @fsoubelet in #88
Full Changelog: 0.20.1...0.21.0
Release 0.20.1
Release 0.20.1
is a patch release.
Maintenance
The pyhdtoolkit.cpymadtools.lhc.correct_lhc_global_coupling
function now supports a call
and a tolerance
arguments to be given to the LMDIF
call in MAD-X
.
What's Changed
- Small options in lhc api by @fsoubelet in #87
Full Changelog: 0.20.0...0.20.1
Release 0.20.0
Version 0.20.0
is a feature release and brings the following changes:
Enhancements
- The
pyhdtoolkit.cpymadtools.coupling.get_closest_tune_approach
function now supports therun3
boolean argument introduced in version0.19.1
, which is used for theLHC
case. - The
pyhdtoolkit.cpymadtools.coupling
module now has a new function,pyhdtoolkit.cpymadtools.coupling.get_coupling_rdts
, which will return the coupling Resonance Driving Terms throughout all elements in the sequence as columns added to thetfs.TfsDataFrame
returned after aTWISS
call. - The
pyhdtoolkit.cpymadtools.coupling
module now has a new function,pyhdtoolkit.cpymadtools.coupling.get_cminus_from_coupling_rdts
, which first calls the newpyhdtoolkit.cpymadtools.coupling.get_coupling_rdts
and then wraps theoptics_functions.coupling.closest_tune_approach
to provide an estimate of the :math:C^{-}
according to the desired calculation method. - The
pyhdtoolkit.cpymadtools.lhc
module now has a new function,pyhdtoolkit.cpymadtools.lhc.carry_colinearity_knob_over
, which will carry over the powering ofMQSX
magnets around an IP to a single side. - The
pyhdtoolkit.cpymadtools.lhc
module now has a new function,pyhdtoolkit.cpymadtools.lhc.correct_lhc_global_coupling
, which will runs a tricky routine to minimize the global :math:|C^{-}|
through thedqmin
variable. - The
pyhdtoolkit.cpymadtools.lhc
module now has a new function,pyhdtoolkit.cpymadtools.lhc.do_kmodulation
which simulates aK-Modulation
of an inner triplet quadrupoleQ1
in a desired IR, and returns atfs.TfsDataFrame
of the results.
Documentation
- Various docstrings have been corrected on wrong details, and some examples have been added.
Maintenance
- Various private helpers have been added through different modules.
- The minimum required version of
tfs-pandas
has been raised to3.2.0
. - Increased test coverage.
What's Changed
- Changes for 0.20.0 by @fsoubelet in #86
Full Changelog: 0.19.2...0.20.0
Release 0.19.2
Version 0.19.2
is a patch release with no api changes, made to fix a publishing issue to PyPI
.
0.19.1
Release 0.19.1
is a patch release.
Maintenance
- The
pyhdtoolkit.cpymadtools.lhc.get_lhc_tune_and_chroma_knobs
function now can has a new boolean argument,run3
, to determine if the standard_op
knobs should be returned. - The functions in the
pyhdtoolkit.cpymadtools.matching
module now also have therun3
argument, and will call the Run 3_op
knobs if this argument is set toTrue
and theLHC
accelerator is passed. - Fixes have been provided to the various Github Actions workflow of the repository.
What's Changed
- OP knobs by @fsoubelet in #85
Full Changelog: 0.19.0...0.19.1
Release 0.19.0
Release 0.19.0
brings the following changes:
Enhancements
- The
pyhdtoolkit.plotting
package has a new sub-package,pyhdtoolkit.plotting.sbs
with modules to plot coupling (pyhdtoolkit.plotting.sbs.coupling
) and phase (pyhdtoolkit.plotting.sbs.phase
) segment-by-segment results. - The
pyhdtoolkit.plotting.sbs
package has a new utility module,pyhdtoolkit.plotting.sbs.utils
, with helpful functions for plotting. - The
pyhdtoolkit.cpymadtools.lhc
module has a new function,pyhdtoolkit.cpymadtools.lhc.get_lhc_bpms_twiss_and_rdts
to easily get coupling RDTs at all observation points (BPMs) in the LHC sequence.
Documentation
- A new gallery was added showcasing the plotting of segment-by-segment coupling and phase results.
Maintenance
- The quadrupole component of a dipole is now plotted with the same shade as a regular quadrupole in
pyhdtoolkit.cpymadtools.plotters.LatticePlotters.plot_latwiss
. - The
pyhdtoolkit.cpymadtools.plotters.LatticePlotter.plot_latwiss
function now plots the quadrupole gradient of a dipole with the same shade as a normal quadrupole. - A new dependency, the
optics_functions
package, was added. - The documentation for the
pyhdtoolkit.maths.plotting
module has been extended. - Tests were added for the new functionality.
- Input files for various tests have been regrouped in relevant directories for clarity.
What's Changed
- Version 0.19.0 by @fsoubelet in #82
- fix latex errors in gallery by @fsoubelet in #83
- Tweaks by @fsoubelet in #84
Full Changelog: 0.18.0...0.19.0
Release 0.18.0
Release 0.18.0
brings the following changes:
Enhancements
- The
pyhdtoolkit.utils._misc
module has a new function,~pyhdtoolkit.utils._misc.add_markers_around_lhc_ip
to addMAD-X
markers around a given IP in order to increase the resolution of the TWISS calls in the IP vicinity. - The
pyhdtoolkit.utils._misc
module has a new function,~pyhdtoolkit.utils._misc.get_lhc_ips_positions
, to determine the longitudinal position (S variable) of LHC IPs from a dataframe. - The
pyhdtoolkit.utils._misc
module has a new function,~pyhdtoolkit.utils._misc.draw_ip_locations
, to add labels with the location of LHC IPs to a given~matplotlib.axes.Axes
object. - The
LHC Rigid Waist Shift
gallery has been improved, and now shows a visualization of the waist shift and two ways to calculate its value.
Bug Fixes
- The
~pyhdtoolkit.cpymadtools.orbit.lhc_orbit_variables
function does not return a wrongon_phi_IR5
variable anymore.
Maintenance
- The dependency on
matplotlib
has been pinned to<3.5
to avoid issues with the documentation plot style, to be fixed later on. - The bibliography file for the package's documentation has been cleaned up.
- The Github icon in the documentation pages now redirects to the proper pages.
- The documentation for the
~pyhdtoolkit.maths.nonconvex_phase_sync
has been improved. - Some additional files necessary for the documentation additions are now included in the repo, but not the package.
What's Changed
- Niceties and improved documentation by @fsoubelet in #80
Full Changelog: 0.17.0...0.18.0
Release 0.17.0
Release 0.17.0
brings the following changes:
Enhancements
- The
pyhdtoolkit.cpymadtools.matching
module has two new wrapper functions,match_tunes
andmatch_chromaticities
, to perform matching on either tunes or chromaticities only. - The
pyhdtoolkit.cpymadtools.lhc
module has a new utility function,get_magnets_powering
, to get the percentage of magnets' max powering used in a given configuration. - The
pyhdtoolkit.cpymadtools.utils
module has a new function,export_madx_table
, to conveniently export an internal table to disk with proper regex filtering in a way that can be read byMAD-X
later on. - The
pyhdtoolkit.cpymadtools.constants
module now includes a regex for the(HL)LHC
triplets. Beware thatMAD-X
itself does not understand all regex features.
Bug Fixes
- The
~pyhdtoolkit.cpymadtools.twiss.get_pattern_twiss
function now properly handles being given specific columns.
Maintenance
- The deprecated
pyhdtoolkit.cpymadtools.lhc.match_no_coupling_through_ripkens
function has been removed, its replacement in thepyhdtoolkit.cpymadtools.coupling
module should be used. - The deprecated
pyhdtoolkit.cpymadtools.lhc._get_k_strings
function has been removed, its replacement in thepyhdtoolkit.cpymadtools.utils
module should be used. - The deprecated
pyhdtoolkit.cpymadtools.matching.get_closest_tune_approach
function has been removed, its replacement in thepyhdtoolkit.cpymadtools.coupling
module should be used. - The deprecated
pyhdtoolkit.cpymadtools.matching.get_lhc_tune_and_chroma_knobs
function has been removed, its replacement in thepyhdtoolkit.cpymadtools.lhc
module should be used. - The
pyhdtoolkit.cpymadtools.lhc._get_k_strings
helper function is now deprecated and has been moved topyhdtoolkit.cpymadtools.utils._get_k_strings
. - The internal imports in the package have been reworked, and sub-packages now only expose their modules through
__all__
opposed to some of the modules' contents previously. - Some tests have been added.
Release 0.16.1
Release 0.16.1
is a minor version with small changes.
Changed:
- The info level logging statements in the
pyhdtoolkit.cpymadtools
modules have been adjusted to debug level. Info logging is left to the user scripts. - The warning level logging statements in the pyhdtoolkit.cpymadtools modules have been modified to give a bit more information.