Home / Function/ remove_all_none_default() — langchain Function Reference

remove_all_none_default() — langchain Function Reference

Architecture documentation for the remove_all_none_default() function in pydantic_utils.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  80bb1e8b_2eb4_f11f_8739_d03f6bd4a5c3["remove_all_none_default()"]
  b22df862_b52d_14dc_cb85_6573258dd27c["pydantic_utils.py"]
  80bb1e8b_2eb4_f11f_8739_d03f6bd4a5c3 -->|defined in| b22df862_b52d_14dc_cb85_6573258dd27c
  231942ec_e6ee_db67_4aa9_62b78c60b2f1["_schema()"]
  231942ec_e6ee_db67_4aa9_62b78c60b2f1 -->|calls| 80bb1e8b_2eb4_f11f_8739_d03f6bd4a5c3
  31a96103_4c69_062c_4133_8d54d03d7cea["_normalize_schema()"]
  31a96103_4c69_062c_4133_8d54d03d7cea -->|calls| 80bb1e8b_2eb4_f11f_8739_d03f6bd4a5c3
  style 80bb1e8b_2eb4_f11f_8739_d03f6bd4a5c3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/tests/unit_tests/pydantic_utils.py lines 31–57

def remove_all_none_default(schema: Any) -> None:
    """Removing all none defaults.

    Pydantic v1 did not generate these, but Pydantic v2 does.

    The None defaults usually represent **NotRequired** fields, and the None value
    is actually **incorrect** as a value since the fields do not allow a None value.

    See difference between Optional and NotRequired types in python.
    """
    if isinstance(schema, dict):
        for value in schema.values():
            if isinstance(value, dict):
                if "default" in value and value["default"] is None:
                    any_of = value.get("anyOf", [])
                    for type_ in any_of:
                        if "type" in type_ and type_["type"] == "null":
                            break  # Null type explicitly defined
                    else:
                        del value["default"]
                remove_all_none_default(value)
            elif isinstance(value, list):
                for item in value:
                    remove_all_none_default(item)
    elif isinstance(schema, list):
        for item in schema:
            remove_all_none_default(item)

Subdomains

Frequently Asked Questions

What does remove_all_none_default() do?
remove_all_none_default() is a function in the langchain codebase, defined in libs/core/tests/unit_tests/pydantic_utils.py.
Where is remove_all_none_default() defined?
remove_all_none_default() is defined in libs/core/tests/unit_tests/pydantic_utils.py at line 31.
What calls remove_all_none_default()?
remove_all_none_default() is called by 2 function(s): _normalize_schema, _schema.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free