Releases: diffpy/diffpy.morph
Releases · diffpy/diffpy.morph
0.3.1
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
0.1.4rc1
What's Changed
- Support Python 3.13, update pyproject.toml by @bobleesj in #141
- Adding multiple morphs for single target by @Sparks29032 in #145
- Recut - codecov in PR, Codespell, release checklist by @bobleesj in #151
- Add conda-forge release checklist to GitHub Issue template by @bobleesj in #152
- Fix job names in
check-news-item.yml,tests-on-pr.ymlby @bobleesj in #153 - Fix tools diffpy.utils paths by @Sparks29032 in #154
- Add shifting morph by @Sparks29032 in #155
- fix: import
loadDataanddeserialize_datadirectly to adopt new API fromdiffpy.utils(3.6.0)by @ycexiao in #162 - style: set the line width limit to 79 by @ycexiao in #164
- Refactor PDFmorph to diffpy.morph by @Sparks29032 in #172
- fix: add temperature field to tutorial data by @ycexiao in #174
- docs: move manual to online doc by @ycexiao in #173
- adding admin username by @sbillinge in #176
New Contributors
Full Changelog: 0.1.3...0.1.4rc1
0.1.3
Added:
- Add GitHub action to build wheel, release, upload.
- Add issue and bug report templates.
Changed:
- README file installation instructions updated.
Fixed:
- Mathematical error in manual