input: def classify_emails_as_spam_or_non_spam(df: pd.DataFrame) -> float:
      """ Classify emails from the Enron Spam Dataset as either spam or non-spam using an AI model.
      The model uses a Support Vector Machine (SVM) with a linear kernel. The precision score 
      is calculated to evaluate the model's performance.
      >>> df = pd.DataFrame({
      ...     'EmailText': ['URGENT!!! claim now!!!', 'Meeting tomorrow at 3pm', 'Claim your prize!'],
      ...     'Label': [1, 0, 1]
      ... })
      >>> classify_emails_as_spam_or_non_spam(df)
      0.5
      """
output:     from sklearn.feature_extraction.text import TfidfVectorizer
      from sklearn.svm import LinearSVC
      from sklearn.metrics import precision_score
      from sklearn.model_selection import train_test_split
  
      # Split the data into training and testing sets
      X_train, X_test, y_train, y_test = train_test_split(df['EmailText'], df['Label'], test_size=0.2, random_state=42)
  
      # Vectorize the text data
      vectorizer = TfidfVectorizer()
      X_train_vec = vectorizer.fit_transform(X_train)
      X_test_vec = vectorizer.transform(X_test)
  
      # Train the SVM model
      model = LinearSVC()
      model.fit(X_train_vec, y_train)
  
      # Predict on the test set
      y_pred = model.predict(X_test_vec)
  
      # Calculate the precision score
      precision = precision_score(y_test, y_pred)
  
      return precision