Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
Archivo: set.py Proyecto: Mondego/pcc
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
Ejemplo n.º 4
0
Archivo: join.py Proyecto: Mondego/pcc
    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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
 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
Ejemplo n.º 8
0
Archivo: union.py Proyecto: Mondego/pcc
 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
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
 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