parameters: (
          self, addrs: typing.Union[int, range]
      )
return_statement: return _nodes_at_interval_tree(
              self._interval_tree, addrs, -self.address
          )
docstring: Finds all the byte blocks that begin at an address or range of
          addresses.
  
          :param addrs: Either a ``range`` object or a single address.
docstring_summary: Finds all the byte blocks that begin at an address or range of
          addresses.
docstring_tokens: Finds all the byte blocks that begin at an address or range of addresses .
function: def byte_blocks_at(
          self, addrs: typing.Union[int, range]
      ) -> typing.Iterable[ByteBlock]:
          """Finds all the byte blocks that begin at an address or range of
          addresses.
  
          :param addrs: Either a ``range`` object or a single address.
          """
  
          if self.address is None:
              return ()
  
          return _nodes_at_interval_tree(
              self._interval_tree, addrs, -self.address
          )
function_tokens: def byte_blocks_at ( self , addrs : typing . Union [ int , range ] ) -> typing . Iterable [ ByteBlock ] : if self . address is None : return ( ) return _nodes_at_interval_tree ( self . _interval_tree , addrs , - self . address )