612 |
612 |
613 export_storage.unload(configuration.get_full_path(),configuration) |
613 export_storage.unload(configuration.get_full_path(),configuration) |
614 for child in configuration._traverse(type=Configuration): |
614 for child in configuration._traverse(type=Configuration): |
615 export_storage.unload(child.get_full_path(),child) |
615 export_storage.unload(child.get_full_path(),child) |
616 |
616 |
|
617 ruleml_eval_globals_files = [] |
|
618 for child in configuration._traverse(type=RulemlEvalGlobals): |
|
619 if child.file != None: |
|
620 ruleml_eval_globals_files.append(RulemlEvalGlobals.get_script_file_full_path(child)) |
|
621 |
617 #If the configuration is not in the root of the project adding the path |
622 #If the configuration is not in the root of the project adding the path |
618 #to final exporting source path. |
623 #to final exporting source path. |
619 #l = [] |
624 #l = [] |
|
625 empty_folders = kwargs.get('empty_folders',False) |
|
626 layer = configuration.get_layer() |
|
627 all_resources = [] |
|
628 layer_content = layer.list_content(empty_folders) |
|
629 layer_doc = layer.list_doc(empty_folders) |
|
630 layer_implml = layer.list_implml(empty_folders) |
|
631 |
|
632 include_filters = kwargs.get('include_filters',{}) |
|
633 exclude_filters = kwargs.get('exclude_filters',{}) |
|
634 |
|
635 include_content_filter = include_filters.get('content') |
|
636 exclude_content_filter = exclude_filters.get('content') |
|
637 |
|
638 # perform filtering of content files |
|
639 if exclude_content_filter: |
|
640 f = lambda x: not re.search(exclude_content_filter, x, re.IGNORECASE) |
|
641 layer_content = filter(f,layer_content) |
|
642 |
|
643 if include_content_filter: |
|
644 f = lambda x: re.search(include_content_filter, x, re.IGNORECASE) |
|
645 layer_content = filter(f,layer_content) |
|
646 |
|
647 all_resources.extend(layer_content) |
|
648 all_resources.extend(layer_doc) |
|
649 all_resources.extend(layer_implml) |
|
650 |
620 cpath = utils.resourceref.get_path(configuration.get_path()) |
651 cpath = utils.resourceref.get_path(configuration.get_path()) |
621 resr = [utils.resourceref.join_refs([cpath,related]) \ |
652 resr = [utils.resourceref.join_refs([cpath,related]) \ |
622 for related in configuration.get_layer().list_all_related(**kwargs)] |
653 for related in all_resources] |
|
654 resr.extend(ruleml_eval_globals_files) |
623 |
655 |
624 self.storage.export_resources(resr ,export_storage, kwargs.get("empty_folders", False)) |
656 self.storage.export_resources(resr ,export_storage, kwargs.get("empty_folders", False)) |
625 return |
657 return |
626 |
658 |
627 def get_configuration_class(self): |
659 def get_configuration_class(self): |
906 self.namespace = kwargs.get('namespace', '') |
938 self.namespace = kwargs.get('namespace', '') |
907 self.name = kwargs.get('name',utils.resourceref.to_objref(self.path)) |
939 self.name = kwargs.get('name',utils.resourceref.to_objref(self.path)) |
908 self.version = kwargs.get('version') |
940 self.version = kwargs.get('version') |
909 super(Configuration, self).__init__(utils.resourceref.to_objref(self.path), **kwargs) |
941 super(Configuration, self).__init__(utils.resourceref.to_objref(self.path), **kwargs) |
910 self.container = True |
942 self.container = True |
|
943 |
|
944 def __getstate__(self): |
|
945 state = self.__dict__.copy() |
|
946 if state.has_key('_children'): |
|
947 childs = state.get('_children') |
|
948 if childs.has_key('?default_view'): |
|
949 childs.pop('?default_view') |
|
950 state['_children'] = childs |
|
951 return state |
911 |
952 |
912 def _default_object(self, name): |
953 def _default_object(self, name): |
913 return self._default_class()(name) |
954 return self._default_class()(name) |
914 |
955 |
915 def _default_class(self): |
956 def _default_class(self): |
1643 self.name = kwargs.get('name', None) |
1684 self.name = kwargs.get('name', None) |
1644 self.type = kwargs.get('type', None) |
1685 self.type = kwargs.get('type', None) |
1645 self.relevant = kwargs.get('relevant', None) |
1686 self.relevant = kwargs.get('relevant', None) |
1646 self.constraint = kwargs.get('constraint', None) |
1687 self.constraint = kwargs.get('constraint', None) |
1647 self._dataproxy = None |
1688 self._dataproxy = None |
|
1689 self.extensionAttributes = [] |
1648 |
1690 |
1649 def __copy__(self): |
1691 def __copy__(self): |
1650 dict = {} |
1692 dict = {} |
1651 for key in self.__dict__.keys(): |
1693 for key in self.__dict__.keys(): |
1652 if key.startswith('_') or key == 'ref': |
1694 if key.startswith('_') or key == 'ref': |
2183 |
2225 |
2184 if cast_value: value_list = value_subsetting.get_value() |
2226 if cast_value: value_list = value_subsetting.get_value() |
2185 else: value_list = value_subsetting.get_original_value() |
2227 else: value_list = value_subsetting.get_original_value() |
2186 return value_list[key_list.index(mapping_key)] |
2228 return value_list[key_list.index(mapping_key)] |
2187 |
2229 |
|
2230 def set_extension_attributes(self, attributes): |
|
2231 self.extensionAttributes = attributes |
|
2232 |
|
2233 def get_extension_attributes(self): |
|
2234 return self.extensionAttributes |
|
2235 |
|
2236 def add_extension_attribute(self, attribute): |
|
2237 self.extensionAttributes.append(attribute) |
2188 |
2238 |
2189 class FeatureSequence(Feature): |
2239 class FeatureSequence(Feature): |
2190 POLICY_REPLACE = 0 |
2240 POLICY_REPLACE = 0 |
2191 POLICY_APPEND = 1 |
2241 POLICY_APPEND = 1 |
2192 POLICY_PREPEND = 2 |
2242 POLICY_PREPEND = 2 |
3272 self.value = value |
3322 self.value = value |
3273 self.map = kwargs.get('map', None) |
3323 self.map = kwargs.get('map', None) |
3274 self.relevant = kwargs.get('relevant', None) |
3324 self.relevant = kwargs.get('relevant', None) |
3275 self.map_value = kwargs.get('map_value', None) |
3325 self.map_value = kwargs.get('map_value', None) |
3276 self.display_name = kwargs.get('display_name', None) |
3326 self.display_name = kwargs.get('display_name', None) |
|
3327 self.extensionAttributes = [] |
3277 |
3328 |
3278 @classmethod |
3329 @classmethod |
3279 def to_optref(cls, value, map): |
3330 def to_optref(cls, value, map): |
3280 """ |
3331 """ |
3281 @return: An option reference converted from value or map, depending |
3332 @return: An option reference converted from value or map, depending |
3304 elif self.ref == ref: |
3355 elif self.ref == ref: |
3305 return 0 |
3356 return 0 |
3306 else: |
3357 else: |
3307 return 1 |
3358 return 1 |
3308 |
3359 |
|
3360 def set_extension_attributes(self, attributes): |
|
3361 self.extensionAttributes = attributes |
|
3362 |
|
3363 def get_extension_attributes(self): |
|
3364 return self.extensionAttributes |
|
3365 |
|
3366 def add_extension_attribute(self, attribute): |
|
3367 self.extensionAttributes.append(attribute) |
3309 |
3368 |
3310 class Storage(object): |
3369 class Storage(object): |
3311 """ |
3370 """ |
3312 A general base class for all storage type classes |
3371 A general base class for all storage type classes |
3313 """ |
3372 """ |
3948 for layerpath in self.list_layers(): |
4007 for layerpath in self.list_layers(): |
3949 for respath in self.get_layer(layerpath).list_confml(): |
4008 for respath in self.get_layer(layerpath).list_confml(): |
3950 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
4009 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
3951 return lres |
4010 return lres |
3952 |
4011 |
3953 def list_implml(self): |
4012 def list_implml(self,empty_folders=False): |
3954 """ |
4013 """ |
3955 @return: array of implml file references. |
4014 @return: array of implml file references. |
3956 """ |
4015 """ |
3957 lres = [] |
4016 lres = [] |
3958 for layerpath in self.list_layers(): |
4017 for layerpath in self.list_layers(): |
3959 for respath in self.get_layer(layerpath).list_implml(): |
4018 for respath in self.get_layer(layerpath).list_implml(empty_folders): |
3960 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
4019 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
3961 return lres |
4020 return lres |
3962 |
4021 |
3963 def list_content(self): |
4022 def list_content(self,empty_folders=False): |
3964 """ |
4023 """ |
3965 @return: array of content file references. |
4024 @return: array of content file references. |
3966 """ |
4025 """ |
3967 lres = [] |
4026 lres = [] |
3968 for layerpath in self.list_layers(): |
4027 for layerpath in self.list_layers(): |
3969 for respath in self.get_layer(layerpath).list_content(): |
4028 for respath in self.get_layer(layerpath).list_content(empty_folders): |
3970 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
4029 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
3971 return lres |
4030 return lres |
3972 |
4031 |
3973 def list_doc(self): |
4032 def list_doc(self,empty_folders=False): |
3974 """ |
4033 """ |
3975 @return: array of document file references. |
4034 @return: array of document file references. |
3976 """ |
4035 """ |
3977 lres = [] |
4036 lres = [] |
3978 for layerpath in self.list_layers(): |
4037 for layerpath in self.list_layers(): |
3979 for respath in self.get_layer(layerpath).list_doc(): |
4038 for respath in self.get_layer(layerpath).list_doc(empty_folders): |
3980 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
4039 lres.append(utils.resourceref.join_refs([layerpath, respath])) |
3981 return lres |
4040 return lres |
3982 |
4041 |
3983 def list_all_resources(self, **kwargs): |
4042 def list_all_resources(self, **kwargs): |
3984 """ |
4043 """ |
4054 """ |
4113 """ |
4055 res = self.list_resources(self.predefined['confml_path'], recurse=True) |
4114 res = self.list_resources(self.predefined['confml_path'], recurse=True) |
4056 res += super(Layer, self).list_confml() |
4115 res += super(Layer, self).list_confml() |
4057 return res |
4116 return res |
4058 |
4117 |
4059 def list_implml(self): |
4118 def list_implml(self,empty_folders=False): |
4060 """ |
4119 """ |
4061 @return: array of implml file references. |
4120 @return: array of implml file references. |
4062 """ |
4121 """ |
4063 res = self.list_resources(self.predefined['implml_path'], recurse=True) |
4122 res = self.list_resources(self.predefined['implml_path'], recurse=True,empty_folders=empty_folders) |
4064 res += super(Layer, self).list_implml() |
4123 res += super(Layer, self).list_implml(empty_folders) |
4065 return res |
4124 return res |
4066 |
4125 |
4067 def list_content(self): |
4126 def list_content(self,empty_folders=False): |
4068 """ |
4127 """ |
4069 @return: array of content file references. |
4128 @return: array of content file references. |
4070 """ |
4129 """ |
4071 res = self.list_resources(self.predefined['content_path'], recurse=True) |
4130 res = self.list_resources(self.predefined['content_path'], recurse=True,empty_folders=empty_folders) |
4072 res += super(Layer, self).list_content() |
4131 res += super(Layer, self).list_content(empty_folders) |
4073 return res |
4132 return res |
4074 |
4133 |
4075 def list_doc(self): |
4134 def list_doc(self,empty_folders=False): |
4076 """ |
4135 """ |
4077 @return: array of document file references. |
4136 @return: array of document file references. |
4078 """ |
4137 """ |
4079 res = self.list_resources(self.predefined['doc_path'], recurse=True) |
4138 res = self.list_resources(self.predefined['doc_path'], recurse=True,empty_folders=empty_folders) |
4080 res += super(Layer, self).list_doc() |
4139 res += super(Layer, self).list_doc(empty_folders) |
4081 return res |
4140 return res |
4082 |
4141 |
4083 def confml_folder(self): |
4142 def confml_folder(self): |
4084 cpath = self.get_current_path() |
4143 cpath = self.get_current_path() |
4085 spath = self.predefined['confml_path'] |
4144 spath = self.predefined['confml_path'] |
4184 Return a instance of appropriate mapper for given model. |
4243 Return a instance of appropriate mapper for given model. |
4185 """ |
4244 """ |
4186 mapmodule = __import__('cone.public.mapping') |
4245 mapmodule = __import__('cone.public.mapping') |
4187 return mapmodule.public.mapping.BaseMapper() |
4246 return mapmodule.public.mapping.BaseMapper() |
4188 |
4247 |
|
4248 class RulemlEvalGlobals(Base): |
|
4249 """ |
|
4250 Ruleml subelement of extensions element |
|
4251 """ |
|
4252 refname = "_extension" |
|
4253 def __init__(self, value = None, file = None, **kwargs): |
|
4254 """ |
|
4255 """ |
|
4256 super(RulemlEvalGlobals,self).__init__(self.refname) |
|
4257 self.value = value |
|
4258 self.file = file |
|
4259 |
|
4260 @classmethod |
|
4261 def get_script_file_full_path(self, child): |
|
4262 parent_config = child._find_parent(type=Configuration) |
|
4263 cpath = parent_config.get_full_path() |
|
4264 cpath = utils.resourceref.psplit_ref(cpath)[0] |
|
4265 path = utils.resourceref.join_refs([cpath, child.file]) |
|
4266 return path |
4189 |
4267 |
4190 class Problem(object): |
4268 class Problem(object): |
4191 SEVERITY_ERROR = "error" |
4269 SEVERITY_ERROR = "error" |
4192 SEVERITY_WARNING = "warning" |
4270 SEVERITY_WARNING = "warning" |
4193 SEVERITY_INFO = "info" |
4271 SEVERITY_INFO = "info" |