input: Write a function to implement a hash table in Python that supports insert, delete, and retrieve operations. The class should be named HashTable and should have methods for insert, retrieve, and delete. If an operation is successful, it should return True, otherwise it should return False. If the operation is not implemented, it should return None.
  assert HashTable().insert("key1", "value1")==True
  assert HashTable().retrieve("key1")==None
  assert HashTable().delete("key1")==None
  assert HashTable().insert("key1", "value1")==True
  assert HashTable().retrieve("key1")=="value1"
  assert HashTable().delete("key1")==True
  assert HashTable().retrieve("key1")==None
output: class HashTable:
      def __init__(self):
          self.size = 1000
          self.table = [[] for _ in range(self.size)]
  
      def _hash(self, key):
          return hash(key) % self.size
  
      def insert(self, key, value):
          hash_key = self._hash(key)
          bucket = self.table[hash_key]
          for i, (k, v) in enumerate(bucket):
              if k == key:
                  bucket[i] = (key, value)
                  return True
          bucket.append((key, value))
          return True
  
      def retrieve(self, key):
          hash_key = self._hash(key)
          bucket = self.table[hash_key]
          for k, v in bucket:
              if k == key:
                  return v
          return None
  
      def delete(self, key):
          hash_key = self._hash(key)
          bucket = self.table[hash_key]
          for i, (k, v) in enumerate(bucket):
              if k == key:
                  del bucket[i]
                  return True
          return None