Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Break the DIALS/xfel circular dependency (#872)
Brief summary: * A new top level project in cctbx_project has been created: serialtbx * Any code needed by DIALS and dxtbx that was in xfel has been moved to serialtbx or directly into DIALS/dxtbx. That mostly includes code to read data at XFELs used by dxtbx, and stills-specific indexing/integration methods. * serialtbx has no imports of DIALS or dxtbx and so it can be directly configured by the conda packages cctbx and cctbx-base, @bkpoon. That said, there are no dispatchers or libtbx_config file so nothing specifically needs to be done to bootstrap.py, I believe. * All imports of xfel in DIALS and dxtbx have been updated to use the new serialtbx or DIALS/dxtbx imports * All other known repos that have xfel imports have been updated to use the new serialtbx or DIALS/dxtbx imports * xfel will remain configured in the DIALS binary bundles on dials.github.io and distributed by phenix. For conda, the plan is to make a cctbx.xfel conda package that includes all its dependencies (MPI, MySQL, etc.) Se also cctbx/dxtbx#627 and dials/dials#2404 Detailed listing of code movements: * xfel.util.jungfrau → serialtbx.detector From xfel.cftbx.detector: * cspad_detector → serialtbx.detector.legacy_metrology * generic_detector → serialtbx.detector.legacy_metrology * metrology → serialtbx.detector.legacy_metrology From xfel.mono_simulation: * max_like → serialtbx.mono_simulation * util → serialtbx.mono_simulation From xfel.cftbx.detector.cspad_cbf_tbx: * Constants moved to serialtbx.detector.cspad * get_psana_corrected_data → serialtbx.detector.cspad * cbf_wrapper → merged with dxtbx.format.FormatCBFMultiTile.cbf_wrapper * angle_and_axis → dxtbx.format.FormatCBFMultiTile.cbf_wrapper * center → serialtbx.detector * basis → serialtbx.detector * basis_from_geo → serialtbx.detector.xtc * read_slac_metrology → serialtbx.detector.cspad * add_frame_specific_cbf_tables → dxtbx.format.cbf_writer From xfel.command_line.cspad_detector_congruence: * iterate_detector_at_level → serialtbx.detector * iterate_panels → serialtbx.detector * id_from_name → serialtbx.detector * get_center → serialtbx.detector From xfel.command_line.frame_extractor: * ConstructFrame → serialtbx.util.construct_frame From xfel.cxi.cspad_ana.cspad_tbx: * Constants moved to serialtbx.detector.cspad * address_split → serialtbx.detector.xtc * dpack → serialtbx.detector.cspad * get_ebeam → serialtbx.detector.xtc * env_distance → serialtbx.detector.xtc * evt_wavelength → serialtbx.detector.xtc * env_detz → serialtbx.detector.xtc * old_address_to_new_address → serialtbx.detector.xtc From xfel.cxi.cspad_ana.rayonix_tbx.py: * Constants moved to serialtbx.detector.rayonix * get_rayonix_pixel_size → serialtbx.detector.rayonix * get_rayonix_detector_dimensions → serialtbx.detector.rayonix * get_data_from_psana_event → serialtbx.detector.rayonix C++ code from xfel/ext.cpp: * radial_average → dxtbx.ext From xfel.util: * sublattice_helper → dials.algorithms.integration Commits: * Move xfel.mono_simulation.max_like to serialtbx * Move time functionality from cspad_tbx to serialtbx/util/time.py * Move xfel.mono_simulation.util to serialtbx/mono_simulation * xfel.util.sublattice_helper moved to dials.algorithms.integration * Move xfel.command_line.frame_extractor.ConstructFrame to serialtbx.util * Move radial average c++ code to dxtbx * Move dpack to serialtbx.detector.cspad * Move jiffy functions from cspad_detector_congruence to serialtbx.detector * Move utility functions and constants out of cspad_tbx into serialtbx.detector.cspad and serialtbx.detector.xtc * Move movement of functions into serialtbx * Moving out of cspad_cbf_tbx: - Into serialtbx.detector: basis, center - Into serialtbx.detector.cspad: read_slac_metrology - Into serialtbx.detector.xtc: basis_from_geo * Use dxtbx's cbf_wrapper by adding in the only function in the xfel subclass of cbf_wrapper * Move add_frame_specific_cbf_tables to dxtbx * Move xfel.util.jungfrau to serialtbx.detector * cspad constants and data reading moved to serialtbx * Move rayonix functions and constants into serialtbx * Move old_address_to_new_address to serialtbx * Move legacy image pickle metrology code to serialtbx.detector.legacy_metrology * Missing imports and a few more functions moving into serialtbx * Temporarily check out serial_tbx branches on other repos * Duplicated code * Fix import * Add serialtbx to CCIBuilder configuration list. This should ensure serialtbx is included in the conda cctbx-base package * Revert "Temporarily check out serial_tbx branches on other repos" --------- Co-authored-by: Billy K. Poon <[email protected]>
- Loading branch information