Uploaded image for project: 'Python Driver'
  1. Python Driver
  2. PYTHON-4534

Langchain: Ensure datetimes are json-serializable

    • Type: Icon: Task Task
    • Resolution: Done
    • Priority: Icon: Unknown Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Python Drivers
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?

      Context

      Weaviate's implementation is almost identical to ours. We already had an issue making metadata json-serializable with ObjectIds. I came across the following function in their code for datetimes in [Weviate's vectorstore.py](https://github.com/langchain-ai/langchain/blob/master/libs/community/langchain_community/vectorstores/weaviate.py)

      ```

      def _json_serializable(value: Any) -> Any:
          if isinstance(value, datetime.datetime):
              return value.isoformat()
          return value

      ```

      Definition of done

      Add this to our make_serializable function.

      What must be done to consider the task complete?

      Pitfalls

      What should the implementer watch out for? What are the risks?

            Assignee:
            casey.clements@mongodb.com Casey Clements
            Reporter:
            casey.clements@mongodb.com Casey Clements
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: