code: def log_dependencies(self, run: "Run") -> None:
      dependencies = []
  
      def sorting_key_func(d: Distribution) -> str:
          _name = d.metadata["Name"]
          return _name.lower() if isinstance(_name, str) else ""
  
      dists = sorted(distributions(), key=sorting_key_func)
  
      for dist in dists:
          if dist.metadata["Name"]:
              dependencies.append(
                  f'{dist.metadata["Name"]}=={dist.metadata["Version"]}'
              )
  
      dependencies_str = "\n".join(dependencies)
  
      if dependencies_str:
          run["source_code/requirements"].upload(
              File.from_content(dependencies_str)
          )
  
file_path: neptune-client/src/neptune/internal/utils/dependency_tracking.py
imports: import os
  import sys
  from abc import ABC, abstractmethod
  from typing import TYPE_CHECKING, Union
  from neptune.internal.utils.logger import logger
  from neptune.types import File
label_desc: Use image node_id 1 for calling the InferDependenciesStrategy obj's underlying member method code with example usage: obj.log_dependencies(run) and returns: unknown