code: def _available_connections(self, key: 'ConnectionKey') -> int:
          
  
          if self._limit:
              # total calc available connections
              available = self._limit - len(self._acquired)
  
              # check limit per host
              if (self._limit_per_host and available > 0 and
                      key in self._acquired_per_host):
                  acquired = self._acquired_per_host.get(key)
                  assert acquired is not None
                  available = self._limit_per_host - len(acquired)
  
          elif self._limit_per_host and key in self._acquired_per_host:
              # check limit per host
              acquired = self._acquired_per_host.get(key)
              assert acquired is not None
              available = self._limit_per_host - len(acquired)
          else:
              available = 1
  
          return available
docs: Return number of available connections taking into account
          the limit, limit_per_host and the connection key.
  
          If it returns less than 1 means that there is no connections
          availables.