Releases: diffpy/pyobjcryst
Releases · diffpy/pyobjcryst
2025.1.0
Fixed:
- Code brought up to scikit-package level 5 standards with automated release workflows
Removed:
- Removed fallback version handling in
src/pyobjcryst/version.py
.
Version 2024.2.2
Changes
Fixes
~~~~~
- Correct powder pattern plotting with a non-empty name
Version 2024.2.1
----------------
Changes
- PowderPattern:
- Fix re-using a matplotlib figure when plotting
- Add
figure
property
Version 2024.2
Changes
- **DiffractionDataSingleCrystal**: add ``SetHklIobs``, ``SetIobs``, ``SetSigma``, ``GetSigma``, ``GetChi2``, ``FitScaleFactorForRw`` and ``FitScaleFactorForR`` (`issue #42 <https://github.com/diffpy/pyobjcryst/issues/42>`_)
- Add a single crystal data notebook example
- Online documentation notebooks now include the plots `<https://pyobjcryst.readthedocs.io/en/latest/examples>`_
Fixes
~~~~~
- From libobjcryst: update the ScatteringComponentList when a Scatterer is removed from a Crystal (`issue #41 <https://github.com/diffpy/pyobjcryst/issues/41>`_)
Version 2024.1
--------------
Changes
- Add python access to MolZAtom, for
Molecule.AsZMatrix()
Version 2.2.6
Changes
- Support for Windows and Python>=3.8
- Added a zoom limit for 3D crystal views
Fixes
~~~~~
- Correct error preventing pyobjcryst import for Windows and Python>=3.8 (`issue #33 <https://github.com/diffpy/pyobjcryst/issues/33>`_)
- Fix for matplotlib >=3.7.0 when removing hkl labels
Version 2.2.5
--------------
Changes
- Raise an exception if
alpha
,beta
orgamma
are not within]0;pi[
when changing lattice angles - Add
UnitCell.ChangeSpaceGroup()
Fixes
- Avoid duplication of plots when using ipympl (aka ``%matplotlib widget``)
- Correct powder pattern tests to avoid warnings
Deprecated
loadCrystal
– usecreate_crystal_from_cif()
instead
Version 2.2.4
Changes
- The list of HKL reflections will now be automatically re-generated for a ``PowderPatternDiffraction`` when the Crystal's spacegroup changes, or the lattice parameters are modified by more than 0.5%
Fixes
~~~~~
- Fixed the powder pattern indexing test
Version 2.2.3
--------------
Added
~~~~~
- Support for Windows install (works with Python 3.7, and with PyPy 3.8 and 3.9)
- Native support for Apple arm64 (M1, M2) processors
- Fourier maps calculation
- Add ``gDiffractionDataSingleCrystalRegistry`` to globals
Version 2.2.2
--------------
Changes
- Add correct wrapping for C++-instantiated objects available through global registries, e.g. when loading an XML file. The objects are decorated with the python functions when accessed through the global registries
GetObj()
- Moved global object registries to
pyobjcryst.globals
- Update documentation
Fixed
- Fix access to ``PRISM_TETRAGONAL_DICAP``, ``PRISM_TRIGONAL``, ``ICOSAHEDRON`` and ``TRIANGLE_PLANE``
- Fix powder pattern plot issues (NaN and update of hkl text with recent matplotlib versions)
Version 2.2.1 -- 2021-11-28
----------------------------
- Add quantitative phase analysis with ``PowderPattern.qpa()``, including an example notebook using the QPA Round-Robin data
- Correct import of ``urllib.request.urllopen()`` when loading CIF or z-matrix files from HTTP URLs
- Fix blank line javascript output when updating the Crystal 3D view
- Add ``RefinableObj.xml()`` to directly get the XMLOutput as a string
- Add example notebooks to the sphinx-generated html documentation
- Fix issue when using ``Crystal.XMLInput()`` for a non-empty structure. Existing scattering power will be re-used when possible, and otherwise not deleted anymore (which could lead to crashes)
Version 2.2.0 -- 2021-06-08
----------------------------
- Add access to ``Radiation`` class & functions to change RadiationType, wavelength in ``PowderPattern`` and ``ScatteringData`` (and hence ``DiffractionDataSingleCrystal``) classes
- Fix the custodian_ward when creating a ``PowderPatternDiffraction``: ``PowderPatternDiffraction`` must persist while ``PowderPattern`` exists, and Crystal must persist while ``PowderPatternDiffraction`` exists
- Add 3D Crystal viewer ``pyobjcryst.crystal.Crystal.widget_3d``
Version 2.1.0 -- 2019-03-11
----------------------------
Added
- Support for Python 3.7
- Validation of compiler options from
python-config
- Make scons scripts compatible with Python 3 and Python 2
- Support
np.array
arguments forSetPowderPatternX
,SetPowderPatternObs
- Declare compatible version requirements for client Anaconda packages
- Facility for silencing spurious console output from libobjcryst
Changed
- Build Anaconda package with Anaconda C++ compiler
- Update to libobjcryst 2017.2.x
Deprecated
- Variable
__gitsha__
in theversion
module, renamed to__git_commit__
Removed
- Support for Python 3.4
Fixed
~~~~~
- Ambiguous use of boost::python classes and functions
- Name suffix resolution of ``boost_python`` shared library
- ``SetPowderPatternX`` crash for zero-length argument
- Incorrectly doubled return value from ``GetInversionCenter``
2025.1.0-rc.0
2024.2.1
Version 2024.2.1
Changes
- PowderPattern:
- fix re-using a matplotlib figure when plotting
- add 'figure' property
Version 2024.2
Changes
- DiffractionDataSingleCrystal: add SetHklIobs, SetIobs, SetSigma, GetSigma,
GetChi2, FitScaleFactorForRw and FitScaleFactorForR
(#42) - Add a single crystal data notebook example
- Online documentation notebooks now include the plots
(https://pyobjcryst.readthedocs.io/en/latest/examples)
Fixes
- From libobjcryst: update the ScatteringComponentList when a Scatterer is removed
from a Crystal (#41)
2024.2
Version 2024.2
Changes
- DiffractionDataSingleCrystal: add SetHklIobs, SetIobs, SetSigma, GetSigma,
GetChi2, FitScaleFactorForRw and FitScaleFactorForR
(#42) - Add a single crystal data notebook example
- Online documentation notebooks now include the plots
(https://pyobjcryst.readthedocs.io/en/latest/examples)
Fixes
- From libobjcryst: update the ScatteringComponentList when a Scatterer is removed
from a Crystal (#41)
2024.1.1
Release 2.2.6
Changes
- Support for windows and python>=3.8
- Added a zoom limit for 3D crystal views
Fixes
- Correct error preventing pyobjcryst import for windows and python>=3.8
(#33) - Fix for matplotlib >=3.7.0 when removing hkl labels
2.2.5
Version 2.2.5
Changes
- Raise an exception if alpha, beta or gamma are not within ]0;pi[ when
changing lattice angles - Add UnitCell.ChangeSpaceGroup()
Fixes
- Avoid duplication of plots when using ipympl (aka %matplotlib widget)
- Correct powder pattern tests to avoid warnings
Deprecated
- loadCrystal - use create_crystal_from_cif() instead
2.2.4
Version 2.2.4
Changes
- the list of HKL reflections will now be automatically be re-generated
for a PowderPatternDiffraction when the Crystal's spacegroup changes,
or the lattice parameters are modified by more than 0.5%
Fixes
- Fixed the powder pattern indexing test
Version 2.2.3
Added
- Support for windows install (works with python 3.7, and
also -only with pypy- 3.8 and 3.9) - Native support for Apple arm64 (M1, M2) processors
- Fourier maps calculation
- Add gDiffractionDataSingleCrystalRegistry to globals
Release 2.2.2
- Add correct wrapping for C++-instantiated objects available through global registries, e.g. when loading an XML file. The objects are decorated with the python functions when accessed through the global registries GetObj()
- Moved global object registries to pyobjcryst.globals
- Fix powder pattern plot issues (NaN and update of hkl text with recent matplotlib versions)
- Fix access to some polyhedra types
- Update documentation
Release 2.2.1
- Adds the ability to perform QPA from a powder pattern when the crystalline phases are known, with an example notebook from the 1999 round Robin
- Solves an issue where updating the Crystal widget would append a js output for each update
- A few changes to setup.py to specify optional modules (but setup.py is not used anyway so this is mostly for documentation)
- Add python 3.8 as supported (should work in 3.9 as well but needs testing)
- There was a change in the previous version where the str() of a molecule used to return the XML output, but this has changed. A
RefinableObj.xml()
convenience function has been added - Added a PbSO4 notebook example with joint X+N optimisation
- Solves an issue where using
XMLInput()
on a Crystal could lead to a crash if the structure was not empty and the scattering powers where added manually (not by importing a Molecule). DeleteRefParInDestructor is now correctly taken into account there, also with a hook to re-use existing scattering power when possible to avoid (minimise) memory leaks. - Solves an issue with the import of
urllib.request.urlopen
- When adding an Atom or a Molecule to a Crystal, an exception will now be raised if the used ScatteringPower are not already added to the Crystal (this could lead to a crash). Check this is OK for Diffpy-CMI
- Update doc:
- add references specific to the recent changes (powder pattern, crystal 3D view, global optimisation,...) including me a contact.
- update some info about installing from source
- replace
m2r
bym2r2
for sphinx as m2r seems abandoned - added the example notebooks in the sphinx documentation (requires
nbsphinx
andnbsphinx-link
). The javascript 3D crystal views are even preserved.