Releases: diffpy/diffpy.morph
Releases · diffpy/diffpy.morph
0.4.0
Added:
- User now has option to select which grid they want the morphed function returned on. The default grid is still the intersection of the original and target grid. The option --original-grid changes the returned grid to be the original grid instead.
- New option "uncertainty" to allow user to estimate uncertainty of the refined morphing parameters.
Changed:
- Program no longer gives SystemExit. Proper errors are assigned to each case.
- Default labels for saving are now [x] and [fx] instead of [r] and [gr].
- All dictionary keys and column headers are lower-cased. This includes Rw->rw, Pearson->pearson, and the user-given --field-sort quantity is made lower-case.
- Updated support from 3.11-3.13 to 3.12-3.14.
- Requires diffpy.utils>=3.7.1.
- Now use
PyCQA/docformatterto format Python docstrings.
Fixed:
- In morphpy, when a parameter is set to None, it will not be used as an option.
0.3.2-rc.0
What's Changed
- fix: update docs release workflow to use _release-docs.yml by @sbillinge in #285
- fix: updating publish docs workflow with hard coded python 3.13 for now by @sbillinge in #286
- Matrix testing by @cadenmyers13 in #289
- Refactor default labels from [r],[gr]->[x],[fx] when saving by @Sparks29032 in #294
- Fixed tests for squeeze morph warnings by @Sparks29032 in #295
- Update error message by @Sparks29032 in #292
- Allow
Noneas parameter value in morphpy by @Sparks29032 in #297 - Change docformatter, update all other hooks by @Sparks29032 in #302
- Support 3.14. Switch from loadData->load_data. by @Sparks29032 in #303
- Add uncertainties for main parameters. by @Sparks29032 in #299
- Give user option to save on original grid by @Sparks29032 in #304
Full Changelog: 0.3.1...0.3.2-rc.0
0.3.1
Fixed:
- Applying a function with no extrapolation no longer produces an error.
0.3.0
Added:
- Tutorials for wrapping PDFgetx3 and PyFai with funcxy.
- morphfuncx added: apply a function to the grid of your morphed function; this function should maintain the monotonic increasing nature of the grid
- morphfuncxy added: apply a general function which can modify both the ordinate and abscissa; useful when applying fourier transform or integration functions
- There is now an option to save the difference curve. This is computed on the common interval between the two curves.
- Raise
ValueErrorif the number of shared grid points between morphed and target functions is less than the number of parameters. - Enable
diffpy.morphto detect extrapolation. - Warnings added to
squeezemorph if the squeeze causes the grid to become non-monotonic.
Changed:
- Removed PDF-specific language from all plotting functions.
- The interpolation of the morphed/objective function onto the target function grid is now done at the end of the morphing chain. Prior, it was done before. This change is desirable as the target function grid may be much smaller/larger than that of the objective, but a morph (e.g. stretch) accounts for that difference. Then, we ensure the morph is done before we regrid for comparison.
- Changed tutorial language away from PDF-specific names
- Names of rmin, rmax, rstep renamed to xmin, xmax, xstep
- Removed PDF-specific labels from plotting functions
- Exclude option in morphpy now takes in a list of morphs to exclude rather than excluding a single morph.
- For diffpy.morph developers: both morphpy functions now have shared code in a separate function for easier maintenance.
Fixed:
- Tutorial examples for funcxy and pyfai now run properly.
- Docstring for kwargs updated from dict to Any since various input types from kwargs are possible (e.g. a list/tuple for squeeze, a tuple for funcy, a float for smear-pdf). This should remove the warning that inputs are not dicts.
- When transforming from the RDF to PDF in the smear-pdf morph, we incorrectly referenced the target grid zero point, when we should be referencing the morph grid zero point. This would lead to the morph PDF being set to zero on a point corresponding to when the target PDF grid value is zero. The correct behavior is for the morph PDF to be set to zero when the morph PDF grid value is zero. This has been fixed.
- All morph inputs are now outputted for multiple morphs/targets.
- Docstrings updated for better clarity.
- MorphRGrid can now handle grids denser than 1e-08. Previously, it was possible that multiple points on the intersection range could be excluded.
- Only give user extrapolation warning after refinement.
Security:
- Removed subprocess calls in test functions.
0.3.0-rc.2
What's Changed
- Fix examples by @Sparks29032 in #265
- Squeeze morph warning handling by @Sparks29032 in #272
- Update docstrings for clarity by @Sparks29032 in #273
- Handle IO for (CLI) morph inputs in a function by @Sparks29032 in #274
Full Changelog: 0.3.0-rc.1...0.3.0-rc.2
0.3.0-rc.1
What's Changed
- Remove PDF language from plot by @Sparks29032 in #263
- Add tutorial for wrapping PDFgetx3 and PyFai with funcxy by @Sparks29032 in #264
Full Changelog: 0.3.0-rc.0...0.3.0-rc.1
0.3.0-rc.0
What's Changed
- Update numerical file comparisons in tests by @Sparks29032 in #231
- Put the
MorphRGridat the end of the morphing chain by @Sparks29032 in #232 - Bug fix for
--smear-pdfby @Sparks29032 in #234 - Restructure morphpy for easier maintainence by @Sparks29032 in #235
- Add option to save difference curve by @Sparks29032 in #237
- Move epsilon parameter in
MorphRGridby @Sparks29032 in #242 - Change kwargs input from dict to any by @Sparks29032 in #244
- Update exclude morphs option by @Sparks29032 in #246
- Morphfuncxy by @Sparks29032 in #239
- docs: fix rst markup by @ycexiao in #247
- raise
ValueErrorif the the number of regression points is less than the number of parameters in_residualby @ycexiao in #249 - feat: add warning for extrapolation in
morphsqueezeby @ycexiao in #250 - Remove subprocess calls from tests by @Sparks29032 in #251
- Only warn user about
squeezeextrapolation after refinement by @Sparks29032 in #252 - Update code of conduct by @Sparks29032 in #254
- feat: add
set_extrapolation_infofunction inmorph.Morphby @ycexiao in #255 - feat: detect extrapolation for
morphstretchby @ycexiao in #258 - Add citation file by @Sparks29032 in #260
- Refactor away from PDF language by @Sparks29032 in #261
Full Changelog: 0.2.0...0.3.0-rc.0
0.2.0
Added:
- Added a tutorial for MorphFuncy
- Functionality for refining lists and dictionaries
- Add docformatter config to pyproject.toml
- Python interfacing to call PDFmorph
- Returns dictionary of morph metrics (dict) and the r, gr pair for plotting or further manipulation
- General morph function that applies a user-supplied Python function to the y-coordinates of morph data
- Spelling check via Codespell in pre-commit
- Coverage report in each PR
- Added tutorial for MorphSqueeze and MorphFuncy
- Polynomial squeeze of x-axis of morphed data
- --multiple-morphs: morph multiple files against a single target
- New --smear option applies the smear morph directly to the function (without transforming to RDF).
- Support for python 3.13
- manual information is added into online docs.
- Option to set tolerance for the morph refinement (default 1e-08).
- Squeeze morph now added to CLI.
- Error thrown when squeeze morph given improper inputs.
- Shifting morph for vertical and horizontal shifts.
Changed:
- Paths to diffpy.utils.parsers functions made explicitly to the file level.
- Changed docstrings location for MorphFuncy and MorphSqueeze
- Typo fixes in documentation.
- Tutorial documentation files split into three sections.
- --multiple changed to --multiple-targets for clarity
- Former --smear option renamed to --smear-pdf (converts PDF to RDF before applying the smear morph).
- Renamed PDFmorph to diffpy.morph
- Stretch disabled when squeeze is above polynomial order 0.
- Horizontal shift morph disabled when squeeze is enabled.
- Squeeze morph now removes duplicate/repeated and trailing commas before parsing.
- Swap colors for morph and target. Morph is now blue and target red.
Fixed:
- add temperature field to tutorial/additionalData.
- Multiple morphs/targets used to break given multiple subdirectories.
- reduce the line width limit to 79
- Support
scikit-packageLevel 5 standard (https://scikit-package.github.io/scikit-package/). - import
loadDataanddeserialize_datadirectly to integrate withdiffpy.utils(3.6.0)
Removed:
- diffpy.morph manual removed.
- Support for python 3.10
- manual.
0.2.0-rc.1
What's Changed
- Squeeze morph: Adding UCs tests by @Luiskitsu in #182
- Bug (unintentional feature) fixes by @Sparks29032 in #184
- Reset Rw back to original by @Sparks29032 in #187
- test/func: created a test and function for MorphFuncy by @Luiskitsu in #186
- Enable refinement of lists and dictionary input parameters by @Luiskitsu in #190
- chore: pre-commit auto fixes from prettier by @zmx27 in #200
- skpkg: setup CI after migrating tests, src, requirements, and .github folder by @zmx27 in #201
- skpkg: add configuration files for pre-commit, readthedocs, codecov by @zmx27 in #202
- skpkg: migrate documentation, README, and public static files by @zmx27 in #204
- skpkg: migrate large doc/manual files by @zmx27 in #205
- chore: merge fully migrated migration branch into main by @sbillinge in #206
- ci: add docformatter config to pyproject.toml and apply them to the files by @zmx27 in #214
- Add squeeze morph to CLI by @Sparks29032 in #216
- Add tolerance option by @Sparks29032 in #217
- Remove manual and update README by @Sparks29032 in #218
- Add test for prolate spheroid by @Sparks29032 in #219
- Rename PDF-specific smear option to
--smear-pdfby @Sparks29032 in #220 - Python Interfacing for PDFmorph (Clean Branch) by @Sparks29032 in #191
- Remove unused
__main__block in tests by @Sparks29032 in #222 - doc/tutorial: adding a tutorial for MorphFuncy and proper docstring by @Luiskitsu in #215
- Split
quickstart.rsttutorial by @Sparks29032 in #225 - Added MorphSqueeze and MorphFuncy tutorials by @Luiskitsu in #226
- Edge cases and error handling for the squeeze morph by @Sparks29032 in #227
- Add new api-documentation by @Sparks29032 in #228
- Fixing typos in documentation and tutorials by @Sparks29032 in #229
New Contributors
- @Luiskitsu made their first contribution in #182
- @zmx27 made their first contribution in #200
Full Changelog: 0.1.4rc1...0.2.0-rc.1
0.2.0-rc.0
What's Changed
- Squeeze morph: Adding UCs tests by @Luiskitsu in #182
- Bug (unintentional feature) fixes by @Sparks29032 in #184
- Reset Rw back to original by @Sparks29032 in #187
- test/func: created a test and function for MorphFuncy by @Luiskitsu in #186
- Enable refinement of lists and dictionary input parameters by @Luiskitsu in #190
- chore: pre-commit auto fixes from prettier by @zmx27 in #200
- skpkg: setup CI after migrating tests, src, requirements, and .github folder by @zmx27 in #201
- skpkg: add configuration files for pre-commit, readthedocs, codecov by @zmx27 in #202
- skpkg: migrate documentation, README, and public static files by @zmx27 in #204
- skpkg: migrate large doc/manual files by @zmx27 in #205
- chore: merge fully migrated migration branch into main by @sbillinge in #206
- ci: add docformatter config to pyproject.toml and apply them to the files by @zmx27 in #214
- Add squeeze morph to CLI by @Sparks29032 in #216
- Add tolerance option by @Sparks29032 in #217
- Remove manual and update README by @Sparks29032 in #218
- Add test for prolate spheroid by @Sparks29032 in #219
- Rename PDF-specific smear option to
--smear-pdfby @Sparks29032 in #220 - Python Interfacing for PDFmorph (Clean Branch) by @Sparks29032 in #191
- Remove unused
__main__block in tests by @Sparks29032 in #222 - doc/tutorial: adding a tutorial for MorphFuncy and proper docstring by @Luiskitsu in #215
- Split
quickstart.rsttutorial by @Sparks29032 in #225 - Added MorphSqueeze and MorphFuncy tutorials by @Luiskitsu in #226
- Edge cases and error handling for the squeeze morph by @Sparks29032 in #227
- Add new api-documentation by @Sparks29032 in #228
- Fixing typos in documentation and tutorials by @Sparks29032 in #229
New Contributors
- @Luiskitsu made their first contribution in #182
- @zmx27 made their first contribution in #200
Full Changelog: 0.1.4rc1...0.2.0-rc.0