diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2016-08-09 21:15:56 +0200 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2016-08-09 21:18:29 +0200 |
commit | 8e2886dc6b45b4e3f68d84887f728483fd2d1538 (patch) | |
tree | e682bbea9e329c80ebc66233d58a01a1306bddbd /grc/core | |
parent | cbe1e43b0f0d1ee0d356b7110700400578855ac6 (diff) | |
parent | fc1a6a88483120921936e415aba4d5d1a9b42d96 (diff) |
Merge remote-tracking branch 'upstream/next' into gtk3
Diffstat (limited to 'grc/core')
-rw-r--r-- | grc/core/CMakeLists.txt | 2 | ||||
-rw-r--r-- | grc/core/Config.py | 13 | ||||
-rw-r--r-- | grc/core/Constants.py | 1 | ||||
-rw-r--r-- | grc/core/Param.py | 6 | ||||
-rw-r--r-- | grc/core/Platform.py | 9 | ||||
-rw-r--r-- | grc/core/generator/CMakeLists.txt | 2 | ||||
-rw-r--r-- | grc/core/generator/Generator.py | 3 | ||||
-rw-r--r-- | grc/core/utils/CMakeLists.txt | 1 |
8 files changed, 20 insertions, 17 deletions
diff --git a/grc/core/CMakeLists.txt b/grc/core/CMakeLists.txt index 51b0dacba6..f340127873 100644 --- a/grc/core/CMakeLists.txt +++ b/grc/core/CMakeLists.txt @@ -22,7 +22,6 @@ file(GLOB py_files "*.py") GR_PYTHON_INSTALL( FILES ${py_files} DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/core - COMPONENT "grc" ) file(GLOB dtd_files "*.dtd") @@ -30,7 +29,6 @@ file(GLOB dtd_files "*.dtd") install( FILES ${dtd_files} default_flow_graph.grc DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/core - COMPONENT "grc" ) add_subdirectory(generator) diff --git a/grc/core/Config.py b/grc/core/Config.py index 400d5d365f..b65a421b7a 100644 --- a/grc/core/Config.py +++ b/grc/core/Config.py @@ -21,6 +21,8 @@ from __future__ import absolute_import import os from os.path import expanduser, normpath, expandvars, exists +from . import Constants + class Config(object): @@ -29,7 +31,7 @@ class Config(object): license = __doc__.strip() website = 'http://gnuradio.org' - hier_block_lib_dir = os.environ.get('GRC_HIER_PATH', expanduser('~/.grc_gnuradio')) + hier_block_lib_dir = os.environ.get('GRC_HIER_PATH', Constants.DEFAULT_HIER_BLOCK_LIB_DIR) def __init__(self, prefs_file, version, version_parts=None): self.prefs = prefs_file @@ -54,3 +56,12 @@ class Config(object): for path in collected_paths if exists(path)] return valid_paths + + @property + def default_flow_graph(self): + user_default = ( + os.environ.get('GRC_DEFAULT_FLOW_GRAPH') or + self.prefs.get_string('grc', 'default_flow_graph', '') or + os.path.join(self.hier_block_lib_dir, 'default_flow_graph.grc') + ) + return user_default if exists(user_default) else Constants.DEFAULT_FLOW_GRAPH diff --git a/grc/core/Constants.py b/grc/core/Constants.py index 13e29cb533..394150529b 100644 --- a/grc/core/Constants.py +++ b/grc/core/Constants.py @@ -31,6 +31,7 @@ FLOW_GRAPH_DTD = os.path.join(DATA_DIR, 'flow_graph.dtd') BLOCK_TREE_DTD = os.path.join(DATA_DIR, 'block_tree.dtd') BLOCK_DTD = os.path.join(DATA_DIR, 'block.dtd') DEFAULT_FLOW_GRAPH = os.path.join(DATA_DIR, 'default_flow_graph.grc') +DEFAULT_HIER_BLOCK_LIB_DIR = os.path.expanduser('~/.grc_gnuradio') DOMAIN_DTD = os.path.join(DATA_DIR, 'domain.dtd') # File format versions: diff --git a/grc/core/Param.py b/grc/core/Param.py index 5ac1745f95..6d947c3615 100644 --- a/grc/core/Param.py +++ b/grc/core/Param.py @@ -443,10 +443,8 @@ class Param(Element): if t in ('string', 'file_open', 'file_save', '_multiline', '_multiline_python_external'): if not self._init: self.evaluate() - if self._stringify_flag: - return '"%s"' % v.replace('"', '\"') - else: - return v + return repr(v) if self._stringify_flag else v + # Vector types elif t in ('complex_vector', 'real_vector', 'float_vector', 'int_vector'): if not self._init: diff --git a/grc/core/Platform.py b/grc/core/Platform.py index 9956391055..7ef944b3aa 100644 --- a/grc/core/Platform.py +++ b/grc/core/Platform.py @@ -56,9 +56,6 @@ class Platform(Element): callback_finished=lambda: self.block_docstrings_loaded_callback() ) - self._block_dtd = Constants.BLOCK_DTD - self._default_flow_graph = Constants.DEFAULT_FLOW_GRAPH - self.blocks = {} self._blocks_n = {} self._block_categories = {} @@ -187,7 +184,7 @@ class Platform(Element): def load_block_xml(self, xml_file): """Load block description from xml file""" # Validate and import - ParseXML.validate_dtd(xml_file, self._block_dtd) + ParseXML.validate_dtd(xml_file, Constants.BLOCK_DTD) n = ParseXML.from_file(xml_file).get('block', {}) n['block_wrapper_path'] = xml_file # inject block wrapper path key = n.pop('key') @@ -291,8 +288,8 @@ class Platform(Element): nested data @throws exception if the validation fails """ - flow_graph_file = flow_graph_file or self._default_flow_graph - open(flow_graph_file, 'r') # Test open + flow_graph_file = flow_graph_file or self.config.default_flow_graph + open(flow_graph_file, 'r').close() # Test open ParseXML.validate_dtd(flow_graph_file, Constants.FLOW_GRAPH_DTD) return ParseXML.from_file(flow_graph_file) diff --git a/grc/core/generator/CMakeLists.txt b/grc/core/generator/CMakeLists.txt index 4bdd59a7a2..492ad7c4ad 100644 --- a/grc/core/generator/CMakeLists.txt +++ b/grc/core/generator/CMakeLists.txt @@ -22,11 +22,9 @@ file(GLOB py_files "*.py") GR_PYTHON_INSTALL( FILES ${py_files} DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/core/generator - COMPONENT "grc" ) install(FILES flow_graph.tmpl DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/core/generator - COMPONENT "grc" ) diff --git a/grc/core/generator/Generator.py b/grc/core/generator/Generator.py index a9ce933aeb..f042b4963c 100644 --- a/grc/core/generator/Generator.py +++ b/grc/core/generator/Generator.py @@ -79,13 +79,14 @@ class TopBlockGenerator(object): self._flow_graph = FlowGraphProxy(flow_graph) self._generate_options = self._flow_graph.get_option('generate_options') self._mode = TOP_BLOCK_FILE_MODE - dirname = self._dirname = os.path.dirname(file_path) + dirname = os.path.dirname(file_path) # Handle the case where the directory is read-only # In this case, use the system's temp directory if not os.access(dirname, os.W_OK): dirname = tempfile.gettempdir() filename = self._flow_graph.get_option('id') + '.py' self.file_path = os.path.join(dirname, filename) + self._dirname = dirname def write(self): """generate output and write it to files""" diff --git a/grc/core/utils/CMakeLists.txt b/grc/core/utils/CMakeLists.txt index 2528fbc43c..3ba65258a5 100644 --- a/grc/core/utils/CMakeLists.txt +++ b/grc/core/utils/CMakeLists.txt @@ -22,5 +22,4 @@ file(GLOB py_files "*.py") GR_PYTHON_INSTALL( FILES ${py_files} DESTINATION ${GR_PYTHON_DIR}/gnuradio/grc/core/utils - COMPONENT "grc" ) |