input: from typing import Tuple
  import pandas as pd
  from sklearn.feature_extraction.text import CountVectorizer
  from sklearn.model_selection import train_test_split
  from sklearn import svm
  from sklearn.metrics import precision_score
  
  def email_classifier(dataset_path: str) -> Tuple[float, float]:
      """ Classify emails from the Enron Spam Dataset as either spam or non-spam using machine learning.
      The function will load the dataset from the given path, preprocess it, and train an SVM model. 
      It will then test the model and return the precision score.
      >>> email_classifier("spam.csv")
      (0.92, 0.88)
      """
  
      # Load the dataset
      df = pd.read_csv(dataset_path, encoding='iso-8859-1')
      # Load label and data
      X = df['EmailText']
      y = df['Label']
  
      # Split data into train-test sets
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)
  
      # Create bag of words model
      count_vectorizer = CountVectorizer()
      X_train_counts = count_vectorizer.fit_transform(X_train)
  
      # Train the model
      clf = svm.SVC(kernel='linear')
      clf.fit(X_train_counts, y_train)
  
      # Test the model
      X_test_counts = count_vectorizer.transform(X_test)
      predictions = clf.predict(X_test_counts)
      score = precision_score(y_test, predictions, average='binary')
  
      return score
output:     # Calculate precision for both classes
      precision_spam = precision_score(y_test, predictions, pos_label='spam')
      precision_non_spam = precision_score(y_test, predictions, pos_label='non-spam')
  
      return precision_spam, precision_non_spam