text: from talon import Context, actions, ui, Module, app, clip
  import os
  import re
  from itertools import islice
  
  
  mod = Module()
  pattern = re.compile(r"[A-Z][a-z]*|[a-z]+|\d")
  
  # todo: should this be an action that lives elsewhere??
  def create_name(text, max_len=20):
      return "_".join(list(islice(pattern.findall(text), max_len))).lower()
  
  
  @mod.action_class
  class Actions:
      def talon_add_context_clipboard_python():
          """Adds os-specific context info to the clipboard for the focused app for .py files. Assumes you've a Module named mod declared."""
          friendly_name = actions.app.name()
          # print(actions.app.executable())
          executable = actions.app.executable().split(os.path.sep)[-1]
          app_name = create_name(friendly_name.replace(".exe", ""))
          if app.platform == "mac":
              result = 'mod.apps.{} = """\nos: {}\nand app.bundle: {}\n"""'.format(
                  app_name, app.platform, actions.app.bundle()
              )
          elif app.platform == "windows":
              result = 'mod.apps.{} = """\nos: windows\nand app.name: {}\nos: windows\nand app.exe: {}\n"""'.format(
                  app_name, friendly_name, executable
              )
          else:
              result = 'mod.apps.{} = """\nos: {}\nand app.name: {}\n"""'.format(
                  app_name, app.platform, friendly_name
              )
  
          clip.set_text(result)
  
      def talon_add_context_clipboard():
          """Adds os-specific context info to the clipboard for the focused app for .talon files"""
          friendly_name = actions.app.name()
          # print(actions.app.executable())
          executable = actions.app.executable().split(os.path.sep)[-1]
          if app.platform == "mac":
              result = "os: {}\nand app.bundle: {}\n".format(
                  app.platform, actions.app.bundle()
              )
          elif app.platform == "windows":
              result = (
                  "os: windows\nand app.name: {}\nos: windows\nand app.exe: {}\n".format(
                      friendly_name, executable
                  )
              )
          else:
              result = "os: {}\nand app.name: {}\n".format(app.platform, friendly_name)
  
          clip.set_text(result)
  