def _cartesian_product(self, first_specs, second_specs):
        """
        Takes the Cartesian product of the specifications. Result will
        contain N specifications where N = len(first_specs) *
        len(second_specs) and keys are merged.
        Example: [{'a':1},{'b':2}] * [{'c':3},{'d':4}] =
        [{'a':1,'c':3},{'a':1,'d':4},{'b':2,'c':3},{'b':2,'d':4}]
        """
        return  [ dict(zip(
                          list(s1.keys()) + list(s2.keys()),
                          list(s1.values()) + list(s2.values())
                      ))
                 for s1 in first_specs for s2 in second_specs ]
def _cartesian_product(self, first_specs, second_specs):
        """
        Takes the Cartesian product of the specifications. Result will
        contain N specifications where N = len(first_specs) *
        len(second_specs) and keys are merged.
        Example: [{'a':1},{'b':2}] * [{'c':3},{'d':4}] =
        [{'a':1,'c':3},{'a':1,'d':4},{'b':2,'c':3},{'b':2,'d':4}]
        """
        return  [ dict(zip(
                          list(s1.keys()) + list(s2.keys()),
                          list(s1.values()) + list(s2.values())
                      ))
                 for s1 in first_specs for s2 in second_specs ]
def _cartesian_product ( self , first_specs , second_specs ) : return [ dict ( zip ( list ( s1 . keys ( ) ) + list ( s2 . keys ( ) ) , list ( s1 . values ( ) ) + list ( s2 . values ( ) ) ) ) for s1 in first_specs for s2 in second_specs ]
Takes the Cartesian product of the specifications. Result will
        contain N specifications where N = len(first_specs) *
        len(second_specs) and keys are merged.
        Example: [{'a':1},{'b':2}] * [{'c':3},{'d':4}] =
        [{'a':1,'c':3},{'a':1,'d':4},{'b':2,'c':3},{'b':2,'d':4}]
Takes the Cartesian product of the specifications . Result will contain N specifications where N = len ( first_specs ) * len ( second_specs ) and keys are merged . Example : [ { a : 1 } { b : 2 } ] * [ { c : 3 } { d : 4 } ] = [ { a : 1 c : 3 } { a : 1 d : 4 } { b : 2 c : 3 } { b : 2 d : 4 } ]