text: '''
  Module of MacOS API for plyer.battery.
  '''
  
  from os import environ
  from subprocess import Popen, PIPE
  from plyer.facades import Battery
  from plyer.utils import whereis_exe
  
  
  class OSXBattery(Battery):
      '''
      Implementation of MacOS battery API.
      '''
  
      def _get_state(self):
          old_lang = environ.get('LANG', '')
          environ['LANG'] = 'C'
  
          status = {"isCharging": None, "percentage": None}
  
          ioreg_process = Popen(
              ["ioreg", "-rc", "AppleSmartBattery"],
              stdout=PIPE
          )
          output = ioreg_process.communicate()[0]
  
          environ['LANG'] = old_lang
  
          if not output:
              return status
  
          is_charging = max_capacity = current_capacity = None
          for line in output.decode('utf-8').splitlines():
              if 'IsCharging' in line:
                  is_charging = line.rpartition('=')[-1].strip()
              if 'MaxCapacity' in line:
                  max_capacity = float(line.rpartition('=')[-1].strip())
              if 'CurrentCapacity' in line:
                  current_capacity = float(line.rpartition('=')[-1].strip())
  
          if is_charging:
              status['isCharging'] = is_charging == "Yes"
  
          if current_capacity and max_capacity:
              status['percentage'] = 100.0 * current_capacity / max_capacity
  
          return status
  
  
  def instance():
      '''
      Instance for facade proxy.
      '''
      import sys
      if whereis_exe('ioreg'):
          return OSXBattery()
      sys.stderr.write("ioreg not found.")
      return Battery()
  