1. 24 Jan, 2022 1 commit
  2. 13 Aug, 2019 1 commit
  3. 08 Aug, 2019 1 commit
  4. 03 Apr, 2019 1 commit
  5. 08 Mar, 2019 1 commit
  6. 04 Jun, 2018 3 commits
  7. 03 Jun, 2018 4 commits
    • Jason Milhone's avatar
      fc1c1104
    • Jason Milhone's avatar
      e4f39b1c
    • Jason Milhone's avatar
      Add concurrent.futures functionality · 8aca22a3
      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.
      8aca22a3
    • Jason Milhone's avatar
      Cast time and data as numpy ndarrays · f7043a09
      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.
      f7043a09
  8. 01 Jun, 2018 1 commit
    • Jason Milhone's avatar
      Add lru_cache logging and emptying in GUI · f80b2d99
      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.
      f80b2d99
  9. 31 May, 2018 5 commits
  10. 29 May, 2018 1 commit
  11. 28 May, 2018 2 commits
    • Jason Milhone's avatar
      Moved to using gridspec over subplot2grid · a296b8e7
      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.
      a296b8e7
    • Jason Milhone's avatar
      Add lru_cache functionality to grabbing data · 520b608b
      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.
      520b608b
  12. 22 May, 2018 6 commits
    • Jason Milhone's avatar
      Remove print statements · c6ffef51
      Jason Milhone authored
      c6ffef51
    • Jason Milhone's avatar
      f8a46bf6
    • Jason Milhone's avatar
      Merge branch 'master' into milhone_dev · 4c1f7036
      Jason Milhone authored
      4c1f7036
    • Jason Milhone's avatar
      Add @log decorator in more places · c7a99ca4
      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
      c7a99ca4
    • Jason Milhone's avatar
      Add hotfix for double clicking update button crash · c159bcff
      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!
      c159bcff
    • Jason Milhone's avatar
      Create a logging package · 6b655d94
      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.
      6b655d94
  13. 21 May, 2018 2 commits
  14. 19 May, 2018 1 commit
  15. 18 May, 2018 1 commit
  16. 16 May, 2018 8 commits
  17. 15 May, 2018 1 commit