optionally add some automatically set parameters
diff --git a/reclass/core.py b/reclass/core.py
index 76bd0a8..b9da0d2 100644
--- a/reclass/core.py
+++ b/reclass/core.py
@@ -13,8 +13,10 @@
#import sys
import fnmatch
import shlex
+import string
from reclass.datatypes import Entity, Classes, Parameters
from reclass.errors import MappingFormatError, ClassNotFound
+from reclass.defaults import AUTOMATIC_RECLASS_PARAMETERS
class Core(object):
@@ -114,6 +116,9 @@
base_entity = Entity(name='base')
base_entity.merge(self._get_class_mappings_entity(node_entity.name))
base_entity.merge(self._get_input_data_entity())
+ if AUTOMATIC_RECLASS_PARAMETERS:
+ params = { '_reclass_': { 'name': { 'full': nodename, 'short': string.split(nodename, '.')[0] } } }
+ base_entity.merge_parameters(params)
seen = {}
merge_base = self._recurse_entity(base_entity, seen=seen,
nodename=base_entity.name)
diff --git a/reclass/datatypes/entity.py b/reclass/datatypes/entity.py
index 573a28c..1aea3b3 100644
--- a/reclass/datatypes/entity.py
+++ b/reclass/datatypes/entity.py
@@ -29,6 +29,7 @@
self._environment = environment or ''
name = property(lambda s: s._name)
+ short_name = property(lambda s: s._short_name)
uri = property(lambda s: s._uri)
environment = property(lambda s: s._environment)
classes = property(lambda s: s._classes)
@@ -61,6 +62,9 @@
self._uri = other.uri
self._environment = other.environment
+ def merge_parameters(self, params):
+ self._parameters.merge(params)
+
def interpolate(self):
self._parameters.interpolate()
diff --git a/reclass/defaults.py b/reclass/defaults.py
index 641aace..2bc27a4 100644
--- a/reclass/defaults.py
+++ b/reclass/defaults.py
@@ -34,3 +34,5 @@
MERGE_ALLOW_SCALAR_OVER_LIST = False
MERGE_ALLOW_LIST_OVER_SCALAR = False
MERGE_ALLOW_DICT_OVER_SCALAR = False
+
+AUTOMATIC_RECLASS_PARAMETERS = True