(*schemas: JSON_TYPE)
return result
Compute the lattice join (union type, disjunction) of the arguments.

    Parameters
    ----------
    *schemas: list of JSON schemas
        Schemas to be joined.

    Returns
    -------
    JSON schema
        The joined schema.
Compute the lattice join (union type, disjunction) of the arguments.
Compute the lattice join ( union type disjunction ) of the arguments .
def join_schemas(*schemas: JSON_TYPE) -> JSON_TYPE:
    """Compute the lattice join (union type, disjunction) of the arguments.

    Parameters
    ----------
    *schemas: list of JSON schemas
        Schemas to be joined.

    Returns
    -------
    JSON schema
        The joined schema.
    """

    def join_two_schemas(s_a: JSON_TYPE, s_b: JSON_TYPE) -> JSON_TYPE:
        if s_a is None:
            return s_b
        s_a = lale.helpers.dict_without(s_a, "description")
        s_b = lale.helpers.dict_without(s_b, "description")
        if is_subschema(s_a, s_b):
            return s_b
        if is_subschema(s_b, s_a):
            return s_a
        # we should improve the typing of the jsonsubschema API so that this ignore can be removed
        return jsonsubschema.joinSchemas(s_a, s_b)  # type: ignore

    if len(schemas) == 0:
        return {"not": {}}
    result = functools.reduce(join_two_schemas, schemas)
    return result
def join_schemas ( * schemas : JSON_TYPE ) -> JSON_TYPE : def join_two_schemas ( s_a : JSON_TYPE , s_b : JSON_TYPE ) -> JSON_TYPE : if s_a is None : return s_b s_a = lale . helpers . dict_without ( s_a , "description" ) s_b = lale . helpers . dict_without ( s_b , "description" ) if is_subschema ( s_a , s_b ) : return s_b if is_subschema ( s_b , s_a ) : return s_a # we should improve the typing of the jsonsubschema API so that this ignore can be removed return jsonsubschema . joinSchemas ( s_a , s_b ) # type: ignore if len ( schemas ) == 0 : return { "not" : { } } result = functools . reduce ( join_two_schemas , schemas ) return result