input: def classify_emails(df: pd.DataFrame) -> float:
      """
      This function takes a pandas DataFrame containing email data and their corresponding labels
      and trains an SVM model to classify emails as spam or non-spam. The function then tests the
      model and returns the precision score.
      
      Example:
      >>> df = pd.DataFrame({
      ...     'EmailText': ['You have won a lottery!', 'Meeting at 3 PM'],
      ...     'Label': ['spam', 'non-spam']
      ... })
      >>> classify_emails(df)
      Precision score of the model: 1.0
      """
output:     from sklearn.model_selection import train_test_split
      from sklearn.feature_extraction.text import TfidfVectorizer
      from sklearn.svm import SVC
      from sklearn.metrics import precision_score
  
      # 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 email text using TF-IDF
      vectorizer = TfidfVectorizer()
      X_train_vec = vectorizer.fit_transform(X_train)
      X_test_vec = vectorizer.transform(X_test)
  
      # Train an SVM model
      svm_model = SVC(kernel='linear')
      svm_model.fit(X_train_vec, y_train)
  
      # Predict on the test set
      y_pred = svm_model.predict(X_test_vec)
  
      # Calculate and return the precision score
      precision = precision_score(y_test, y_pred, pos_label='spam')
      return precision