input: def classify_emails(df: pd.DataFrame) -> float:
      """Classifies emails from a given DataFrame containing a column 'EmailText' and another column
      'Label' where Label is either 'spam' or 'non-spam'. Uses a Support Vector Machine
      classifier with a bag-of-words representation to classify the emails and returns the
      precision score of the model.
      
      Example:
      >>> df = pd.DataFrame({'EmailText': ['Hey there!', 'Win a prize now!'], 'Label': ['non-spam', 'spam']})
      >>> classify_emails(df)
      1.0
      """
      X = df['EmailText']
      y = df['Label']
      
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)
      
      count_vectorizer = CountVectorizer()
      X_train_counts = count_vectorizer.fit_transform(X_train)
      
      clf = svm.SVC(kernel='linear')
      clf.fit(X_train_counts, y_train)
      
      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:     from sklearn.model_selection import train_test_split
      from sklearn.feature_extraction.text import CountVectorizer
      from sklearn import svm
      from sklearn.metrics import precision_score