Skip to main content

subroutine wrapper connected to a Google Sheet

Project description

loopleSheet

The purpose of this library is to provide a subroutine wrapper connected to a Google Sheet. It implements the main loop (calling the subroutine in a loop) and interacts with a Google Sheet.

This library allows the rapid deployment of a robot and offers a tracking of it. This can be relevant for example in the context of Raspeberry Pi boards.

A full documentation is available here.

Features:

  • sleep time between 2 executions of the subroutine is read from the Google Sheet
  • display the date and time of the last execution of the subroutine in the Google Sheet
  • allow to post messages in the Google Sheet. These messages are automatically time-stamped

In order to use this library, you need to have a Google account and you need to accept the Terms of use of Google Cloud Platform.

Installing

You can install this library using:

pip install loopleSheet

or:

python3 -m pip install loopleSheet

Useful Information

In order to work with a Google Sheet, loopleSheet need 2 elements:

  • the key of the Google Sheet (a.k.a Spreadsheet ID)
  • a .json file with access credentials

Getting a Spreadsheet ID

You can get the Spredsheet ID of a Google Sheet from the url used when you edit the Google Sheet online. It is the part between https://docs.google.com/spreadsheets/d/ and /edit#gid=0.

For example, in the url https://docs.google.com/spreadsheets/d/1LzDqgfWea1cIafGnXhIc2OEFCHzoFOSdO1qsSlK3rGk/edit#gid=0, the Spreadsheet ID is 1LzDqgfWea1cIafGnXhIc2OEFCHzoFOSdO1qsSlK3rGk.

Creating access credentials

This library uses Google Service account credentials. You can follow this documentation for creating a Project and a Service account. Don't forget to select Google Sheet API when you are asked which API you want to use.

At the end of the process, you should have downloaded the .json file.

Authorizing the Service account to edit the Google Sheet

If you haven't shared your Google Sheet, it can only be edited by you (the Google account that created the Google Sheet). So, in order for the Service account to edit the Google Sheet, you must share it with them.

The Service account has an email address. You can find it in your Google Cloud Console or more easily in the .json (tag "client_email"). Just share the Google Sheet with this specific email address or with anyone if you're fine with it. Don't forget to allow modifications.

Google Sheet template

Your Google Sheet is not processed by loopleSheet, so don't expect some clever behaviour. I suggest your Google Sheet to be like this one :

By default, loopleSheet:

  • expects in the B1 cell the number of seconds to sleep between 2 executions
  • will write the date and time of the last performed execution in the A4 cell
  • will write the messages you want to post in the C column with the associated date and time in the D column
  • works on the first sheet of the Google Sheet

You can edit this behavior.

Examples

import os
import sys
import loopleSheet as ls

def subroutine(loopleSht):
	# Doing some work...

	if special_result:
		loopleSht.post('New info found ! [...]')


# The .json is next to the script
ls.LoopleSheet(json_path=os.path.dirname(os.path.realpath(sys.argv[0]))+'/credentials.json',
spreadsheet_id='1LzDqgfWea1cIafGnXhIc2OEFCHzoFOSdO1qsSlK3rGk',
runnable=subroutine,
catchingExceptionsFromRunnable=True).start()

Note: You may have to kill the script in order to finish it

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

loopleSheet-1.0.3.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

loopleSheet-1.0.3-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file loopleSheet-1.0.3.tar.gz.

File metadata

  • Download URL: loopleSheet-1.0.3.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for loopleSheet-1.0.3.tar.gz
Algorithm Hash digest
SHA256 6b7202adcf5ca9ef15488e63565d3489b9584af302924225ed730444abebe910
MD5 4ce5d53b2e2a3f5c7b84768b0432de7e
BLAKE2b-256 e8d1ad14c9e30b76c359b0edbada6d91f7cc260375614393122b5b167dd46f6a

See more details on using hashes here.

File details

Details for the file loopleSheet-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: loopleSheet-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for loopleSheet-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1ed4fa56e588072db3426d7143022c3b1f4b4738e564ee633b2519a7c8b302c4
MD5 7b07982a4f56fcd4b0f5b8f0ba4b6d9b
BLAKE2b-256 91bcd69b26b84b9797c9dcc2115be4d6aa7f01829c16d5bc7f0a42f9dcd69e3c

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