input: 
  from typing import Dict
  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 classify_spam(dataset_path: str) -> Dict[str, float]:
      """
      Load an Enron Spam Dataset from a CSV file and train an SVM model to classify emails as spam or non-spam.
      The model uses a bag of words representation and a linear SVM classifier. Precision score is returned.
      
      >>> classify_spam("spam.csv")
      {'Precision score of the model': 0.85}
      """
      
      # 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 {'Precision score of the model': score}
  
output:     # 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 {'Precision score of the model': score}