Python Scheduling Application

From OpenCircuits
Jump to navigation Jump to search

Introduction

Such an early draft not ready for reading!!

Note that this is an article started by Russ Hensel, see "http://www.opencircuits.com/index.php?title=Russ_hensel#About My Articles" About My Articles

The purpose of this program is to give an all python application for scheduling activities on all platforms: win, mac, linux, raspberry pi. I wrote it because I did not find a suitable program ( with good documentation ) after a not too exhaustive search. So here it is, let me know if useful.

Features

  • Python 3.6
  • Extensible
  • All Python, cross platform
  • Some examples
  • Parameter file allows some customization without programming
  • Intended for Python programmers, not python naive uses ( sorry ).
  • Can email if special circumstances encountered
  • Sleep tolerant ( but becomes inactive )
  • GUI tracks recent events
  • Maintains log file

Use

There are 2 steps to creating a scheduling activity.

  • Create a new type of activity by programming ups it actions. This may not be necessary if an appropriate bit of code has already be written.
  • Edit the parameter file ( parameters.py ) to activate and schedule your the activity.

Explaining an Example

Reading the section on architecture may help understand this section.



Install

Get code from github, put where you put your python code, run. .... a bit more info later

Design

Some big ideas

The things that "happen" are events, they are set up in the parameter file in the method init_from_helper( ) using another method add_event_next_given_time() (more methods of this time may be added in the future if needed ). The components of an event are the following:

  • A name for the event, to help you track it.
  • A function that is run when the event is due.
  • A time to first run the event ( minute, hour, day )
  • A name ( string ) to be used to access supplementray data/parameters related to the event.
  • A time delta for the next occurence after the specified when the event will be run again.
  • A count for the number of times to run/rerun the event, -1 = "forever"