summaryrefslogtreecommitdiff
path: root/grc/core
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2016-08-09 21:15:56 +0200
committerSebastian Koslowski <koslowski@kit.edu>2016-08-09 21:18:29 +0200
commit8e2886dc6b45b4e3f68d84887f728483fd2d1538 (patch)
treee682bbea9e329c80ebc66233d58a01a1306bddbd /grc/core
parentcbe1e43b0f0d1ee0d356b7110700400578855ac6 (diff)
parentfc1a6a88483120921936e415aba4d5d1a9b42d96 (diff)
Merge remote-tracking branch 'upstream/next' into gtk3
Diffstat (limited to 'grc/core')
-rw-r--r--grc/core/CMakeLists.txt2
-rw-r--r--grc/core/Config.py13
-rw-r--r--grc/core/Constants.py1
-rw-r--r--grc/core/Param.py6
-rw-r--r--grc/core/Platform.py9
-rw-r--r--grc/core/generator/CMakeLists.txt2
-rw-r--r--grc/core/generator/Generator.py3
-rw-r--r--grc/core/utils/CMakeLists.txt1
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"
)