xtrack 0.69.2__tar.gz → 0.69.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. {xtrack-0.69.2/xtrack.egg-info → xtrack-0.69.3}/PKG-INFO +1 -1
  2. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_environment.py +71 -0
  3. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_survey.py +9 -4
  4. xtrack-0.69.3/xtrack/_version.py +1 -0
  5. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/environment.py +12 -1
  6. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/line.py +42 -18
  7. {xtrack-0.69.2 → xtrack-0.69.3/xtrack.egg-info}/PKG-INFO +1 -1
  8. xtrack-0.69.2/xtrack/_version.py +0 -1
  9. {xtrack-0.69.2 → xtrack-0.69.3}/LICENSE +0 -0
  10. {xtrack-0.69.2 → xtrack-0.69.3}/MANIFEST.in +0 -0
  11. {xtrack-0.69.2 → xtrack-0.69.3}/README.md +0 -0
  12. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/__init__.py +0 -0
  13. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/base_classes.py +0 -0
  14. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/BB6D.py +0 -0
  15. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  16. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/__init__.py +0 -0
  17. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/beambeam.py +0 -0
  18. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/boost.py +0 -0
  19. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  20. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  21. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/qgauss.py +0 -0
  22. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/slicing.py +0 -0
  23. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/spacecharge.py +0 -0
  24. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/elements.py +0 -0
  25. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/line.py +0 -0
  26. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/mathlibs.py +0 -0
  27. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/particles.py +0 -0
  28. {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/temp_pyparticles.py +0 -0
  29. {xtrack-0.69.2 → xtrack-0.69.3}/pyproject.toml +0 -0
  30. {xtrack-0.69.2 → xtrack-0.69.3}/setup.cfg +0 -0
  31. {xtrack-0.69.2 → xtrack-0.69.3}/setup.py +0 -0
  32. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_acceleration.py +0 -0
  33. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_amplitude_detuning.py +0 -0
  34. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  35. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_apertures.py +0 -0
  36. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_attr_replicas_and_slices.py +0 -0
  37. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_cavity_absolute_time.py +0 -0
  38. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_chromatic_functions_vs_madx.py +0 -0
  39. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_coasting.py +0 -0
  40. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_collective_tracker.py +0 -0
  41. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_collimation.py +0 -0
  42. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_element_characterization_functions.py +0 -0
  43. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_element_internal_record.py +0 -0
  44. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_elements.py +0 -0
  45. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_elements_classflags.py +0 -0
  46. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_elements_thick.py +0 -0
  47. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  48. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  49. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_footprint.py +0 -0
  50. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_freeze_longitudinal.py +0 -0
  51. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_full_rings.py +0 -0
  52. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_hvkick.py +0 -0
  53. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_ions.py +0 -0
  54. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_lhc_match_phase_15.py +0 -0
  55. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_line.py +0 -0
  56. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_lumi.py +0 -0
  57. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_mad_writer.py +0 -0
  58. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_madloader.py +0 -0
  59. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_and_track_from_element.py +0 -0
  60. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_coupling_knob.py +0 -0
  61. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_nested.py +0 -0
  62. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_optics_and_ip_knob.py +0 -0
  63. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  64. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_orbit_bump.py +0 -0
  65. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_tune_chroma_cminus.py +0 -0
  66. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_monitor.py +0 -0
  67. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_multiline.py +0 -0
  68. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_multisetter.py +0 -0
  69. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_multispecies.py +0 -0
  70. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_particles_api.py +0 -0
  71. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  72. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_pipeline.py +0 -0
  73. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_prebuild_kernels.py +0 -0
  74. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_ps_against_ptc.py +0 -0
  75. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_ps_multiturn_twiss.py +0 -0
  76. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_psb_chicane.py +0 -0
  77. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_pyht_interface.py +0 -0
  78. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_radial_steering.py +0 -0
  79. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_radiation.py +0 -0
  80. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_radiation_equilibrium_emittances.py +0 -0
  81. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen.py +0 -0
  82. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen_exp.py +0 -0
  83. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen_gauss.py +0 -0
  84. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen_ruth.py +0 -0
  85. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_rf_track.py +0 -0
  86. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_rotation_signs.py +0 -0
  87. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_second_order_taylor_map.py +0 -0
  88. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_seeds.py +0 -0
  89. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_slice_and_insert_with_replicas.py +0 -0
  90. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_slice_elements.py +0 -0
  91. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_slicing.py +0 -0
  92. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  93. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_spacecharge_in_ring.py +0 -0
  94. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_sps_thick.py +0 -0
  95. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_tapering.py +0 -0
  96. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_thick_lhc.py +0 -0
  97. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_tilt_shifts.py +0 -0
  98. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_tracker.py +0 -0
  99. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_trajectory_correcton.py +0 -0
  100. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_twiss.py +0 -0
  101. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_twiss_vs_madx_psb.py +0 -0
  102. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_vs_madx.py +0 -0
  103. {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_xmask_orbit_correction.py +0 -0
  104. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/__init__.py +0 -0
  105. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/__init__.py +0 -0
  106. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  107. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  108. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  109. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/__init__.py +0 -0
  110. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  111. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  112. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  113. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/base_element.py +0 -0
  114. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/__init__.py +0 -0
  115. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures.py +0 -0
  116. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  117. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  118. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  119. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  120. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  121. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  122. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/beam_interaction.py +0 -0
  123. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements.py +0 -0
  124. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/bend.h +0 -0
  125. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  126. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  127. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  128. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift.h +0 -0
  129. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
  130. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  131. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  132. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  133. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  134. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  135. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/elens.h +0 -0
  136. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  137. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  138. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  139. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  140. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  141. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/octupole.h +0 -0
  142. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  143. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  144. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  145. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  146. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  147. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  148. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  149. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
  150. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  151. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  152. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
  153. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
  154. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
  155. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
  156. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
  157. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
  158. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  159. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  160. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
  161. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
  162. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
  163. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
  164. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  165. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  166. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  167. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  168. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
  169. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
  170. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
  171. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
  172. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  173. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  174. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  175. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  176. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  177. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  178. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  179. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/wire.h +0 -0
  180. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  181. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  182. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  183. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  184. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/exciter.py +0 -0
  185. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/rft_element.py +0 -0
  186. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/slice_elements.py +0 -0
  187. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/slice_elements_thick.py +0 -0
  188. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/footprint.py +0 -0
  189. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/general.py +0 -0
  190. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/atomicadd.h +0 -0
  191. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/checks.h +0 -0
  192. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/constants.h +0 -0
  193. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/particle_states.h +0 -0
  194. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/synrad_spectrum.h +0 -0
  195. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/internal_record.py +0 -0
  196. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/json_utils.py +0 -0
  197. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/linear_normal_form.py +0 -0
  198. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/loss_location_refinement/__init__.py +0 -0
  199. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  200. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/lumi.py +0 -0
  201. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/mad_loader.py +0 -0
  202. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/mad_writer.py +0 -0
  203. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/match.py +0 -0
  204. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/__init__.py +0 -0
  205. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_position_monitor.h +0 -0
  206. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_position_monitor.py +0 -0
  207. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_profile_monitor.h +0 -0
  208. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_profile_monitor.py +0 -0
  209. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_size_monitor.h +0 -0
  210. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_size_monitor.py +0 -0
  211. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/last_turns_monitor.h +0 -0
  212. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/last_turns_monitor.py +0 -0
  213. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/particles_monitor.h +0 -0
  214. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/particles_monitor.py +0 -0
  215. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multiline/__init__.py +0 -0
  216. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multiline/multiline.py +0 -0
  217. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multiline/shared_knobs.py +0 -0
  218. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multisetter/__init__.py +0 -0
  219. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multisetter/multisetter.py +0 -0
  220. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/__init__.py +0 -0
  221. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/constants.py +0 -0
  222. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/particles.py +0 -0
  223. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/rng_src/base_rng.h +0 -0
  224. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/rng_src/particles_rng.h +0 -0
  225. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/__init__.py +0 -0
  226. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/core.py +0 -0
  227. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/manager.py +0 -0
  228. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/multitracker.py +0 -0
  229. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/progress_indicator.py +0 -0
  230. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/__init__.py +0 -0
  231. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_generators.py +0 -0
  232. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/exponential.h +0 -0
  233. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  234. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/normal.h +0 -0
  235. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/rutherford.h +0 -0
  236. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/uniform.h +0 -0
  237. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/uniform_accurate.h +0 -0
  238. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/slicing.py +0 -0
  239. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/survey.py +0 -0
  240. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/synctime.py +0 -0
  241. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tapering.py +0 -0
  242. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/targets.py +0 -0
  243. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tracker.py +0 -0
  244. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tracker_data.py +0 -0
  245. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tracker_src/tracker.h +0 -0
  246. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/trajectory_correction.py +0 -0
  247. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/twiss.py +0 -0
  248. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/twissplot.py +0 -0
  249. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/SOURCES.txt +0 -0
  250. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/dependency_links.txt +0 -0
  251. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/requires.txt +0 -0
  252. {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.69.2
3
+ Version: 0.69.3
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -1782,3 +1782,74 @@ def test_select_in_multiline():
1782
1782
  == "((-vars['acbch7.r1b1']) + vars['aaa'])")
1783
1783
  assert line_sel.get('mcbch.7r1.b1').knl[0] == 1e-6
1784
1784
  assert line.get('mcbch.7r1.b1').knl[0] == 1e-6
1785
+
1786
+ @pytest.mark.parametrize('container_type', ['env', 'line'])
1787
+ def test_inpection_methods(container_type):
1788
+
1789
+ env = xt.Environment()
1790
+
1791
+ env.vars({
1792
+ 'k.1': 1.,
1793
+ 'a': 2.,
1794
+ 'b': '2 * a + k.1',
1795
+ })
1796
+
1797
+ line = env.new_line([
1798
+ env.new('bb', xt.Bend, k0='2 * b', length=3+env.vars['a'] + env.vars['b'],
1799
+ h=5., ksl=[0, '3*b']),
1800
+ ])
1801
+
1802
+ ee = {'env': env, 'line': line}[container_type]
1803
+
1804
+ # Line/Env methods (get, set, eval, get_expr, new_expr, info)
1805
+ assert ee.get('b') == 2 * 2 + 1
1806
+ assert ee.get('bb') is env.element_dict['bb']
1807
+
1808
+ assert str(ee.get_expr('b')) == "((2.0 * vars['a']) + vars['k.1'])"
1809
+
1810
+ assert ee.eval('3*a - sqrt(k.1)') == 5
1811
+
1812
+ ne = ee.new_expr('sqrt(3*a + 3)')
1813
+ assert xd.refs.is_ref(ne)
1814
+ assert str(ne) == "f.sqrt(((3.0 * vars['a']) + 3.0))"
1815
+
1816
+ ee.info('bb') # Check that it works
1817
+ ee.info('b')
1818
+ ee.info('a')
1819
+
1820
+ ee.set('c', '6*a')
1821
+ assert ee.get('c') == 6 * 2
1822
+
1823
+ # Line/Env containers (env[...], env.ref[...]
1824
+ assert ee['b'] == 2 * 2 + 1
1825
+ assert type(ee['bb']).__name__ == 'View'
1826
+ assert ee['bb'].__class__.__name__ == 'Bend'
1827
+
1828
+ # Vars methods (get, set, eval, get_expr, new_expr, info, get_table)
1829
+ assert ee.vars.get('b') == 2 * 2 + 1
1830
+
1831
+ assert str(ee.vars.get_expr('b')) == "((2.0 * vars['a']) + vars['k.1'])"
1832
+
1833
+ assert ee.vars.eval('3*a - sqrt(k.1)') == 5
1834
+
1835
+ ne = ee.vars.new_expr('sqrt(3*a + 3)')
1836
+ assert xd.refs.is_ref(ne)
1837
+ assert str(ne) == "f.sqrt(((3.0 * vars['a']) + 3.0))"
1838
+
1839
+ ee.vars.info('b')
1840
+ ee.vars.info('a')
1841
+
1842
+ ee.vars.set('d', '7*a')
1843
+ assert ee.vars.get('d') == 7 * 2
1844
+
1845
+ assert xd.refs.is_ref(ee.vars['b'])
1846
+
1847
+ # View methods get_expr, get_value, get_info, get_table (for now)
1848
+ assert xd.refs.is_ref(ee['bb'].get_expr('k0'))
1849
+ assert str(ee['bb'].get_expr('k0')) == "(2.0 * vars['b'])"
1850
+ assert ee['bb'].get_expr('k0')._value == 2 * (2 * 2 + 1)
1851
+ assert ee['bb'].get_value('k0') == 2 * (2 * 2 + 1)
1852
+
1853
+ tt = ee['bb'].get_table()
1854
+ assert tt['value', 'k0'] == 2 * (2 * 2 + 1)
1855
+ assert tt['expr', 'k0'] == "(2.0 * vars['b'])"
@@ -12,6 +12,11 @@ tilted = True
12
12
  orientation = 'acw'
13
13
  transform_to_actual_elements = True
14
14
 
15
+ if hasattr(np, 'trapezoid'): # numpy >= 2.0
16
+ trapz = np.trapezoid
17
+ else:
18
+ trapz = np.trapz
19
+
15
20
  @for_all_test_contexts
16
21
  @pytest.mark.parametrize(
17
22
  'slice_mode',
@@ -103,17 +108,17 @@ def test_survey_slicing(test_context, slice_mode, tilted, orientation,
103
108
 
104
109
  if not tilted and orientation == 'acw':
105
110
  assert_allclose(np.abs(sv.Y), 0, rtol=0, atol=1e-14)
106
- assert_allclose(np.trapezoid(sv.X, sv.Z), -4.818 , rtol=0, # anti-clockwise
111
+ assert_allclose(trapz(sv.X, sv.Z), -4.818 , rtol=0, # anti-clockwise
107
112
  atol=(2e-3 if slice_mode is not None else 0.5))
108
113
  elif not tilted and orientation == 'cw':
109
114
  assert_allclose(np.abs(sv.Y), 0, rtol=0, atol=1e-14)
110
- assert_allclose(np.trapezoid(sv.X, sv.Z), 4.818 , rtol=0, # clockwise
115
+ assert_allclose(trapz(sv.X, sv.Z), 4.818 , rtol=0, # clockwise
111
116
  atol=(2e-3 if slice_mode is not None else 0.5))
112
117
  elif tilted and orientation == 'acw':
113
118
  assert_allclose(np.abs(sv.X), 0, rtol=0, atol=1e-14)
114
- assert_allclose(np.trapezoid(sv.Y, sv.Z), -4.818 , rtol=0, # anti-clockwise
119
+ assert_allclose(trapz(sv.Y, sv.Z), -4.818 , rtol=0, # anti-clockwise
115
120
  atol=(2e-3 if slice_mode is not None else 0.5))
116
121
  elif tilted and orientation == 'cw':
117
122
  assert_allclose(np.abs(sv.X), 0, rtol=0, atol=1e-14)
118
- assert_allclose(np.trapezoid(sv.Y, sv.Z), 4.818 , rtol=0, # clockwise
123
+ assert_allclose(trapz(sv.Y, sv.Z), 4.818 , rtol=0, # clockwise
119
124
  atol=(2e-3 if slice_mode is not None else 0.5))
@@ -0,0 +1 @@
1
+ __version__ = '0.69.3'
@@ -40,6 +40,12 @@ class Environment:
40
40
  self._drift_counter = 0
41
41
  self.ref = EnvRef(self)
42
42
 
43
+ @property
44
+ def manager(self):
45
+ if not hasattr(self, '_var_management') or self._var_management is None:
46
+ self._init_var_management()
47
+ return self._var_management['manager']
48
+
43
49
  def new_line(self, components=None, name=None):
44
50
  out = xt.Line()
45
51
  out.particle_ref = self.particle_ref
@@ -198,6 +204,11 @@ Environment.replace_replica = xt.Line.replace_replica
198
204
  Environment.__getitem__ = xt.Line.__getitem__
199
205
  Environment.set = xt.Line.set
200
206
  Environment.get = xt.Line.get
207
+ Environment.eval = xt.Line.eval
208
+ Environment.info = xt.Line.info
209
+ Environment.get_expr = xt.Line.get_expr
210
+ Environment.new_expr = xt.Line.new_expr
211
+
201
212
 
202
213
  class Place:
203
214
 
@@ -356,7 +367,7 @@ def _resolve_s_positions(seq_all_places, env):
356
367
  aux_s_center.append(ss)
357
368
  aux_tt['s_center'] = np.concatenate([aux_s_center, [0]])
358
369
 
359
- i_sorted = np.argsort(aux_s_center, stable=True)
370
+ i_sorted = np.argsort(aux_s_center, kind='stable')
360
371
 
361
372
  name_sorted = [str(aux_tt.name[ii]) for ii in i_sorted]
362
373
 
@@ -3405,7 +3405,8 @@ class Line:
3405
3405
 
3406
3406
  def __add__(self, other):
3407
3407
  self._env_if_needed
3408
- assert isinstance(other, Line), 'Only Line can be added to Line'
3408
+ #assert isinstance(other, Line), 'Only Line can be added to Line'
3409
+ assert other.__class__.__name__=="Line", 'Only Line can be added to Line'
3409
3410
  assert other.env is self.env, 'Lines must be in the same environment'
3410
3411
  out = self.env.new_line(
3411
3412
  components=list(self.element_names) + list(other.element_names))
@@ -3555,6 +3556,35 @@ class Line:
3555
3556
  else:
3556
3557
  raise KeyError(f'Element or variable {key} not found')
3557
3558
 
3559
+ def info(self, key, limit=12):
3560
+ if key in self.element_dict:
3561
+ return self[key].get_info()
3562
+ elif key in self.vars:
3563
+ return self.vars.info(key, limit=limit)
3564
+ else:
3565
+ raise KeyError(f'Element or variable {key} not found')
3566
+
3567
+ # def get_value(self, key):
3568
+ # if key in self.element_dict:
3569
+ # return self.element_dict[key].get_value()
3570
+ # elif key in self.vars:
3571
+ # return self.vars.get_value(key)
3572
+ # else:
3573
+ # raise KeyError(f'Element or variable {key} not found')
3574
+
3575
+ @property
3576
+ def manager(self):
3577
+ return self._xdeps_manager
3578
+
3579
+ def eval(self, expr):
3580
+ return self.vars.eval(expr)
3581
+
3582
+ def new_expr(self, expr):
3583
+ return self.vars.new_expr(expr)
3584
+
3585
+ def get_expr(self, vars):
3586
+ return self.vars.get_expr(vars)
3587
+
3558
3588
  def _env_if_needed(self):
3559
3589
  if not hasattr(self, 'env') or self.env is None:
3560
3590
  self.env = xt.Environment(element_dict=self.element_dict,
@@ -4700,26 +4730,17 @@ class LineVars:
4700
4730
 
4701
4731
  return xd.Table({'name': name, 'value': value, 'expr': expr})
4702
4732
 
4703
- def expr(self, var):
4704
- raise NotImplementedError # Untested
4705
- if isinstance(var,str):
4706
- ref=self.line._xdeps_vref[var]
4707
- elif is_expr(var):
4708
- ref=var
4709
- else:
4710
- raise ValueError(f"`{var}` not valid, must be str or expr")
4711
- expr=ref._expr
4712
- if expr is None:
4713
- raise NameError(f"`{var}` does not have any expression")
4714
- return expr
4733
+ def new_expr(self, expr):
4734
+ return self.line._xdeps_eval.eval(expr)
4715
4735
 
4716
4736
  def eval(self, expr):
4717
- raise NotImplementedError # Untested
4718
- return self.line._xdeps_eval.eval(expr)
4737
+ return self.new_expr(expr)._get_value()
4719
4738
 
4720
- def value(self, expr):
4721
- raise NotImplementedError # Untested
4722
- return eval(self)._get_value()
4739
+ def info(self, var, limit=10):
4740
+ return self[var]._info(limit=limit)
4741
+
4742
+ def get_expr(self, var):
4743
+ return self[var]._expr
4723
4744
 
4724
4745
  def __contains__(self, key):
4725
4746
  if self.line._xdeps_vref is None:
@@ -4844,6 +4865,9 @@ class LineVars:
4844
4865
  else:
4845
4866
  self[name] = value
4846
4867
 
4868
+ def get(self, name):
4869
+ return self[name]._value
4870
+
4847
4871
  class ActionVars(Action):
4848
4872
 
4849
4873
  def __init__(self, line):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.69.2
3
+ Version: 0.69.3
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -1 +0,0 @@
1
- __version__ = '0.69.2'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes