code: def can_allocate(self, nodes, pos=None):
          # TODO: check docstring
          
  
          # clone route and nodes
          new_route = self.clone()
          new_nodes = [node.clone() for node in nodes]
          if pos is None:
              pos = len(self._nodes)
          new_route._nodes = new_route._nodes[:pos] + new_nodes + new_route._nodes[pos:]
          new_route._demand = sum([node.demand() for node in new_route._nodes])
  
          if new_route.tech_constraints_satisfied():
              return True
  
          return False
docs: Returns True if this route can allocate nodes in `nodes` list
          
          Parameters
          ----------
          nodes : type
              Desc
          pos : type, defaults to None
              Desc
              
          Returns
          -------
          bool
              True if this route can allocate nodes in `nodes` list