-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[13-2, 16, 19, 21, 22] Bring main
up to date with develop
#24
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* DOC: - added Python versions and `black` code style to `README` * DOC: - added `isort` badge to `README` * TST: - added `--no-jit`-flag to `pytest` to enable proper coverage of Numba functions * tmp: - first test of CI with coverage report ? * BUG: - fixed failure of `pytest-xdist` and `pytest-cov` in GitHub CI (works locally) ? * BUG: - fixed accidentally placed `\` for `./tests` in coverage CI action ? * BUG: - added codecov to CI pipeline ? * TST: - tried to readd `pytest-xdist` for coverage reports ? * wip: - reset example Jupyter notebook number 3 * MAINT: - made `_get_num_workers` a function of the `_utils`-model TST: - increased coverage to 100% by testing `np.float32` x-values for the Hermite functions was well as super negative numbers of requested workers * DOC: - added setup, installation, and development instructions to `README` * DOC: - switched back from `README.rst` to `README.md` BLD: - made CI pipeline push actions apply to the main branch only
* BLD: - added initial version of Makefile and based GitHub CI on it ? * BUG: - fixed type in `pip install` in `Makefile` for GitHub CI * BLD: - added plain install to Makefile - removed current branch from GitHub CI trigger on push DOC: - added Makefile instructions to `README`
* BLD: - added `mypy` to CI pipeline BUG: - fixed type error that `mypy` uncovered for the `filename_parameters_mapping` for the Hermite function reference generation * wip: - test if CI can still pass ? * wip: - CI apparently still runs; removed check * BLD: - added `pycodestyle` as a part of the CI checks BUG: - fixed a line too long error revealed by `pycodestyle` * DOC: - added CI test status to `README` ? * ENH: - added functions that help for computing discrete/continuous Fourier transforms (`fourier_transform._fft_utils`) TST: - implemented a test suite for `fourier_transform._fft_utils` * Issue 14 #14 DOC: - updated equations with new definitions of $\alpha$ - updated `README` with new equations and added respective reference that these definitions are based on * Issue 14 #14 MAINT: - removed redundant Numba version of the legacy Hermite functions and `jit`-compiled the NumPy-version instead - fixed minor documentation issues * Issue 14 #14 MAINT: - adapted interface to Hermite functions to the new definition of $\alpha$ in terms of both implementation and docs * Issue 14 #14 DOC: - updated example scripts and resulting plots with new definition of $\alpha$ * Issue 14 #14 TST: - generated new references files for testing the new definition of $\alpha$ for the Hermite functions - adapted Hermite function tests to properly run for the new definition of $\alpha$ - configured Hermite function tests via global constants and kept comments in them more vague - made test for Cramér's inequality of the Hermite functions ensure that the boundary value is not only an upper bound but actually reached - changed `requirements` for GitHub CI because with a re-arrangement of the `if __name__ == "__main__"` in the Hermite function reference generation file, `sympy` and `tqdm` became CI requirements as well * BUG: - fixed failing `ruff` for too long line in docstring of new `_fft_utils` BLD: - temporarily enabled CI on push to current branch to check if it still passes after an adaption in `pyright` * Issue 14 #14 BLD: - disabled GitHub CI on push to the current branch again after verifying that it still runs * Issue 13 #13 (3) ENH: - added `x_center` to the Hermite function basis for shifting the Hermite functions in x-direction - added input validation for `x_center` MAINT: - renamed `hermite_functions._interface` to `hermite_functions._func_interface` to prepare for the class interface - made type handling of Hermite function input validation smarter and safer by first converting to the target type and then testing only for this one - made argument types for `x` of the Hermite functions broader by also including lists and tuples TST: - made input validation tests for Hermite functions be executed before the Hermite function reference tests - made input validation tests for Hermite functions not only check failure but also success cases - added tests for the new `x_center` and ensured that it does not modify the original `x`-values for the Hermite functions (after this causes some problems) DOC: - updated all equations and the `README` to clarify the new `x_center` for the Hermite functions - updated installation commands (also mentioned venv activation) and test/check commands in `README` * DOC: - added y-axis to Hermite-function-scale-effect-plot - fixed first vertical x-axis for order `n=0` not showing in the plot at all * Issue #13 (3) MAINT: - moved Hermite function input validation to dedicated file ENH: - pushed forgotten files that add `x_center` to Hermite functions TST: - pushed forgotten files that test the new `x_center` of the Hermite functions and improved the testing of the Hermite function input validation * TST: - split up tests for Hermite functions into dedicated test files to be more flexible * Issue #13 (3) DOC: - added common matplotlib style to unify all plots - updated example scripts with new matplotlib style - added shifted center to Hermite function example 01 * DOC: - made example plots 01 and 02 for Hermite functions more visually appealing/less overwhelming * Issue #13 (6.1) ENH: - added auxiliary script that auto-generates a Python file with spline coefficients for almost exactly evaluating the largest zero (= outermost roots) of the Hermite functions up to order ~100_000 * Issue #13 (6.1) MAINT: - refactored the reference creation for the largest roots of the Hermite functions to not minimize the relative but the absolute error - relaxed permitted absolute error in reference creation for the largest roots of the Hermite functions because the SciPy-reference is not that accurate DOC: - mentioned that the SciPy-reference for the largest roots of the Hermite functions is not perfectly accurate * Issue #13 (6) ENH: - added script to create reference data for the largest extrema of the Hermite functions - added new `_approximations`-module for Hermite functions that offers approximations for their largest roots, largest extrema, and fadeout points TST: - added tests for the new `_approximations`-module DOC: - added legend to first plot in script that creates reference data for the largest roots of the Hermite functions * MAINT: - refactored the reference data generation for the largest roots and extrema of the Hermite functions to fit the splines based on relative errors - updated reference data and plots created by these scripts - made this reference data generation a developer-only script TST: - made test for largest root of Hermite functions more meaningful by adapting the tolerance for checking to the actual magnitude of the root position - made test for largest extremum of Hermite functions more meaningful by checking the y-values (and not the x-values) of the extremum against a numerical optimisation (also with magnitude-adaptive tolerances) * DOC: - made all plot saves in examples available for developers only - aligned plots in terms of visuals (especially titles and sizes) - updated `README` with new plots and developer-only environment variable * BLD: - added additional scripts checks to GitHub CI - made all tools cause actual failures rather than just printing test output ? - broke CI on purpose, by badly formatting `auxiliary_scripts\02_hermite_functions_largest_extremum.py` and `src\robust_hermite_ft\hermite_functions\_c_hermite.pyx` * BLD: - CI tests fixed `black` formatting after confirming that it works - `isort` is the next to check * BLD: - fixed `isort` CI failure after confirming that it works - `pyright` is the next to check * BLD: - temporarily broke `isort` CI check again to check its output * BLD: - fixed `isort` problem again - checking for reasons why `pyright`-check fails by running it separately without output ? * BLD: - fixed `pyright` error handling in CI - `mypy` is the next one to check, but for now it's checked whether it just runs through even though there is an error * BLD: - pushing updated CI workflow file for properly testing that `mypy` just runs through - added `matplotlib` to CI requirements to avoid `pyright` from throwing an error ? * BLD: - going back to the start for tests after `mypy` also stopped CI correctly - starting with `black` test * BLD: - `black` successfully stopped the CI without customised handling - `isort` is the next to check without customised handling * BLD: - also `isort` stops the CI on failure - next to check is `pyright` * BLD: - reverted GitHub CI to its original working state * DOC: - updated `README` with new CI commands * ENH: - Hermite functions now support all kinds of real numeric scalars/Arrays as `x`-values, integer scalars as `n`-values, and real numeric scalars for `alpha` and `x_center` after making the input validation way more relaxed and smarter TST: - test for Hermite function input validation now covers Python and Numpy scalars individually and on top of that also includes Pandas series and Python Arrays - test for data link to original `x` in Hermite functions now evaluates dynamically whether memory is shared by checking if changes in the copy/view are reflected in the original - added a completely new test set whether the Hermite functions yield the same results for all different kinds of `x`-values, `n`-values, `alpha`- and `x-center` values * BUG: - fixed missing `pandas` dependency for GitHub CI * BUG: - fixed type incompatibility that caused `mypy` to crash the GitHub CI * TST: - fixed missing coverage for default and error handling of FFT utility functions * DOC: - arranged legend of plot for special points of Hermite functions in a better position * TST: - removed unnecessary list parametrization for orthonormality test of Hermite functions * DEV: - fixed wrong wording of static type check in Makefile - added combined check for all checks to Makefile * ENH: - improved typing to given `dtype` type hint for Arrays in Hermite functions * ENH: - added check that the `x` for Hermite function computations holds at least 1 entry TST: - extended input validation test for Hermite functions to cover the "at least 1 element in x" failure case * ENH: - made integer type hinting of Hermite functions more consistent - added option to disable input validation of Hermite functions * DOC: - added complete check make command to `README` * Issue #13 (7, 8) ENH: - made `x_center` a float-only in the internals of the Hermite functions TST: - moved tests for function interface of the Hermite functions to a dedicated test file that can be distinguished from the tests for the class interface DEV: - added make command for running a single test * DEV: - made names of test commands in Makefile more descriptive in terms of coverage - updated GitHub CI and `README` accordingly * ENH: - finalised proper type handling of the parameters of the Hermite functions in `_func_interface` and `_approximations` - removed checks for `x_center is None` for the Hermite function that are now obsolete given that it's always a float * Issue #13 (7, 9) ENH: - implemented a class interface to the Hermite functions that can compute them in the time/space and frequency domain with in principle arbitrary parameters Issue #13 (8) TST: - added extensive tests for the new class interface to the Hermite functions * Issue #13 (7, 9) ENH: - added static method `eval` to `HermiteFunctionBasis` and made this the central computation method where `HermiteFunctionsBasis` (especially `__call__`) wraps around Issue #13 (8) TST: - made tests for `HermiteFunctionBasis` properly cover both the static method `eval` and the magic method `__call__` via the parametrised tests * [19] Rechange definition of `alpha` in Hermite functions back to a denominator; made Hermite function definition only real for the time/space domain (#20) * # Issue 19 MAINT: - refactored all Hermite functions computations (except for the class interface) to handle the new old definition of the scaling parameter alpha for `x / alpha` rather than the former `alpha * x` TST: - regenerated symbolic reference files for Hermite functions to reflect the new definition of alpha - reflected new definition of alpha in all Hermite function tests - improved test variable naming of global constants - made x-value computation of the orthonormality test of the Hermite functions based on an approximation of the fadeout points and the order to lower the computational load while ensuring that the x-values are always properly created in a dynamic fashion - made Cramér's inequality check for Hermite functions checked with relative rather than absolute tolerance * Issue #19 DEV: - added auxiliary script that creates images of the equations used for documenting the package - added a make command to update all the equation images via this script DOC: - incorporated the new definition of the scaling factor alpha of the Hermite functions (not `alpha * x` but now `alpha / x` again) in the documentation - cleaned up documentation equation images and plots - linked all new equations and plots properly in the `README` and docstrings * BUG: - updated fontsize of equations to ensure they are properly rendered in `README` (not pixely) ? * BUG: - made equation images in `README` not pixely ? * BUG: - made equation images in `README` not pixely (new resolution) ? * BUG: - made equation images in `README` not pixely pt.3 ? * BUG: - made equation images in `README` not pixely pt.4 ? * BUG: - made equation images in `README` not pixely pt.5 (transition to SVG) ? * BUG: - made equation images in `README` not pixely pt.5 (SVG with reduced fontsize) ? * BUG: - made equation images in `README` not pixely pt.6 (SVG with even more fontsize reduction) ? * BUG: - made equation images in `README` not pixely pt.7 (SVG with even more fontsize reduction) ? * DOC: - fully transitioned to `.svg` instead of `.png` based documentation - added plain definition of Hermite functions and polynomials to script that creates/updates equation images * BUG: - fixed too small equations in `README` ? * BUG: - fixed too small font of equation images in `README` * Issue #19 MAINT: - adapted definition of the Hermite function class interface to make the time/space domain real-valued only TST: - adapted output dtypes of the Hermite class interface to the new definition that the time/space domain has to be real-valued only DOC: - added LaTeX equation images for the Hermite functions and their Fourier transforms * Issue #19 DOC: - added example for the Fourier transforms of the Hermite functions with the new definition of `alpha` - made the Fourier transform of the Hermite functions part of the `README` - updated all plots because an axis label size changed * BUG: - fixed typo in `README` * ENH: - made validation functions for Hermite function input public - made validation input for `x_center` for Hermite functions more generic * ENH: - made typing of input validation of Hermite functions indicate `Any` instead of any specified types * DOC: - changed colors of example 4 plots * DOC: - removed Fourier transform of Hermite functions from examples and `README` * ENH: - made input validation of Hermite functions more flexible for the `x_center` by just handling it as an offset of a certain axis * Issue #13 (7 - 9) ENH: - actually a downwards enhancement - removed the direct Fourier transform of the Hermite function class interface - adapted all implementations, documentations, and tests to this new stripped down version of the class interface - included class interface into function interface test for the Hermite functions and therefore renamed the test file from `function_interface` to `implementations`
…tation of Hermite functions (#23) * Issue #22 MAINT: - dropped Cython implementation of Hermite functions (also `cython-lint` as a check in the CI) * Issue #22 MAINT: - removed `Cython` and `psutil` from the requirements * Issue #22 MAINT: - completely dropped Cython implementation of all Hermite functions in the whole package Issue #23 MAINT: - renamed package from `robust_hermite_ft` to `robust_fourier` * BUG: - raised coverage to 100% again by conducting type error check for the `jit` property of the Hermite function class interface * BUG: - fix `black` check crashing the CI because of missing empty line * Issue #22 MAINT: - relaxed upper bound on NumPy version (now also v2 will be allowed) * BUG: - fixed wrong hashtag in test file * BUG: - fixed NumPy v2 deprecated `trapz`
MothNik
added
✍️ documentation
Improvements or additions to documentation
💪 enhancement
New feature or request
📦 packaging
Issues, additions, improvements related to packaging and building the package
labels
Aug 8, 2024
MothNik
added
✅❌ tests
Everything related to maintaining or improving tests and coverage
⚡ Numba
Issues, additions, improvements involving Numba
🏃 Speed
Enhancements to improve the speed of computations/development
🦾 GitHub Action
Everything related to GitHub actions
💥 breaks old funcionality
Changes that break old functionality
🧰 Utilities
Utilities for working on the package
🎁 Repository
Changes regarding the repository as a whole
labels
Aug 8, 2024
MothNik
commented
Aug 8, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed on top of CI ✅
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
💥 breaks old funcionality
Changes that break old functionality
✍️ documentation
Improvements or additions to documentation
💪 enhancement
New feature or request
🦾 GitHub Action
Everything related to GitHub actions
⚡ Numba
Issues, additions, improvements involving Numba
📦 packaging
Issues, additions, improvements related to packaging and building the package
🎁 Repository
Changes regarding the repository as a whole
🏃 Speed
Enhancements to improve the speed of computations/development
✅❌ tests
Everything related to maintaining or improving tests and coverage
🧰 Utilities
Utilities for working on the package
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request reflects the changes made in
#17, #18, and #23
Closes #16
Closes #21
Closes #22