input: def build_cat_dog_classifier(dataset_path: str) -> keras.models.Sequential:
      """ Build a machine learning model in Python that distinguishes between cats and dogs using a dataset of 800 images of cats and dogs.
      The model should be a convolutional neural network (CNN) built using Keras. The model should be compiled with 'binary_crossentropy' loss, 
      'adam' optimizer, and accuracy as the metric. The model should be trained using an ImageDataGenerator for data augmentation.
      >>> model = build_cat_dog_classifier('/path/to/dataset')
      >>> model.summary()
      """
output:     
      from tensorflow.keras.models import Sequential
      from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
      from tensorflow.keras.preprocessing.image import ImageDataGenerator
  
      # Define the CNN model
      model = Sequential()
      model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
      model.add(MaxPooling2D(pool_size=(2, 2)))
      model.add(Conv2D(64, (3, 3), activation='relu'))
      model.add(MaxPooling2D(pool_size=(2, 2)))
      model.add(Flatten())
      model.add(Dense(128, activation='relu'))
      model.add(Dense(1, activation='sigmoid'))
  
      # Compile the model
      model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
  
      # Data augmentation
      datagen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True)
      train_generator = datagen.flow_from_directory(dataset_path, target_size=(64, 64), batch_size=32, class_mode='binary')
  
      # Train the model
      model.fit(train_generator, steps_per_epoch=25, epochs=10)
  
      return model
  