소스 검색

Update configuration method

This enables a configuration file in $HOME/.kcg/config.cfg.
 When no configuration file is present or when values are missing the default values from the configuration file in the install directory will be used.
closes #23
Patrick Schreiber 8 년 전
부모
커밋
a6e5bae7af
9개의 변경된 파일422개의 추가작업 그리고 134개의 파일을 삭제
  1. 5 2
      KCG/base/kcg.py
  2. 108 0
      KCG/config.cfg
  3. 55 117
      KCG/config.py
  4. 131 0
      KCG/config_orig.py
  5. 10 4
      KCG/style/blue.css
  6. 1 0
      MANIFEST.in
  7. 17 5
      README.md
  8. 93 0
      config.cfg
  9. 2 6
      setup.py

+ 5 - 2
KCG/base/kcg.py

@@ -1,4 +1,5 @@
 from PyQt4 import QtGui, QtCore
+
 import os
 import logging
 
@@ -53,7 +54,7 @@ def readconfig(parent):
         raise ConfigError('The Following variables are missing in config.py: "' + '", "'.join(missing_conf)+'"')
 
     if config.language != "en_GB":
-        kcgw.translator.load('lang/'+ config.language)
+        kcgw.translator.load(config.install_path+'lang/'+ config.language)
     else:
         global tr
         kcgw.tr = lambda _, x: x
@@ -412,11 +413,13 @@ class Gui(QtGui.QMainWindow):
     def update_configuration_file(self, new_conf):
         """
         Update variablevalues in config file
+        NOTE: this doesn't use standard ConfigParser as that would delete comments
         :param new_conf: Dictionary with variable, value pair
         :return:
         """
         import re
-        filename = "config.py"
+        # filename = "config.py"
+        filename = os.path.expanduser("~")+"/.kcg/config.cfg"
         RE = '(('+'|'.join(new_conf.keys())+')\s*=)[^\r\n]*?(\r?\n|\r)'
         pat = re.compile(RE)
 

+ 108 - 0
KCG/config.cfg

@@ -0,0 +1,108 @@
+[Machine]
+# Bunches per turn of accelerator (integer value)
+bunches_per_turn = 184
+# Save headerinformation in file (bool value)
+save_header = True
+# Revolution time (double value)
+tRev =3.6825476109875985e-07
+
+[Ui]
+# NOTE: This value will be overwritten when the language is changed in the gui-settings
+# possible languages:
+# en_GB - English
+# de_DE - German
+language ="en_GB"
+
+# default_save_location: use "pwd" for current working
+# directory KCG will always save in a subdirectory to
+# this given path and save files in this directory
+default_save_location = "pwd"
+
+# default_subdirectory_name_format: this is the
+# naming scheme for the subdirectory in which the
+# files are saved. Format of this string:
+# "{tag1}text{tag2}text" etc.
+# possible tags:
+# {dateG} will produce e.g. 04.01.2015
+# {dateGd} will produce e.g. 04_01_2015
+# {dateA} will pdoduce e.g. 01-04-2015
+# {times} will produce e.g. 14_04
+# {timel} will produce e.g. 14_04_12
+# {d} the Day in 2 digit format
+# {m} the Month in 2 digit format
+# {y} the Year in 4 digit Format
+# {H} the Hour in 2 digit format
+# {M} the minute in 2 digit format
+# {S} the seconds in 2 digit format
+# {timestamp} unix timestamp without msec
+# {user} the current logged in user
+# {sessionname} Ask for session name at startup
+
+# {ask} always ask for a foldername
+#default_subdirectory_name = "{user}_{dateGd}-{timel}_{sessionname}"
+default_subdirectory_name = "{sessionname}"
+
+# reask on cancel in dialog or use {user}_{dateGd}-{timel} as default when cancel is pressed?
+force_ask = False
+
+# Show advanced table view per default? (boolean value)
+show_advanced_control = False
+
+[Logging]
+# These are PVs that will be possible to insert into log files
+# This variable is to be a list consisting of touples of two entries,
+# the first ist the Text that describes the value and the second is the EPICS PV that
+# holds that value
+epics_log_entry_pvs = [
+    ("Beam Energy (GeV)", "A:SR:BeamInfo:01:Energy"),
+    ("Beam Current (mA)", "A:SR:BeamInfo:01:Current"),
+    ("Beam Lifetime (s)", "A:SR:BeamInfo:01:Lifetime"),
+    ("Beam Lifetime (H:M:S)", "A:SR:BeamInfo:01:Lifetime:String"),
+    ("Injection Rate (mA/s)", "A:SR:BeamInfo:01:InjRate"),
+    ("Injection Rate (mA/5s)", "A:SR:BeamInfo:01:InjRate:5s"),
+    ("Fill Number", "A:SR:OperationStatus:01:FillNumber")
+    ]
+# This pv is used to determine if epics pvs are accessible
+epics_test_pv = "A:SR:BeamInfo:01:Current"
+# Path to your epics base installation
+epics_base_path = "/opt/epics/base/"
+
+# List of Entries that are default to save in Log
+# Possible Values are:
+# "Number of Orbits"
+# "Number of Skipped Orbits"
+# "Number of Acquisitions"
+# "Time between Acquisitions"
+# "Pilot Bunch Simulator"
+# "Header saved"
+# "T/H Delay"
+# "ADC 1 Delay"
+# "ADC 2 Delay"
+# "ADC 3 Delay"
+# "ADC 4 Delay"
+# All of the description text entries in epics_log_entry_pvs, see above
+# NOTE: These entries have to match the aforementioned strings exactly
+
+default_log_entries = [
+    "Number of Orbits",
+    "Number of Skipped Orbits",
+    "Number of Acquisitions",
+    "Time between Acquisitions",
+    "Fill Number",
+    "Beam Energy (GeV)",
+    "Beam Current (mA)"
+    ]
+
+[Misc]
+newPlotLiveIcon= "icons/graph.svg"
+newPlotDataIcon= "icons/folder.svg"
+timingIcon = "icons/clock.svg"
+singleReadIcon = "icons/project.svg"
+acquireSettingsIcon = "icons/wrench.svg"
+startIcon = "icons/media-play-black.svg"
+stopIcon = "icons/media-stop.svg"
+logIcon = "icons/clipboard.svg"
+logCommentIcon = "icons/clipboard_comm.svg"
+guiIcon = "icons/KCG_Logo_r.png"
+# style = 'blue'
+style = 'default'

+ 55 - 117
KCG/config.py

@@ -1,126 +1,64 @@
-"""
-This is the configuration File for KCG - Kapture Control Gui
-For possible config settings check this file or the documentation
-"""
+import ConfigParser
+import ast
+import os
 
-# ------------[ Language of the GUI ]------------------
-# NOTE: This value will be overwritten when the language is changed in the gui-settings
-# possible languages:
-# en_GB - English
-# de_DE - German
-language ="en_GB"
-# ------------[ Default Data Save Location ]-----------
-# default_save_location: use "pwd" for current working
-# directory KCG will always save in a subdirectory to
-# this given path and save files in this directory
-default_save_location = "pwd"
-# default_subdirectory_name_format: this is the
-# naming scheme for the subdirectory in which the
-# files are saved. Format of this string:
-# "{tag1}text{tag2}text" etc.
-# possible tags:
-# {dateG} will produce e.g. 04.01.2015
-# {dateGd} will produce e.g. 04_01_2015
-# {dateA} will pdoduce e.g. 01-04-2015
-# {times} will produce e.g. 14_04
-# {timel} will produce e.g. 14_04_12
-# {d} the Day in 2 digit format
-# {m} the Month in 2 digit format
-# {y} the Year in 4 digit Format
-# {H} the Hour in 2 digit format
-# {M} the minute in 2 digit format
-# {S} the seconds in 2 digit format
-# {timestamp} unix timestamp without msec
-# {user} the current logged in user
-# {sessionname} Ask for session name at startup
+config = ConfigParser.ConfigParser()
+config.optionxform = str
+config.read(os.path.expanduser("~")+"/.kcg/config.cfg")
+defaultConfig = ConfigParser.ConfigParser()
+defaultConfig.optionxform = str
+defaultConfig.read(os.path.join(os.path.dirname(__file__), "config.cfg"))
 
-# {ask} always ask for a foldername
-#default_subdirectory_name = "{user}_{dateGd}-{timel}_{sessionname}"
-default_subdirectory_name = "{sessionname}"
-# default_subdirectory_name = 't'
-# reask on cancel in dialog or use {user}_{dateGd}-{timel} as default when cancel is pressed?
-force_ask = False
 
-# Show advanced table view per default? (boolean value)
-show_advanced_control = False
 
-# ------------[ EPICS Log PVs ]------------
-# These are PVs that will be possible to insert into log files
-# This variable is to be a list consisting of touples of two entries,
-# the first ist the Text that describes the value and the second is the EPICS PV that
-# holds that value
-epics_log_entry_pvs = [
-    ("Beam Energy (GeV)", "A:SR:BeamInfo:01:Energy"),
-    ("Beam Current (mA)", "A:SR:BeamInfo:01:Current"),
-    ("Beam Lifetime (s)", "A:SR:BeamInfo:01:Lifetime"),
-    ("Beam Lifetime (H:M:S)", "A:SR:BeamInfo:01:Lifetime:String"),
-    ("Injection Rate (mA/s)", "A:SR:BeamInfo:01:InjRate"),
-    ("Injection Rate (mA/5s)", "A:SR:BeamInfo:01:InjRate:5s"),
-    ("Fill Number", "A:SR:OperationStatus:01:FillNumber")
-]
-# This pv is used to determine if epics pvs are accessible
-epics_test_pv = "A:SR:BeamInfo:01:Current"
-# Path to your epics base installation
-epics_base_path = "/opt/epics/base/"
+Machine_conf = ["bunches_per_turn", "save_header", "tRev"]
+Ui_conf = ["language", "default_save_location", "default_subdirectory_name", "force_ask", "show_advanced_control"]
+Logging_conf = ["epics_test_pv", "epics_base_path"]
 
-# -----------[ Default Measurement Log Entries ]------------
-# List of Entries that are default to save in Log
-# Possible Values are:
-# "Number of Orbits"
-# "Number of Skipped Orbits"
-# "Number of Acquisitions"
-# "Time between Acquisitions"
-# "Pilot Bunch Simulator"
-# "Header saved"
-# "T/H Delay"
-# "ADC 1 Delay"
-# "ADC 2 Delay"
-# "ADC 3 Delay"
-# "ADC 4 Delay"
-# All of the description text entries in epics_log_entry_pvs, see above
-# NOTE: These entries have to match the aforementioned strings exactly
+error = False
 
-default_log_entries = [
-    "Number of Orbits",
-    "Number of Skipped Orbits",
-    "Number of Acquisitions",
-    "Time between Acquisitions",
-    "Fill Number",
-    "Beam Energy (GeV)",
-    "Beam Current (mA)"
-]
+try:
+    for conf in Machine_conf:
+        if config.has_option("Machine", conf):
+            globals()[conf] = ast.literal_eval(config.get('Machine', conf))
+        else:
+            print "Using default configuration value for " + conf
+            globals()[conf] = ast.literal_eval(defaultConfig.get("Machine", conf))
+    for conf in Ui_conf:
+        if config.has_option("Ui", conf):
+            globals()[conf] = ast.literal_eval(config.get('Ui', conf))
+        else:
+            globals()[conf] = ast.literal_eval(defaultConfig.get("Ui", conf))
+            print "Using default configuration value for " + conf
+    for conf in Logging_conf:
+        if config.has_option("Logging", conf):
+            globals()[conf] = ast.literal_eval(config.get('Logging', conf))
+        else:
+            globals()[conf] = ast.literal_eval(defaultConfig.get("Logging", conf))
+            print "Using default configuration value for " + conf
 
-# ------------[ Machine Settings ]-----------
-# Bunches per turn of accelerator (integer value)
-bunches_per_turn = 184
-# Save headerinformation in file (bool value)
-save_header = True
-# Revolution time (double value)
-tRev =3.6825476109875985e-07
+    if config.has_option("Logging", "epics_log_entry_pvs"):
+        globals()["epics_log_entry_pvs"] = ast.literal_eval(config.get('Logging', "epics_log_entry_pvs"))
+    else:
+        globals()["epics_log_entry_pvs"] = ast.literal_eval(defaultConfig.get('Logging', "epics_log_entry_pvs"))
+        print "Using default configuration value for epics_log_entry_pvs"
 
-# -------------------------------------------
-# ------------[ Look and Feel ]--------------
-# -------------------------------------------
+    if config.has_option("Logging", "default_log_entries"):
+        globals()["default_log_entries"] = ast.literal_eval(config.get('Logging', "default_log_entries"))
+    else:
+        globals()["default_log_entries"] = ast.literal_eval(defaultConfig.get('Logging', "default_log_entries"))
+        print "Using default configuration value for default_log_entries"
+
+    # -----[ Do non standard config options ]------------
+    if config.has_section('Misc'):
+        for conf, val in config.items("Misc"):
+            globals()[conf] = ast.literal_eval(val)
+
+    for conf, val in defaultConfig.items("Misc"):
+        if not conf in globals().keys():
+            globals()[conf] = ast.literal_eval(val)
+
+except (ConfigParser.NoOptionError, ConfigParser.NoSectionError) as e:
+    error = True
+    print "There was an error parsing configuration " + str(e)
 
-# ------------[ Icons ]----------------------
-# these are locations for icons used throughout the gui
-newPlotLiveIcon= "icons/graph.svg"
-newPlotDataIcon= "icons/folder.svg"
-timingIcon = "icons/clock.svg"
-singleReadIcon = "icons/project.svg"
-acquireSettingsIcon = "icons/wrench.svg"
-startIcon = "icons/media-play-black.svg"
-stopIcon = "icons/media-stop.svg"
-logIcon = "icons/clipboard.svg"
-logCommentIcon = "icons/clipboard_comm.svg"
-guiIcon = "icons/KCG_Logo_r.png"
-# -----------[ End Icons ]-------------------
-# Style:
-# possible values:
-# Whatever you want (means default Qt Style)
-# blue - Blue style, has some bugs
-# style = 'blue'
-style = 'default'
-# -------------------------------------------
-# ------------[ End Look and Feel ]--------------
-# -------------------------------------------

+ 131 - 0
KCG/config_orig.py

@@ -0,0 +1,131 @@
+"""
+This is the configuration File for KCG - Kapture Control Gui
+For possible config settings check this file or the documentation
+"""
+
+# ------------[ Language of the GUI ]------------------
+# NOTE: This value will be overwritten when the language is changed in the gui-settings
+# possible languages:
+# en_GB - English
+# de_DE - German
+language ="en_GB"
+# ------------[ Default Data Save Location ]-----------
+# default_save_location: use "pwd" for current working
+# directory KCG will always save in a subdirectory to
+# this given path and save files in this directory
+default_save_location = "pwd"
+# default_subdirectory_name_format: this is the
+# naming scheme for the subdirectory in which the
+# files are saved. Format of this string:
+# "{tag1}text{tag2}text" etc.
+# possible tags:
+# {dateG} will produce e.g. 04.01.2015
+# {dateGd} will produce e.g. 04_01_2015
+# {dateA} will pdoduce e.g. 01-04-2015
+# {times} will produce e.g. 14_04
+# {timel} will produce e.g. 14_04_12
+# {d} the Day in 2 digit format
+# {m} the Month in 2 digit format
+# {y} the Year in 4 digit Format
+# {H} the Hour in 2 digit format
+# {M} the minute in 2 digit format
+# {S} the seconds in 2 digit format
+# {timestamp} unix timestamp without msec
+# {user} the current logged in user
+# {sessionname} Ask for session name at startup
+
+# {ask} always ask for a foldername
+#default_subdirectory_name = "{user}_{dateGd}-{timel}_{sessionname}"
+default_subdirectory_name = "{sessionname}"
+# default_subdirectory_name = 't'
+# reask on cancel in dialog or use {user}_{dateGd}-{timel} as default when cancel is pressed?
+force_ask = False
+
+# Show advanced table view per default? (boolean value)
+show_advanced_control = False
+
+# ------------[ EPICS Log PVs ]------------
+# These are PVs that will be possible to insert into log files
+# This variable is to be a list consisting of touples of two entries,
+# the first ist the Text that describes the value and the second is the EPICS PV that
+# holds that value
+epics_log_entry_pvs = [
+    ("Beam Energy (GeV)", "A:SR:BeamInfo:01:Energy"),
+    ("Beam Current (mA)", "A:SR:BeamInfo:01:Current"),
+    ("Beam Lifetime (s)", "A:SR:BeamInfo:01:Lifetime"),
+    ("Beam Lifetime (H:M:S)", "A:SR:BeamInfo:01:Lifetime:String"),
+    ("Injection Rate (mA/s)", "A:SR:BeamInfo:01:InjRate"),
+    ("Injection Rate (mA/5s)", "A:SR:BeamInfo:01:InjRate:5s"),
+    ("Fill Number", "A:SR:OperationStatus:01:FillNumber")
+]
+# This pv is used to determine if epics pvs are accessible
+epics_test_pv = "A:SR:BeamInfo:01:Current"
+# Path to your epics base installation
+epics_base_path = "/opt/epics/base/"
+
+# -----------[ Default Measurement Log Entries ]------------
+# List of Entries that are default to save in Log
+# Possible Values are:
+# "Number of Orbits"
+# "Number of Skipped Orbits"
+# "Number of Acquisitions"
+# "Time between Acquisitions"
+# "Pilot Bunch Simulator"
+# "Header saved"
+# "T/H Delay"
+# "ADC 1 Delay"
+# "ADC 2 Delay"
+# "ADC 3 Delay"
+# "ADC 4 Delay"
+# All of the description text entries in epics_log_entry_pvs, see above
+# NOTE: These entries have to match the aforementioned strings exactly
+
+default_log_entries = [
+    "Number of Orbits",
+    "Number of Skipped Orbits",
+    "Number of Acquisitions",
+    "Time between Acquisitions",
+    "Fill Number",
+    "Beam Energy (GeV)",
+    "Beam Current (mA)"
+]
+
+# ------------[ Machine Settings ]-----------
+# Bunches per turn of accelerator (integer value)
+bunches_per_turn = 184
+# Save headerinformation in file (bool value)
+save_header = True
+# Revolution time (double value)
+tRev =3.6825476109875985e-07
+
+
+# -----[ You Do not need to modify ]---------
+# --------[anything below this] -------------
+# -----[ If you to so, do at own risk ]------
+# -------------------------------------------
+# ------------[ Look and Feel ]--------------
+# -------------------------------------------
+
+# ------------[ Icons ]----------------------
+# these are locations for icons used throughout the gui
+# relative paths to this file
+newPlotLiveIcon= "icons/graph.svg"
+newPlotDataIcon= "icons/folder.svg"
+timingIcon = "icons/clock.svg"
+singleReadIcon = "icons/project.svg"
+acquireSettingsIcon = "icons/wrench.svg"
+startIcon = "icons/media-play-black.svg"
+stopIcon = "icons/media-stop.svg"
+logIcon = "icons/clipboard.svg"
+logCommentIcon = "icons/clipboard_comm.svg"
+guiIcon = "icons/KCG_Logo_r.png"
+# -----------[ End Icons ]-------------------
+# Style:
+# possible values:
+# Whatever you want (means default Qt Style)
+# blue - Blue style, has some bugs
+# style = 'blue'
+style = 'default'
+# -------------------------------------------
+# ------------[ End Look and Feel ]--------------
+# -------------------------------------------

+ 10 - 4
KCG/style/blue.css

@@ -27,10 +27,6 @@ QPushButton:hover
 QLabel, QCheckBox {
     background: None;
 }
-QMenu {
-    border: 3px solid #3F8193;
-    border-radius: 5px;
-}
 QAction {
     border: 10px solid lightblue;
 }
@@ -62,3 +58,13 @@ QScrollBar
     color: black;
 }
 */
+QMenu::item:selected {
+	background-color: #3F8193;
+}
+QMenuBar::item:selected {
+	background-color: #3F8193;
+}
+QMenu {
+	border: 1px solid #3F8193;
+	border-radius 0px;
+}

+ 1 - 0
MANIFEST.in

@@ -2,4 +2,5 @@ recursive-include KCG/Documentation *
 recursive-include KCG/icons *
 recursive-include KCG/lang *
 recursive-include KCG/style *
+include KCG/config.cfg
 

+ 17 - 5
README.md

@@ -3,13 +3,25 @@ KCG - KAPTURE Control Gui
 
 KCG is the Graphical Control Interface to the KAPTURE-Readout-Board.  
 
-To use it follow these steps:
+Prerequisites:
+--------------
+
+- python 2.7.x
+- PyQt4 (python-qt)
+- pyqtgraph
+- numpy
+
+Usage/Installation
+------------------
 
-- Make sure all the dependencies are installed (See documentation/dependencies)
 - Clone this repository
-- Modify `config.py` in the root directory of this repository and make sure all the variables are set correctly for your installation.
-- run kcg.py in the root directory of this repository
-- Thats it!
+- Modify `config.py` in the KCG directory of this repository and make sure all the variables are set correctly for your needs.
+- To run KCG without installation simply run `kcg` in the root of this repository
+- To install KCG (either system- or userwide) use `python setup.py install` with optionally `--user` as flag to 
+install only for current user.
+- To start KCG after installation simply run kcg from whereever you are. 
+- If you chose to install for current user only you need to have $HOME/.local/bin in your $PATH in order to run kcg.
+
 
 If you find any bugs or have questions please let me know via issues [here](https://psraspi.no-ip.biz/gogs/calipp/KCG/issues).
 

+ 93 - 0
config.cfg

@@ -0,0 +1,93 @@
+[Machine]
+# Bunches per turn of accelerator (integer value)
+bunches_per_turn = 184
+# Save headerinformation in file (bool value)
+save_header = True
+# Revolution time (double value)
+tRev =3.6825476109875985e-07
+
+[Ui]
+# NOTE: This value will be overwritten when the language is changed in the gui-settings
+# possible languages:
+# en_GB - English
+# de_DE - German
+language ="en_GB"
+
+# default_save_location: use "pwd" for current working
+# directory KCG will always save in a subdirectory to
+# this given path and save files in this directory
+default_save_location = "pwd"
+
+# default_subdirectory_name_format: this is the
+# naming scheme for the subdirectory in which the
+# files are saved. Format of this string:
+# "{tag1}text{tag2}text" etc.
+# possible tags:
+# {dateG} will produce e.g. 04.01.2015
+# {dateGd} will produce e.g. 04_01_2015
+# {dateA} will pdoduce e.g. 01-04-2015
+# {times} will produce e.g. 14_04
+# {timel} will produce e.g. 14_04_12
+# {d} the Day in 2 digit format
+# {m} the Month in 2 digit format
+# {y} the Year in 4 digit Format
+# {H} the Hour in 2 digit format
+# {M} the minute in 2 digit format
+# {S} the seconds in 2 digit format
+# {timestamp} unix timestamp without msec
+# {user} the current logged in user
+# {sessionname} Ask for session name at startup
+# {ask} always ask for a foldername
+#default_subdirectory_name = "{user}_{dateGd}-{timel}_{sessionname}"
+default_subdirectory_name = "{sessionname}"
+
+# reask on cancel in dialog or use {user}_{dateGd}-{timel} as default when cancel is pressed?
+force_ask = False
+
+# Show advanced table view per default? (boolean value)
+show_advanced_control = False
+
+[Logging]
+# These are PVs that will be possible to insert into log files
+# This variable is to be a list consisting of touples of two entries,
+# the first ist the Text that describes the value and the second is the EPICS PV that
+# holds that value
+epics_log_entry_pvs = [
+    ("Beam Energy (GeV)", "A:SR:BeamInfo:01:Energy"),
+    ("Beam Current (mA)", "A:SR:BeamInfo:01:Current"),
+    ("Beam Lifetime (s)", "A:SR:BeamInfo:01:Lifetime"),
+    ("Beam Lifetime (H:M:S)", "A:SR:BeamInfo:01:Lifetime:String"),
+    ("Injection Rate (mA/s)", "A:SR:BeamInfo:01:InjRate"),
+    ("Injection Rate (mA/5s)", "A:SR:BeamInfo:01:InjRate:5s"),
+    ("Fill Number", "A:SR:OperationStatus:01:FillNumber")
+    ]
+# This pv is used to determine if epics pvs are accessible
+epics_test_pv = "A:SR:BeamInfo:01:Current"
+# Path to your epics base installation
+epics_base_path = "/opt/epics/base/"
+
+# List of Entries that are default to save in Log
+# Possible Values are:
+# "Number of Orbits"
+# "Number of Skipped Orbits"
+# "Number of Acquisitions"
+# "Time between Acquisitions"
+# "Pilot Bunch Simulator"
+# "Header saved"
+# "T/H Delay"
+# "ADC 1 Delay"
+# "ADC 2 Delay"
+# "ADC 3 Delay"
+# "ADC 4 Delay"
+# All of the description text entries in epics_log_entry_pvs, see above
+# NOTE: These entries have to match the aforementioned strings exactly
+
+default_log_entries = [
+    "Number of Orbits",
+    "Number of Skipped Orbits",
+    "Number of Acquisitions",
+    "Time between Acquisitions",
+    "Fill Number",
+    "Beam Energy (GeV)",
+    "Beam Current (mA)"
+    ]

+ 2 - 6
setup.py

@@ -1,4 +1,4 @@
-import os
+#!/usr/bin/python
 from setuptools import setup, find_packages
 
 DESCRIPTION = "KCG KAPTURE Control Gui"
@@ -13,13 +13,8 @@ setup(
     long_description=DESCRIPTION,
     packages=find_packages(),
     install_requires=['numpy',
-                      'matplotlib',
                       'python-qt',
                       'pyqtgraph'],
-#    package_data = {'kcg': ['Documentation/*','icons/*', 'lang/*',
-#                    'style/*', 'VERSION', 'kcg_de.ts', 'kcg.pro',
-#                            'README.md']}
-
     zip_safe = False,
     include_package_data = True,
     entry_points = {
@@ -28,3 +23,4 @@ setup(
         ],
     },
 )
+