Code Monkey home page Code Monkey logo

neurotic's People

Contributors

jpgill86 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

neurotic's Issues

Allow interrupted downloads to be resumed later

An alternative to #58, but much harder to implement.

A solution of intermediate technical difficulty might be allowing downloads interrupted by network problems to immediately retry and pick up where they left off. The hardest but most useful version of this feature would allow resuming an incomplete download at any later date. Both of these might require file content validation.

Clean up incomplete/interrupted downloads

Presently, incomplete files are left in the local data directory and cannot be distinguished later from a complete download. The user is forced to determine whether the file is complete or not, and manually delete it before retrying.

Crash

I guess this is an installation problem with pyqt5 or something like this.
I will have a look later.
I oen an issue and when fixed I will writte some notes here.

Ready
debug False
Traceback (most recent call last):
  File "/home/samuel/Documents/projet/neurotic/neurotic/gui/standalone.py", line 286, in launch
    win = ephyviewer_config.create_ephyviewer_window(theme=self.theme, support_increased_line_width=self.support_increased_line_width)
  File "/home/samuel/Documents/projet/neurotic/neurotic/gui/config.py", line 329, in create_ephyviewer_window
    raise ValueError('This file type cannot be read with fast loading (lazy=True): {}'.format(abs_path(self.metadata, 'data_file')))
ValueError: This file type cannot be read with fast loading (lazy=True): /home/samuel/Documents/projet/neurotic/neurotic/example/example-data/data.axgx
[samuel-HP-Z800-Workstation:13609] *** Process received signal ***
[samuel-HP-Z800-Workstation:13609] Signal: Abandon (6)

Allow user to select before launch which viewers to show

This would allow the user to, for example, disable showing the epoch encoder even if an epoch encoder file is specified in the metadata. This functionality already exists in MetadataSelectorWidget for notebooks, but it could be added to the standalone Qt app.

Files remain locked after closing a fast-loaded window

The proximal cause is that this prevents the window created by create_ephyviewer_window from actually being destroyed, which prevents the files from being released.

However, even if that is fixed, the issue described in NeuralEnsemble/python-neo#684 will likely still be a problem. The workaround of manual garbage collection should be able to remove lingering proxy objects after the window has been properly destroyed.

Make notebook/ipywidgets support optional

Since the Jupyter notebook features of the package are not needed for the standalone app, the installation of their dependencies, which are many and large, could be made optional.

This would probably involve the following:

  1. Adding
extras_require = {'notebook': ['ipywidgets', 'ipython']}

to setup.py.

  1. Detecting the availability of dependencies at import time using
try:
    import ipywidgets
    from IPython.display import HTML
    HAVE_IPYWIDGETS = True
except ImportError:
    HAVE_IPYWIDGETS = False
  1. Rewriting EphyviewerConfigurator to not inherit from ipywidgets, and add a subclass to EphyviewerConfigurator called EphyviewerConfiguratorWidget that has the old functionality.

Unify annotation systems

The read-only epochs system (annotations_file) and the editable epochs system (epoch_encoder_file ) should be combined. This will require the ability to attach notes to individual epochs using the epoch encoder. The epoch encoder should also not require the possible labels to be specified at start-up (see #78), and the user should be able to make up new ones as they use it.

Feedback?

Hey @samuelgarcia! I wanted to let you know that I just released the code I use to interact with ephyviewer as a Python package! I think you might like it, and I would love to get your feedback.

The objective is to bring ephyviewer to the non-programmers, like my labmates, haha. Take a look at the README for details:

https://github.com/jpgill86/neurotic

It's still very simple and is far from perfect, but I have been using it for daily activities for a long time and find it incredibly useful. I still have many plans for improvements.

It currently depends on the "experimental" branch of my fork of ephyviewer (which currently just has one change from a pull request that hasn't been merged yet). So, to install it on your system I would recommend creating a new Python environment and following the README's instructions. I hope it works for you! ๐Ÿคž

Differentiate public and private API

Decide which functions and classes should definitely be public-facing, get their call signatures into a form I'm happy with, and commit to avoiding changing them. Other function names should start with underscore to prevent them from importing from each module and to indicate they may change in the future.

Allow user to select subsets of files to download

This would allow the user to, for example, download a data file but skip a large video file. #8 should be implemented first so that this feature could be useful.

It may also be useful to allow existing files to be overwritten, especially if neither #58 nor #59 have been implemented yet. Even if they are, it could be useful to overwrite old versions of files with new ones. EDIT: #106 is a step in this direction.

Allow multiple data files to be loaded simultaneously

For example, it would be convenient to be able to load data collected simultaneously from two separate data acquisition systems and stored in two separate files. Since these may have independent clocks and sampling rates, it would probably be necessary to use one TraceViewer per data file. Also, because ephyviewer supports just one universal timeline, neurotic should provide the option to shift the starting time of data files (like it does for video files), to allow the user to properly synchronize the data.

Allow trace viewer and data_file to be optional

This issue manifests differently for the standalone app and in notebooks.

If traces are disabled using EphyviewerConfiguratorWidget in a notebook, this error is produced: UnboundLocalError: local variable 'line_width' referenced before assignment.

Add loading indicator to GUI

Especially when fast loading is off, opening a dataset can take up to several seconds. During this time, the user may be unsure whether they clicked "Launch" or not, or whether they need to click it again. The GUI should provide some indication that the data is loading to reassure the user.

Crash when remote file does not exist

When a data file is missing from a remote data store, the app crashes. The error is a little different for HTTP remotes (error 404: not found) and FTP remotes (error 550: can't change directory, no such file or directory).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.