def __call__(self, actual_class): build_required_attrs(actual_class) if not actual_class.__grouped_pcc__: for dim in self.type.__dimensions__: setattr(actual_class, dim._name, dim) actual_class.__dimensions__.add(dim) actual_class.__dimensions_name__.add(dim._name) if hasattr( dim, "_primarykey") and getattr(dim, "_primarykey") != None: actual_class.__primarykey__ = dim setattr(actual_class, dim._name, dim) actual_class.__primarykey__ = self.type.__primarykey__ actual_class.__dimensions__.update(self.type.__dimensions__) actual_class.__dimensions_name__.update( self.type.__dimensions_name__) actual_class.__PCC_BASE_TYPE__ = False actual_class.__dependent_type__ = True actual_class.__pcc_bases__ = set( [self.type]).union(actual_class.__pcc_bases__ if hasattr( actual_class, "__pcc_bases__") else set()) actual_class.__ENTANGLED_TYPES__ = [self.type] actual_class.__start_tracking__ = False actual_class.__pcc_subset__ = True actual_class.__pcc_type__ = "subset" return actual_class
def pcc_set(actual_class): build_required_attrs(actual_class) actual_class.__PCC_BASE_TYPE__ = True actual_class.__dependent_type__ = True actual_class.__pcc_bases__ = set() actual_class.__ENTANGLED_TYPES__ = list() actual_class.__start_tracking__ = False return actual_class
def __call__(self, actual_class): build_required_attrs(actual_class) # actual_class the class that is being passed from application. actual_class.__dependent_type__ = True actual_class.__ENTANGLED_TYPES__ = self.types actual_class.__PCC_BASE_TYPE__ = False actual_class.__pcc_bases__ = set(self.types) actual_class.__pcc_join__ = True for tp in self.types: if hasattr(tp, "__pcc_bases__"): actual_class.__pcc_bases__.update(tp.__pcc_bases__) actual_class.__start_tracking__ = False actual_class.__pcc_type__ = "join" return actual_class
def __call__(self, actual_class): # actual_class the class that is being passed from application. for dimension in self.dimensions: setattr(actual_class, dimension._name, dimension) build_required_attrs(actual_class) actual_class.__dependent_type__ = True actual_class.__ENTANGLED_TYPES__ = [self.type] actual_class.__PCC_BASE_TYPE__ = False actual_class.__pcc_bases__ = set( [self.type]).union(actual_class.__pcc_bases__ if hasattr( actual_class, "__pcc_bases__") else set()) actual_class.__start_tracking__ = False actual_class.__pcc_projection__ = True actual_class.__pcc_type__ = "projection" return actual_class
def __call__(self, actual_class): # actual_class the class that is being passed from application. for dimension in self.dimensions: setattr(actual_class, dimension._name, dimension) build_required_attrs(actual_class) actual_class.__dependent_type__ = True actual_class.__ENTANGLED_TYPES__ = [self.type] actual_class.__PCC_BASE_TYPE__ = False actual_class.__pcc_bases__ = set([self.type]).union( actual_class.__pcc_bases__ if hasattr(actual_class, "__pcc_bases__") else set()) actual_class.__start_tracking__ = False actual_class.__pcc_projection__ = True actual_class.__pcc_type__ = "projection" return actual_class
def __call__(self, actual_class): build_required_attrs(actual_class) # actual_class the class that is being passed from application. actual_class.__dimensions__ = self.dimensions actual_class.__dimensions_name__ = self.dimension_names # The pcc union class being cooked right here. actual_class.__dependent_type__ = True actual_class.__ENTANGLED_TYPES__ = self.types actual_class.__PCC_BASE_TYPE__ = False actual_class.__pcc_bases__ = set(self.types).union(actual_class.__pcc_bases__ if hasattr(actual_class, "__pcc_bases__") else set()) actual_class.__start_tracking__ = False actual_class.__dimensions__ = actual_class.__dimensions__ if hasattr(actual_class, "__dimensions__") else set() actual_class.__dimensions_name__ = actual_class.__dimensions_name__ if hasattr(actual_class, "__dimensions_name__") else set() actual_class.__pcc_union__ = True actual_class.__pcc_type__ = "union" actual_class.__real_types__ = self.real_types return actual_class
def __call__(self, actual_class): build_required_attrs(actual_class) # actual_class the class that is being passed from application. actual_class.__dimensions__ = self.dimensions actual_class.__dimensions_name__ = self.dimension_names # The pcc union class being cooked right here. actual_class.__dependent_type__ = True actual_class.__ENTANGLED_TYPES__ = self.types actual_class.__PCC_BASE_TYPE__ = False actual_class.__pcc_bases__ = set( self.types).union(actual_class.__pcc_bases__ if hasattr( actual_class, "__pcc_bases__") else set()) actual_class.__start_tracking__ = False actual_class.__dimensions__ = actual_class.__dimensions__ if hasattr( actual_class, "__dimensions__") else set() actual_class.__dimensions_name__ = actual_class.__dimensions_name__ if hasattr( actual_class, "__dimensions_name__") else set() actual_class.__pcc_union__ = True actual_class.__pcc_type__ = "union" actual_class.__real_types__ = self.real_types return actual_class
def __call__(self, actual_class): build_required_attrs(actual_class) for dim in self.type.__dimensions__: setattr(actual_class, dim._name, dim) actual_class.__dimensions__.add(dim) actual_class.__dimensions_name__.add(dim._name) if hasattr(dim, "_primarykey") and getattr(dim, "_primarykey") != None: actual_class.__primarykey__ = dim setattr(actual_class, dim._name, dim) actual_class.__PCC_BASE_TYPE__ = False actual_class.__dependent_type__ = True actual_class.__pcc_bases__ = set([self.type]).union(actual_class.__pcc_bases__ if hasattr(actual_class, "__pcc_bases__") else set()) actual_class.__ENTANGLED_TYPES__ = [self.type] actual_class.__start_tracking__ = False actual_class.__primarykey__ = self.type.__primarykey__ actual_class.__dimensions__.update(self.type.__dimensions__) actual_class.__dimensions_name__.update(self.type.__dimensions_name__) actual_class.__pcc_subset__ = True actual_class.__pcc_type__ = "subset" return actual_class