Changelogs » Multiscale-statistical-analysis

PyUp Safety actively tracks 268,006 Python packages for vulnerabilities and notifies you when to upgrade.



  This patch fixed some issues with the failsafe not ending the importing process, causing it to run in the background. The threading backend has now been reworked and has removed threading entirely.
  Project Files/Documentation
  - PyPi README now links to PyPi webpage (92)
  - Added PyPi license badge to README
  - Update security policy for v0.4.X (95)
  - App now checks for MountainsMap installation at startup, and prevents import of surfaces if not installed (78)
  - Added warning against using mouse and keyboard during surface import (94)
  - Removed threading backend, now using standard functions
  - Resolved TypeError (pickle '_thread.lock' object) being thrown when starting up surface importer (90)
  - Resolved issue with import thread not terminating after failsafe is triggered (91)
  - Failsafe did not trigger during MountainsMap startup configuration window (93)
  - Triggering failsafe did not allow for opening any of the successfully created result files (96)


  This release brought along the addition of the surface importing tool. The user now has the option to open surface files, and then imports these surfaces MountainsMap® (developed by [Digital Surf]( These surfaces are then analyzed using scale sensitive fractal analysis, and the results are then exported to a user-specified folder. These results can then be imported into the *Multiscale Statistical Analysis* software as they normally would.
  *In order to use the results data, these surfaces need to be analyzed at identical scales. This issue will be fixed at a later release.*
  Project Files/Documentation
  - Introduction to resource files, which can be easily contained within an executable such as pyinstaller
  - MountainsMap template file for import efficiency (61)
  - MountainsMap button images to use image detection for clicking on the correct buttons (68)
  - Updated PyPi badge in README (3c6c71e65)
  - Seperated `discrim_test_choices` and `plot_choices` maps and move it into corresponding class within `` (58)
  - Implement surface importer, which uses an instance of MountainsMap (created by *Digital Surf*) to open a surface and run a scale-sensitive fractal anlaysis, exporting the results to a specified folder (11)
  - Information/requirement popup displayed before using import tool (89)
  - Scale-sensitive or complexity selection menu appears before importing (59)
  - Length/area analysis selection menu appears before importing  (60)
  - Results directory selection appears before importing (63)
  - Error popup for incorrect data entry in options menu (66)
  - File overwrite dialog displays during import process (67)
  - Use MountainsMap external script and use windows registry to locate Mountains executable for quick execution/analysis of surfaces (62)
  - Use pre-generated mountains template file for improving external script efficiency (61)
  - Use `pyautogui` for mouse and keyboard control within Mountains (68)
  - Saving results files based on surface file names (69)
  - Multithreaded termination detection using hotkey/mouse (similar to `pyautogui`'s failsafe) (70)
  - Create temporary directory at startup and shutdown of surface importer (79)
  - Rereplaced `__setitem__` with array index equivalent, forgot about `PlotData` (18)
  - Enabled all surface files types to be openable (24)
  - Create helper functions for RegressionPlot plot fit functions (26)
  - Bring app window to foreground after processing surface (77)
  - Removed whitespace in plot data (13)
  - About menu dialog was using '__name__' and not 'name', and was displaying an improper application name (64)
  - Resolved issue where `open_file2` fails if extra info is included in a results file (85)
  - *Resolved EXCEPTION_ACCESS_VIOLATION when switching to different MountainsMap templates (82, occurred within release)*
  - *Resolved issue, where the user could not close MountainsMap after import process, preventing deletion of temp directory (81)*
  - *Resolved issue where Windows would not continue interaction process after the initial launch of MountainsMap, never interacting with the process (83)*


  This release is regarding a complete overhaul of the dialog generation classes and plot fit functions to become more easily manageable. More of these backend changes will come soon. This was also a quick patch regarding a previous issue that was thought to have been resolved regarding divide by zero errors. These issues should now be fixed.
  This release also involved improvements to the community/repository general guidelines, as well as publicly releasing the project as a package on [PyPi]( There are still some issues to be worked out with using the package, but the installation process is functional.
  Project Files/Documentation
  - Restructured project files by moving python code to the `src` directory, and created community health files (51)
  - Created a python package that can be found on [PyPi]( (35)
  - Updated README with PyPi badge (b4817ce)
  - **Cleaned up repetitive code (33)**
  - Regression fit graph dialog generation is now more manageable/future-proof, removing repetitive code using a list to store generation properties (41)
  - Cleaned up and restructured `RegressionPlot` fit functions are now nicely packaged within a helper function, making later updates easier (26)
  - The `CurveFit` class in charge of many statistical calculations is now static, replacing the need for `CurveFit` instances being used in many places (43)
  - Simplified discrimination and scale plot menu event calls in `` (49)
  - Cleaned up repetitive `StatsTestsUI` `FTestDialog` statistical functions, creating needed helpers (48)
  - Created `plot_fit()` helper function to simplify `R2byScalePlot`'s fit functions and simplified `pick_point()` (45)
  - Simplified plot click functions within `RegressionSelectPlot` and further simplified the class structure (47)
  - Removed useless graph properties being displayed on the data table, as well as the corresponding calls to `__setitem__` for the table (2, 18)
  - Resolved issue with the reappearance of divide by zero errors occurring during discrimination tests (17)
  - Resolved issue with divide by zero errors not appearing on debug screen (19)
  - Resolved issue with `scipy`'s `OptimizeWarning`'s not displaying on the debug screen (26)
  - Resolved issue where adding the `--windowed` flag in `PyInstaller` prevented the app from launching
  - *Resolved issue where directory structure broke import statements needed to run the application (55, issue occured within this release)*


  This release is the kickstart of this project and took place in order to submit this software in a state that was usable by [Digital Surf]( After sitting dormant for a few weeks, this project was finally needed by WPI's Surface Metrology Lab. This release does some general bug fixing to the user interface, creating better error handling, workbook usability, and much more.
  Project Files/Documentation
  - Created project [README]( (3f33a1b)
  - Added abandonment statement regarding MountainsMap®multiscale addon
  - Added documentation regarding building/running the project
  - Added dependency file for dependabot ([requirements.txt](
  - Updated .gitignore to contain visual studio files
  - Added Open Source MIT License
  - Added python module properties
  - Regrouped "Data" and "Analysis" buttons to now be contained within "Regression" and "Discrimination" menus (3)
  - Divide by zero errors are now displayed in the error window (19)
  - Restructured backend for maintaining workbooks, now containing the `Workbook` objects within `PlotData` objects. This will be further reworked later (9)
  - Displays a more useful error message when negative values are used for the range of the complexity graph (29)
  - Displaying more useful error messages for failed curve-fitting on the error window (32)
  - Items in the tree menu can now be renamed (25)
  - Window size now shrinks when restoring from a maximized window (37)
  - Removed "could not convert string to float" error displaying when opening a file (1)
  - Fixed issue with graphs not being visible after initially creating them, forcing the user to have to click on the tree menu (5)
  - Resolved issue where creating a new workbook would be using contents of the previous workbook (9)
  - Resolved typo (30) after changes from creating new workbook (9)
  - Resolved issue where users could select a tree element that wasn't the workbook, attempt to create a graph/workbook which resulted in an AttributeError (31)
  - Pressing tab through the discrimination analysis menus is now in order from left to right (4)
  - Resolved curve fit errors by fixing issues originating from workbook changes (9)
  - Fixed issue with close button disabling when the user prematurely leaves/errors on a file save/open menu (38)
  - Resolved invalid initialization of "Save As" dialog window (40)


  Quick patch, adjusting the version number values within the source code so that it matches the release tags.


  This is the initial publishing of this project. This contains all code that was completely and initially developed by nrutkowski1.