benjaminbolling / DynaGUI

A Dynamic Graphical User Interface package, which gives users a method to construct temporary, permanent and/or a set of GUI:s for users in a simple and fast manner combined with diagnostics tools (with advance 1D and 2D plotting methods).
GNU General Public License v3.0
6 stars 3 forks source link

Documentation for the repo #3

Closed pythonpanda2 closed 3 years ago

pythonpanda2 commented 4 years ago

@benjaminbolling

The three different component of the DynaGUI package has been explained the article. Lot of the information expressed in the paper has a visual component which is not easy to decipher just from Figure 1. I went back to the repo and lot of the information is explained much more in detail in

https://github.com/benjaminbolling/DynaGUI/blob/master/DynaGUI_documentation.pdf

There is a disconnect. It would be nice to directly add a GitHub documentation carefully explaining things as simple as prerequisites (e.g. requirements.txt ), installation etc. and linking it up nicely with the paper to make the information accessible.

pythonpanda2 commented 4 years ago

@benjaminbolling

When i did mention about specifying requirement, i should have been much more clear. Please see the example below.

https://github.com/aspuru-guzik-group/chemical_vae/blob/master/requirements.txt

Then you can easily guide potential user with a small note on the README to use either conda or pip to install the per-requisite packages with out any ambiguity.

benjaminbolling commented 4 years ago

A requirements.txt file has now been included, let me know if it is sufficient or needs more work.

pythonpanda2 commented 4 years ago

Thanks a lot for uploading the conda environment. It requires a bit more clean up. So i tried to clean it up and try to install the packages in to a local environments. Please see some of the changes below.

I have revamped the requirement. please find the cleaned up version attached below. requirements_modified.txt

Do rename it as yml file. A list of changed are detailed below: I went with the PyQt5==5.13.1 Fixed the typo : PyTango==9.3.2 --> pytango==9.3.2

Ideally i would like the users to install the package to their own conda enviroments to avoid conflicts with default packages. Hence I added the channels and environment specifications.

Python by default comes with a number of built-in packages which are not required to be specified in the yml file (https://docs.python.org/3/library/) . I have removed the following :

fnmatch, os , subprocess , datetime, sys, random, platform, math and functools

I ran the installation as follows

conda env create --file requirements_modified.yml

Most of the packages were installed seamlessly under two different settings (Mac and Linux) . Unfortunately, the PyTango failed in both setting. As you are the expert, I would urge take a look at this further and hopefully we can have a working conda enviroment setup.

benjaminbolling commented 4 years ago

In order to be able to install PyTango, the user must first install TANGO Controls: https://www.tango-controls.org/downloads/

After this, also Boost.Python must be installed: pip install boost-py

Question is how to proceed now. There are some lightsources around the world that utilise TANGO Controls, however, it is not required/essential in order for the DynaGUI package to work.

benjaminbolling commented 4 years ago

@pythonpanda2 Thank you for the cleaned up version of the requirements, I have pushed it to the master branch.

pythonpanda2 commented 4 years ago

@majensen @benjaminbolling It seems the fix should be straight forward. If the tango has to be installed seperately then would mind adding the instruction for that in the README ?. Then it should be followed by an instruction to create conda enviroment.

You would also need to add boost-py with the right version in to the pip section of the requirements.yml . Otherwise it would be incomplete.

Once you are done with this i will be happy to test the installation.

benjaminbolling commented 4 years ago

Hi, thank you @pythonpanda2, please have another look when you have time. I separated the requirements and environment into two separate files, one in which PyTango is included and the other without it.

pythonpanda2 commented 4 years ago

@benjaminbolling @majensen Just got back from the long weekend. I will try to finish off the tests this week.

pythonpanda2 commented 4 years ago

@majensen @benjaminbolling Thanks a lot for the changes. I went back and tried to follow the instructions in the installation section of the README.

When i follow the step 3) i get the follow error

UnavailableInvalidChannel: The channel is not accessible or is invalid.
  channel name: epics-controls
  channel url: https://conda.anaconda.org/epics-controls
  error code: 404

You will need to adjust your conda configuration to proceed.
Use `conda config --show channels` to view your configuration's current state,
and use `conda config --show-sources` to view config file locations.

Looks like epics-controls channel is not listed in anaconda as a channel. I will be available most of this week for quick follow ups.

benjaminbolling commented 4 years ago

Dear @pythonpanda2, I haven't received (or seen) any notification about your last comment. I am truly sorry for that, and I have updated the environment files such that epics-controls are no longer part of the channels as it should not need to be a channel (in the Conda environment).

This is strange though, as when I did the last comment on Aug 24th, the environment was set up and seemed to work fine.

majensen commented 4 years ago

@pythonpanda2 @benjaminbolling apologies - I should have been on top of this.

pythonpanda2 commented 4 years ago

@majensen @benjaminbolling No problem.

Thanks a lot for making the changes. I went through the installation again. Step 3a) conda env create --file environments.yml worked fine.

A small typo in Step 3b) documentation. conda env create --file environments_tango.yml should be conda env create --file environment_tango.yml

A quick question. Does this mean that the user should install Tango package on their own before proceeding with step 3b?

benjaminbolling commented 3 years ago

I am sorry, I thought I posted a reply last week but apparently I didn't.

I fixed the typo, thanks for noticing it. Correct, the Tango package has to be installed by the user before proceeding with step 3b.

pythonpanda2 commented 3 years ago

Thanks a lot. I will have a look at the issue this week.

pythonpanda2 commented 3 years ago

Thanks a lot for making the changes. I will close the issue.