- Add APS POLAR diffractometer geometry.
- Resolve problem with configuration attributes of Diffractometer class.
- Add EPICS IOCs to GitHub workflow unit test suite.
- Drop Python 3.7 from unit test suite matrix.
- Reorganized the web site docs to be easier to navigate.
Add new geometries from upstream libhkl.
- Add
DiffractometerConfiguration
to export & restore configuration and orientation. - Add
Petra3_p23_4c
diffractometer geometry. - Add
Petra3_p23_6c
diffractometer geometry. - Add
SoleilNanoscopiumRobot
diffractometer geometry. - Add
SoleilSixsMed2p3v2
diffractometer geometry. - Export and restore diffractometer configuration as JSON string, YAML string, Python dictionary, or file.
- Add
user.current_diffractometer()
function. - Add
axes_r
,axes_w
, &axes_c
properties to bothcalc
&engine
. - Build tables of diffractometer geometry, engines, and modes from libhkl API.
- Export and reload diffractometer configuration as JSON string, YAML string, or Python dictionary.
diffract.forward()
should pick solution consistent withdiffract.forward_solution_table()
, if it can. Otherwise, fall back to previous iterative method.- Make
util.list_orientation_runs()
work with databroker v1.2 or v2+. - Make
util.run_orientation_info()
work with databroker v1.2 or v2+. - Resolved under-reported problems in CI unit tests.
util.restore_reflections()
use renamed motor axes if so defined.
- Add pre-commit checks.
- Add
apischema
to package requirements. - Add test for
or_swap()
. - Change documentation theme to pydata-sphinx-theme.
- Documentation ZIP file uploaded as artifact with each build. Great for review!
- Expand testing to to Py3.8 - Py3.11.
- Fix code in
util.restore_reflections()
that failed unit tests locally. - Make it easier to find the SPEC command cross-reference table.
- Update packaging to latest PyPA recommendations.
- Validate user input to sample.add_reflection().
- Deprecate the
fit
parameter in diffractometer constraints.
Maintenance release.
util.run_orientation_info()
failed when no primary stream present.- Broken link in documentation.
- Move table with SPEC commands cross-reference to a HOWTO document.
util.list_orientation_runs()
added progress bar.- Support Py3.8, 3.9, 3.10, & 3.11
- Support libhkl v5.0.0.3001 (& v5.0.0.3357 when ready)
Maintenance release.
- Publish to PyPI from GitHub Actions workflow.
- Enable installation by pip.
- Update the conda environment.
- Show how to install hklpy.
- Revise how Jupyter notebook examples are published.
Maintenance release.
- No longer need to
import gi; gi.require_version('Hkl', '5.0')
first. Justimport hkl
and the other steps will be done by the package.
Maintenance release.
- Increase precision of
A_KEV
constant to match 2018 CODATA value. - Document the
max_forward_iterations
attribute. - Provide project description for PyPI packaging.
- Andi Barbour, NSLS-II
First production release.
- Python 3.6 no longer supported.
Constraint
moved fromhkl.diffract
tohkl.util
- Wavelength now saved with each reflection
- Wavelength and lattice parameters in Angstroms now
TwoC
geometry removed since no calculation engines are defined for it in _libhkl_SOLEIL_SIXS
geometry removed since it is not described in _libhkl_MED2+3
renamed toSOLEIL SIXS MED2+3
- Conda package is built for
linux-64
only due to _libhkl_ requirement
- Conda package available on conda-forge:
conda install -c conda-forge hklpy
- Import any diffractometer from top level
hkl
(not fromhkl.diffract
):from hkl import E4CV
- Support save and restore of UB matrix
- Can swap the order of the two crystal orientation reflections.
- Constant:
hkl.SI_LATTICE_PARAMETER
- How-To guides * add extra axes to a diffractometer * rename physical axes of a diffractometer * use additional diffractometer parameters * use the Q calculation engine of E4CV
- Specify calculation engine when creating a diffractometer.
- Simplified user interface when working with one diffractometer.
- Versions of component software packages now available.
- Clarify 6-circle geometries with drawings & labels
- Table of all defined diffractometers and their supported engines
- Show the value used by kappa geometry angle
$alpha$ (50 degrees) - Show how wavelength and other reflection information are held in _libhkl_
- Andi Barbour, NSLS-II
- Jennifer Bui, (NSLS-II) Brown Univ.
- Thomas Caswell, NSLS-II
- Yongseong Choi, APS
- Gilberto Fabbris, APS
- Jong Woo Kim, APS
- Katherine Perez, (NSLS-II) LSU
- Fanny Rodolakis, APS
- Jorg Strempfer, APS
- Andrew Walter, NSLS-II
- Stuart Wilkins, NSLS-II
Full list of changes is on the wiki v0.3.16.
- Diffractometer geometries have moved from
hkl.diffract
to (the new)hkl.geometries
, such ashkl.geometries.E4CV
.
- Diffractometer additions from apstools
- simple user interface for a diffractometer
- constraints
- Create simulators for common geometries.
hkl.geometries.SimMixin
for simulators.
compute_UB()
now returns the UB matrix orNone
(previously returned 1 or 0)
- Ensure that diffractometer energy is read-only (and not modified) by changes in units or energy offset.
- Diffractometer responds to energy, energy units, and energy offset PV updates now.
- separate diffractometer geometry instances from base class
- refer to the hkl C++ library code as libhkl
- add Python 3.9 to unit test suite
- now can use Python f-strings
- re-arrange documentation structure
- define
__all__
in modules
Full list of changes is on the wiki v0.3.15.
- Diffractometer wavelength must use angstrom units to match the
lattice constants. Previously, wavelength was stated to be in
nm
. Instruments upgrading to this release should verify the units actually in use.
- Diffractometer energy units can be specified. Unit conversions are handled by the pint [1] package.
- Examples of E4CV, K4CV, and E6C diffractometer geometries.
- Comparison of UB matrix calculation with SPEC data.
- Source code documentation in hkl.diffract.
- Show how to connect energy from local controls.
[1] | pint: https://pint.readthedocs.io/en/stable/ |
- Limits-checking for hkl values now coordinated with upstream
bluesky
code.
- Move continuous integration processes to GitHub Actions.
- Documentation now published with other bluesky packages: https://blueskyproject.io/hklpy/
- All the previous examples have been archived and will be removed for the 1.0.0 release.