code: def sign_file(self, filepath):
          
  
          if not GPG_PRESENT:
              return
  
          signed_data = sign(filepath)
          signature = signed_data.data
  
          if signature is None or not signature:
              statustext = _('Error signing file. ') + signed_data.stderr
              try:
                  post_command_event(self.main_window, self.StatusBarMsg,
                                     text=statustext)
              except TypeError:
                  # The main window does not exist any more
                  pass
  
              return
  
          with open(filepath + '.sig', 'wb') as signfile:
              signfile.write(signature)
  
          # Statustext differs if a save has occurred
  
          if self.code_array.safe_mode:
              statustext = _('File saved and signed')
          else:
              statustext = _('File signed')
  
          try:
              post_command_event(self.main_window, self.StatusBarMsg,
                                 text=statustext)
          except TypeError:
              # The main window does not exist any more
              pass
docs: Signs file if possible