ž
NDKQÅ  c            	   @   sÂ   d  Z  d Z d d l m Z m Z d d l Z d d d d d	 d
 d d d g	 Z d Z d Z d Z	 d Z
 d Z d Z d Z d Z Gd d „  d e ƒ Z Gd d „  d ƒ Z Gd d „  d e ƒ Z d S(   u6  
Represents common constants and classes for all platforms.

@group Power Source Type: POWER_TYPE_AC, POWER_TYPE_BATTERY, POWER_TYPE_UPS
@var POWER_TYPE_AC: The system is connected to the external power source.
@var POWER_TYPE_BATTERY: The system is connected to the battery.
@var POWER_TYPE_UPS: The system is connected to UPS.
@type POWER_TYPE_BATTERY: int
@type POWER_TYPE_AC: int
@type POWER_TYPE_UPS: int

@group Low Battery Warning Levels: LOW_BATTERY_WARNING_NONE, LOW_BATTERY_WARNING_EARLY, LOW_BATTERY_WARNING_FINAL
@var LOW_BATTERY_WARNING_NONE: The system is connected to the unlimited power source.
@var LOW_BATTERY_WARNING_EARLY: The battery has dropped below 22% remaining power.
@var LOW_BATTERY_WARNING_FINAL: The battery can provide no more than 10 minutes of runtime.
@type LOW_BATTERY_WARNING_EARLY: int
@type LOW_BATTERY_WARNING_NONE: int
@type LOW_BATTERY_WARNING_FINAL: int

@group Special Values For Time Remaining: TIME_REMAINING_UNKNOWN, TIME_REMAINING_UNLIMITED
@var TIME_REMAINING_UNKNOWN: Indicates the system is connected to a limited power source, but system is still
    calculating a time remaining estimate.
@var TIME_REMAINING_UNLIMITED: Indicates that the system is connected to an external power source, without time limit.
@type TIME_REMAINING_UNKNOWN: float
@type TIME_REMAINING_UNLIMITED: float
u   kulakov.ilya@gmail.comi    (   u   ABCMetau   abstractmethodNu   POWER_TYPE_ACu   POWER_TYPE_BATTERYu   POWER_TYPE_UPSu   LOW_BATTERY_WARNING_NONEu   LOW_BATTERY_WARNING_EARLYu   LOW_BATTERY_WARNING_FINALu   TIME_REMAINING_UNKNOWNu   TIME_REMAINING_UNLIMITEDu   PowerManagementObserveri   i   i   g      ð?g       @c             B   s’   |  Ee  Z d  Z d Z e Z d d „  Z e d d „  ƒ Z e d d „  ƒ Z	 e d d	 „  ƒ Z
 e d
 d „  ƒ Z e d d „  ƒ Z d d „  Z d S(   u   PowerManagementBaseuæ   
    Base class for platform dependent PowerManagement functions.

    @ivar _weak_observers: List of weak reference to added observers
    @note: Platform's implementation may provide additional parameters for initialization
    c             C   s   g  |  _  d  S(   N(   u   _weak_observers(   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   __init__J   s    u   PowerManagementBase.__init__c             C   s   d S(   uÚ   
        Returns type of the providing power source.

        @return: Possible values:
                - POWER_TYPE_AC
                - POWER_TYPE_BATTERY
                - POWER_TYPE_UPS
        @rtype: int
        N(    (   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   get_providing_power_source_typeM   s    u3   PowerManagementBase.get_providing_power_source_typec             C   s   d S(   ué   
        Returns the system battery warning level.

        @return: Possible values:
            - LOW_BATTERY_WARNING_NONE
            - LOW_BATTERY_WARNING_EARLY
            - LOW_BATTERY_WARNING_FINAL
        @rtype: int
        N(    (   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   get_low_battery_warning_levelZ   s    u1   PowerManagementBase.get_low_battery_warning_levelc             C   s   d S(   uõ   
        Returns the estimated minutes remaining until all power sources (battery and/or UPS) are empty.

        @return: Special values:
            - TIME_REMAINING_UNKNOWN
            - TIME_REMAINING_UNLIMITED
        @rtype: float
        N(    (   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   get_time_remaining_estimateg   s    
u/   PowerManagementBase.get_time_remaining_estimatec             C   s;   t  | t ƒ s t d ƒ ‚ n  |  j j t j | ƒ ƒ d S(   uç   
        Adds weak ref to an observer.

        @param observer: Instance of class registered with PowerManagementObserver
        @raise TypeError: If observer is not registered with PowerManagementObserver abstract class
        u6   observer MUST conform to power.PowerManagementObserverN(   u
   isinstanceu   PowerManagementObserveru	   TypeErroru   _weak_observersu   appendu   weakrefu   ref(   u   selfu   observer(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   add_observers   s    u    PowerManagementBase.add_observerc             C   s   |  j  j t j | ƒ ƒ d S(   uZ   
        Removes an observer.

        @param observer: Previously added observer
        N(   u   _weak_observersu   removeu   weakrefu   ref(   u   selfu   observer(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   remove_observer   s    u#   PowerManagementBase.remove_observerc             C   s7   x0 |  j  D]% } | ƒ  } | r
 |  j | ƒ q
 q
 Wd S(   u3   
        Removes all registered observers.
        N(   u   _weak_observersu   remove_observer(   u   selfu   weak_observeru   observer(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   remove_all_observersˆ   s    	u(   PowerManagementBase.remove_all_observersN(   u   __name__u
   __module__u   __qualname__u   __doc__u   ABCMetau   __metaclass__u   __init__u   abstractmethodu   get_providing_power_source_typeu   get_low_battery_warning_levelu   get_time_remaining_estimateu   add_observeru   remove_observeru   remove_all_observers(   u
   __locals__(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   PowerManagementBaseA   s   	u   PowerManagementBasec             B   sD   |  Ee  Z d  Z d Z e Z e d d „  ƒ Z e d d „  ƒ Z d S(   u   PowerManagementObserveru†   
    Base class for PowerManagement observers.
    Do not make assumptions in what thread or event loop these methods are called.
    c             C   s   d S(   uZ   
        @param power_management: Instance of PowerManagement posted notification
        N(    (   u   selfu   power_management(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   on_power_sources_change™   s    u/   PowerManagementObserver.on_power_sources_changec             C   s   d S(   uZ   
        @param power_management: Instance of PowerManagement posted notification
        N(    (   u   selfu   power_management(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   on_time_remaining_change    s    u0   PowerManagementObserver.on_time_remaining_changeN(	   u   __name__u
   __module__u   __qualname__u   __doc__u   ABCMetau   __metaclass__u   abstractmethodu   on_power_sources_changeu   on_time_remaining_change(   u
   __locals__(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   PowerManagementObserver’   s   c             B   sb   |  Ee  Z d  Z d Z d d „  Z d d „  Z d d „  Z d d	 „  Z d
 d „  Z d d „  Z	 d S(   u   PowerManagementNoopu|   
    No-op subclass of PowerManagement.
    It operates like AC is always attached and power sources are never changed.
    c             C   s   t  S(   u/   
        @return: Always POWER_TYPE_AC
        (   u   POWER_TYPE_AC(   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   get_providing_power_source_type­   s    u3   PowerManagementNoop.get_providing_power_source_typec             C   s   t  S(   u:   
        @return: Always LOW_BATTERY_WARNING_NONE
        (   u   LOW_BATTERY_WARNING_NONE(   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   get_low_battery_warning_level³   s    u1   PowerManagementNoop.get_low_battery_warning_levelc             C   s   t  S(   u:   
        @return: Always TIME_REMAINING_UNLIMITED
        (   u   TIME_REMAINING_UNLIMITED(   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   get_time_remaining_estimate¹   s    u/   PowerManagementNoop.get_time_remaining_estimatec             C   s   d S(   u   
        Does nothing.
        N(    (   u   selfu   observer(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   add_observer¿   s    u    PowerManagementNoop.add_observerc             C   s   d S(   u   
        Does nothing.
        N(    (   u   selfu   observer(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   remove_observerÅ   s    u#   PowerManagementNoop.remove_observerc             C   s   d S(   u   
        Does nothing.
        N(    (   u   self(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   remove_all_observersË   s    u(   PowerManagementNoop.remove_all_observersN(
   u   __name__u
   __module__u   __qualname__u   __doc__u   get_providing_power_source_typeu   get_low_battery_warning_levelu   get_time_remaining_estimateu   add_observeru   remove_observeru   remove_all_observers(   u
   __locals__(    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   PowerManagementNoop¨   s   u   PowerManagementNoopg      ð¿g       À(   u   __doc__u
   __author__u   abcu   ABCMetau   abstractmethodu   weakrefu   __all__u   POWER_TYPE_ACu   POWER_TYPE_BATTERYu   POWER_TYPE_UPSu   LOW_BATTERY_WARNING_NONEu   LOW_BATTERY_WARNING_EARLYu   LOW_BATTERY_WARNING_FINALu   TIME_REMAINING_UNKNOWNu   TIME_REMAINING_UNLIMITEDu   objectu   PowerManagementBaseu   PowerManagementObserveru   PowerManagementNoop(    (    (    u0   /usr/lib/python3.3/site-packages/power/common.pyu   <module>   s.   	Q