battery_handyman package¶
Submodules¶
battery_handyman.battery_handyman_class module¶
It carries out the tasks on the battery servicing
Now it only sends customizable HTTP requests when the battery percentage reaches user-defined limits
-
class
battery_handyman.battery_handyman_class.BatteryHandyman(battery_limit_config: Optional[battery_handyman.battery_handyman_class.ConfigSectionNamespace] = None, check_config: Optional[battery_handyman.battery_handyman_class.ConfigSectionNamespace] = None, remote_request_config: Optional[battery_handyman.battery_handyman_class.ConfigSectionNamespace] = None)¶ Bases:
objectCentral class
-
YAML_TAG= '!BatteryHandyman'¶
-
property
battery_limit_charged¶ A threshold. A battery is considered as charged if its percentage is greater than the threshold
-
property
battery_limit_low¶ A threshold. A battery is considered as low enough to charge if its percentage is less than the threshold
-
property
check_interval¶ A time interval between checks in seconds
-
extract_request_data(battery_info: battery_handyman.util.BatteryInfo) → Dict[str, Any]¶ Transforms battery_info into the dictionary of the data requited by the request line template
-
classmethod
from_configuration_file(configuration_filepath: str) → battery_handyman.battery_handyman_class.BatteryHandyman¶ Creates an instance using the file path pointing at the configuration file
-
static
from_yaml(loader: yaml.loader.SafeLoader, node: Any) → battery_handyman.battery_handyman_class.BatteryHandyman¶ A YAML loading function
See also https://stackoverflow.com/a/49458752
-
init_from_config_dict_mapping(config_dict_mapping: Dict[str, Dict[str, Any]]) → None¶ Initializes the instance using a configuration dictionary
-
map_request_data_inplace(request_data: Dict[str, Any]) → None¶ Maps the values extracted from battery_info to the specified in the configuration
-
perform_check() → None¶ Obtains battery_info, pass it to send_request and schedule the next check
-
property
remote_address¶ The address of the remote device that controls the charging of this device
-
property
request_data_mapping¶ A mapping for the values prepared for request_template
-
property
request_method¶ A HTTP method of the requests
-
property
request_template¶ A URL path template with named placeholders
-
schedule_new_check(initial: bool = False) → None¶ Only adds additional entry in the scheduler
-
send_request(battery_info: battery_handyman.util.BatteryInfo) → None¶ Runs the whole pipeline from processing battery_info to HTTP response handling
-
start(blocking: bool = True) → None¶ Runs the check cycle
-
stop() → None¶ Stops the check cycle
-
to_config_dict_mapping() → Dict[str, Dict[str, Any]]¶ Creates a configuration dictionary from the instance
-
to_configuration_file(configuration_filepath: str) → None¶ Creates the configuration file under the provided file path
-
static
to_yaml(dumper: yaml.dumper.SafeDumper, data: battery_handyman.battery_handyman_class.BatteryHandyman) → yaml.nodes.MappingNode¶ A YAML dumping function
-
-
class
battery_handyman.battery_handyman_class.ConfigSectionNamespace(**kwargs)¶ Bases:
argparse.NamespaceA representation of a configuration section
Defined for the type-checking purposes
-
battery_handyman.battery_handyman_class.common_only_battery_limit_property_setter_routine(target_property: Callable) → Callable¶ Adds checking of the provided limit value
-
battery_handyman.battery_handyman_class.common_property_setter_routine(target_property: Callable) → Callable¶ Add logging of the target property and the provided value
battery_handyman.cli module¶
The setup of the CLI arguments parsing
-
battery_handyman.cli.setup_parser() → argparse.ArgumentParser¶ Return the parser of the CLI arguments
battery_handyman.constants module¶
Package-level constants
battery_handyman.main module¶
Top-level commands
-
battery_handyman.main.main(args, path_to_dir_with_main_module: str = 'battery_handyman', testing: bool = False)¶ The entrypoint of the application
With testing == False this function can not be covered
battery_handyman.util module¶
Auxiliary package-level definitions
-
class
battery_handyman.util.BatteryInfo¶ Bases:
tupleA package-level representation of a battery state
-
property
is_charging¶ Alias for field number 0
-
property
left_in_percents¶ Alias for field number 1
-
property
-
exception
battery_handyman.util.DoNotToogleChargingException(*args, **kwargs)¶ Bases:
ExceptionSignals that the charging process must be unchangedCharging must not to be toogled
-
battery_handyman.util.get_battery_info() → battery_handyman.util.BatteryInfo¶ Return a namespace with the is_charging and left_in_percents key-values
-
battery_handyman.util.parse_request_data_key_list(request_template: str) → List[str]¶ Extract the names of the placeholders in the request line template
Module contents¶
The top-level members of the module