docstr: Return the length of our data, excluding the lookback buffer.
docstr_tok: ["Return","the","length","of","our","data",",","excluding","the","lookback","buffer","."]
code: def __len__(self):
      """Return the length of our data, excluding the lookback buffer."""
      if self.finalized:
          len_ = len(tree.flatten(self.data)[0])
      else:
          len_ = len(self.data)
      # Only count the data after the lookback.
      return max(len_ - self.lookback, 0)
  
imports: import logging
  from typing import List, Optional, Type, Union
  import gymnasium
  import numpy
  import tree
  from ray.rllib.env.env_context import EnvContext
  from ray.rllib.env.multi_agent_env import MultiAgentEnv
  from ray.rllib.env.wrappers.multi_agent_env_compatibility import MultiAgentEnvCompatibility
  from ray.rllib.utils.error import ERR_MSG_INVALID_ENV_DESCRIPTOR, ERR_MSG_OLD_GYM_API, EnvError
  from ray.rllib.utils.gym import check_old_gym_env
  from ray.rllib.utils.numpy import one_hot, one_hot_multidiscrete
  from ray.rllib.utils.spaces.space_utils import batch, get_dummy_batch_for_space, get_base_struct_from_space
  from ray.util import log_once
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 11 for calling the BufferWithInfiniteLookback obj's underlying member method code with example usage: obj.__len__() and returns: max