- 24 Jan, 2022 1 commit
-
-
CAMERON T KUCHTA authored
-
- 13 Aug, 2019 1 commit
-
-
Jason Milhone authored
-
- 08 Aug, 2019 1 commit
-
-
Jason Milhone authored
-
- 03 Apr, 2019 1 commit
-
-
Jason Milhone authored
-
- 08 Mar, 2019 1 commit
-
-
Jason Milhone authored
-
- 04 Jun, 2018 3 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
-
- 03 Jun, 2018 4 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
I'm replacing using the QThreadPool for handling all of the MDSplus calls with a concurrent.futures.ThreadPoolExecutor. There is a new function in mdsplushelpers called retrieve_all_data that uses the ThreadPoolExecutor. A keyword is a progress_signal. This is a Qt signal that can be connected back to a progress bar to keep functionality from before. I should probably wrap the emitting in a try except clause. retrieve_all_data is called from an instance of a Worker using the original QThreadPool in app.py. The done signal is connected to handle_mdsplus_data. I've removed handle_returning_data because it is no longer needed. The progress bar is updated via the new function update_progress_bar which is connected to the worker progress signal. I modified workers.py to pass its progress signal to retrieve_all_data. ToDo: Decide on an timeout implementation detail. I'm thinking about adding it to a global configuration. It is nice to have, but it can take a long time to grab all of the data for long cathode plasmas.
-
Jason Milhone authored
I've decided to just leverage numpy for my type checking. I really only want to deal with numpy arrays, so I removed the isistance check against Iterable. The truthyness now is simplier and just checks if len(self) is greater than 1. An implementation detail that I'm not sure if I like is it will throw a ValueError if the lengths of time and data don't match.
-
- 01 Jun, 2018 1 commit
-
-
Jason Milhone authored
Users can now empty the cache when they need to regrab data such as after a change has been made on the MDSplus tree side. The size of the cache can now be monitored via logging.
-
- 31 May, 2018 5 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
Added a function called empty_lru_cache function to empty the cache for the decorated _retrieve_signal function. I want the user to be able to regrab data for the same shot if a modification has been changed on the tree side. Because data.Data is now truthy, I changed the check_data_dictionary to leverage that functionality instead of checking against None. Also, removed some old print statements.
-
Jason Milhone authored
I wanted to check the __init__ arguments to see if they are iterable. I decorated iterable_validator with @staticmethod because it does not need to know anything about the class name or instance. iterable_validator will raise a ValueError if the data is not iterable.
-
Jason Milhone authored
Data class now can be 'truthy', has a defined length, and supports == ToDo: Redo the __repr__ function and __str__ functions.
-
- 29 May, 2018 1 commit
-
-
Jason Milhone authored
-
- 28 May, 2018 2 commits
-
-
Jason Milhone authored
I was encountering an error (see Issue #12 messages) where matplotlib doesn't calculate the new subplot coordinates correctly. There ends up being a negative width or height followed by crashing the program. I don't seem to have this issue anymore by using gridspec. However, I needed to add some functionality to app.py to use GridSpec.tight_layout() because Figure.tight_layout() wasn't working like I thought would.
-
Jason Milhone authored
Created a helper function called _retrieve_signal where all inputs are hashable so that @functools.lru_cache could be utilized. retrieve_signal now unpacks some of the inputs and calls _retrieve_signal. Some of the logging messages were modified as well.
-
- 22 May, 2018 6 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
-
Jason Milhone authored
Continuing to add the @log decorator in places. Made some modifcations to some of the pyqt slot functions that needed an extra paramter that isn't used. I really don't understand why they didn't throw errors before. Probably something to do with how PyQt handles them. Added some more logging statements to exception handling in mdsplus_helpers.py
-
Jason Milhone authored
Double clicking update button would lead to a crash. Button is now disabled while grabbing data. It is unclear if I just added a bug to master. Sorry!
-
Jason Milhone authored
A logging packaged was created with single module called piscope_logging. piscope_logging has three functions: create_logger: creates a logging.Logger instance log: decorator that logs calls and exceptions time_log: decorator that logs calls, exceptions, and time of execution The decorators have been added in mdsplus_helpers.py, app.py. The logger creation has been modified in main.py Notes: I've noticed that on some of my pyqt slots, I haven't included enough arguments for the incoming pyqt signals. This makes things crash if you decorate the slot function. I'm working on fixing this as we speak. THIS IS UNTESTED. USE AT YOUR OWN RISK.
-
- 21 May, 2018 2 commits
-
-
Jason Milhone authored
-
Jason Milhone authored
-
- 19 May, 2018 1 commit
-
-
Jason Milhone authored
-
- 18 May, 2018 1 commit
-
-
Jason Milhone authored
-
- 16 May, 2018 8 commits
-
-
Jason Milhone authored
The way I check to see if xlim and ylim should be enabled is to see if the key is in the config dictionary. I wasn't deleting the key and value from the dictionary when it should be. Note on removing keys from dictionary: dictionary_variable.pop(key_to_remove, None) will remove key_to_remove and return the value of dictionary_variable[key_to_remove]. If key_to_remove is not in dictionary_variable, then it will return None. I changed the deleting code for signals to this intead of using python's del function.
-
Jason Milhone authored
-
Jason Milhone authored
Needed to fix a similar issue when opening a config file at the start with a bad server address
-
Jason Milhone authored
App would lock if there was a bad server address after opening a new configuration file. Now, it should move on gracefully and inform the user that it couldn't access the server.
-
Jason Milhone authored
All of these files were before I started working on a true jScope replacement. They are no longer used and are now being removed from the repository.
-
https://git.doit.wisc.edu/JMILHONE/brb_piscopeJason Milhone authored
I was bad and didn't push earlier so now I have to deal with this merge.
-
Jason Milhone authored
Moved the axes modifications above the list of signals. Added more docstrings to app.py
-
Jason Milhone authored
Fixed bug calling self.get_node_locs instead of parser.get_node_locs Also created oes_config.ini with Halpha and Hbeta
-
- 15 May, 2018 1 commit
-
-