Skip to main content

Helper classes for Jarvis applications

Project description

This package contains helper classes for open-jarvis applications.

Classes

Colors

Colors
	.PURPLE = '\033[95m'
	.BLUE 	= '\033[94m'
	.CYAN 	= '\033[96m'
	.GREEN 	= '\033[92m'
	.YELLOW = '\033[93m'
	.RED 	= '\033[91m'
	.END 	= '\033[0m'
	.RESET	= '\033[0m'

	.WARNING= YELLOW
	.ERROR	= RED

Config

Config(user, filename="main.conf") # initialize the configuration in /home/{user}/.config/jarvis/{filename}
	.exists() # returns true or false if the config file exists
	.create() # create an empty configuration
	.create_if_not_exists() # .create() if not .exists()
	.get() # get entire configuration
	.get_key(key) # get key from configuration
	.set_key(key, value) # set a key in configuration

Exiter

def on_exit(args):
	print("exiting... perform actions here!")

Exiter(on_exit, [args, ...]) 	# initializes an Exiter who executes the given function
								# when the script receives a SIGTERM or SIGINT signal

Jarvis

Jarvis MQTT API wrapper

Jarvis(host="127.0.0.1", port=1883, client_id="mqtt_jarvis")
	.register()
	.get_devices()
	.get_property(key, target_token=None)
	.set_property(target_token, key, value)
	.instant_ask(typ, name, infos, options)
	.instant_answer(target_token, typ, option_index, description)
	.instant_scan(target_token=None, typ=None)
	.instant_delete(target_token)

Logger

Provides a uniform interface for logging files

Logger(logfile, compressed_folder)
	.on() # turn on logging
	.off() # turn off logging

	.console_on() # turn on console logging
	.console_off() # turn off console logging

	.new_group() # turn on grouping and create a new logging group (only for fast RAM logging)
	.enable_fast() # enable fast RAM logging
	.disable_fast() # disable fast RAM logging
	.clear_fast() # clear fast RAM logging data
	.get_fast()	 # get fast RAM logs

	.i(tag, message) # create an info message
	.e(tag, message) # create an error message
	.w(tag, message) # create a warning message
	.s(tag, message) # create a success message
	.c(tag, message) # create a critical message

	.exception(tag, exception=None) # log the last exception

MQTT

MQTT(host=127.0.0.1, port=1883, client_id=[random])
	.on_connect(callback[client, userdata, flags, rc]) # on connect event
	.on_message(callback[client, userdata, message]) # on message callback: topic = message.topic, data = message.payload.decode()
	.publish(topic, payload) # public a str message under str topic
	.subscribe(topic) # subscribe to a topic (# = all)

SetupTools

SetupTools
	.do_action(print_str, shell_command, show_output=True, on_fail="failed!", on_success="done!", exit_on_fail=True): # run a shell command
	.regex_replace_in_file(file_path, from_regex, to_string) # replace regex in file
	.is_root() # check if has root access
	.get_python_version() # get the executing python version
	.check_python_version(version): # make sure get_python_version() == version, exit on fail
	.check_root() # make sure is_root() == True, exit on fail
	.get_default_installation_dir(default_dir) # ask for the default Jarvis installation directory, return either default_dir or a new directory
	.get_default_user(default_user) # ask for the default user, return either default_user or a new username

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open-jarvis-0.0.24.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

open_jarvis-0.0.24-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file open-jarvis-0.0.24.tar.gz.

File metadata

  • Download URL: open-jarvis-0.0.24.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for open-jarvis-0.0.24.tar.gz
Algorithm Hash digest
SHA256 302b2475fff08e1a8ef9e5ce83e0f0e69713d036ab401a4276e62ab7e8be324d
MD5 bcd9b3b4f8575558c59eae86f3e1d3c3
BLAKE2b-256 c53d98a3ed50663765bc8abab50e62b5889e4f711b0419d022052f6fde1c36b3

See more details on using hashes here.

File details

Details for the file open_jarvis-0.0.24-py3-none-any.whl.

File metadata

  • Download URL: open_jarvis-0.0.24-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for open_jarvis-0.0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 926dee37dedecaa22c981e35132277d136c0c6d476d5b40ab4f26d892d2253a1
MD5 9a09d80a6d61649ae09badd07127e36f
BLAKE2b-256 9c4d485c1797c7dd2476c2976ecb364c474e68912e68bb980f8922671d4e4930

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page