code: def strict_dependencies(self, dep_context):
      
      strict_deps = self._cached_strict_dependencies_map.get(dep_context, None)
      if strict_deps is None:
        default_predicate = self._closure_dep_predicate({self}, **dep_context.target_closure_kwargs)
        # TODO(#5977): this branch needs testing!
        if not default_predicate:
          def default_predicate(*args, **kwargs):
            return True
  
        def dep_predicate(source, dependency):
          if not default_predicate(source, dependency):
            return False
  
          # Always expand aliases.
          if type(source) in dep_context.alias_types:
            return True
  
          # Traverse other dependencies if they are exported.
          if source._dep_is_exported(dependency):
            return True
          return False
  
        dep_addresses = [d.address for d in self.dependencies
                          if default_predicate(self, d)
                        ]
        result = self._build_graph.transitive_subgraph_of_addresses_bfs(
          addresses=dep_addresses,
          dep_predicate=dep_predicate
        )
  
        strict_deps = OrderedSet()
        for declared in result:
          if type(declared) in dep_context.alias_types:
            continue
          if isinstance(declared, dep_context.types_with_closure):
            strict_deps.update(declared.closure(
              bfs=True,
              **dep_context.target_closure_kwargs))
          strict_deps.add(declared)
  
        strict_deps = list(strict_deps)
        self._cached_strict_dependencies_map[dep_context] = strict_deps
      return strict_deps
docs: :param dep_context: A DependencyContext with configuration for the request.
      :return: targets that this target "strictly" depends on. This set of dependencies contains
        only directly declared dependencies, with two exceptions:
          1) aliases are expanded transitively
          2) the strict_dependencies of targets exported targets exported by
        strict_dependencies (transitively).
      :rtype: list of Target