Package: phil
source code:https://github.com/willkg/philissue tracker:https://github.com/willkg/phil/issueslicense:GPLv3Status - February 9th, 2013This project is not under active development. If you have changes,
please submit a pull request (preferably with tests) and I’ll merge
it in.Summaryphil is a command line utility that sends reminder emails about meetings
as defined in aniCalendarfile.It solves this use case:Will works on a project that has meetings every saturday.  Will wants
an automated way to send a reminder email to everyone about the meeting
with the details of when the meeting is, how to attend, and where
the notes for the meeting will be.Will installs and configures phil to send emails to the project list
before the saturday meetings.  Will sets up a cron job to kick phil off
every morning to check for reminders it needs to send and send them.Featureshas a configuration file in config.ini formatparses iCalendar files, calculates the next valid meeting date, and sends
reminder email x days before the meetingtries not to remind you about the same meeting twice!has a--debugmode allowing you to test things without actually sending
emailhas a--quietmode that will only print errorscorrectly prints errors to stderr and output to stdout; also returns error
code 1 if it failedshow the next 6 dates for an event with thenext6commandHistoryI work on a bunch of projects some of which have regular meetings.  One day
I realized that it would help a lot if I had some automated way to send out
meeting reminders to everyone with some text that specified when the meeting
was, how to attend the meeting, and where to look for details on what the
meeting will cover.I work on a bunch of projects and have a hell of a time coming up with
good names for them all.  I don’t really remember the names of libraries
and things I use, so I figure arbitrary names are fine so long as there is
sufficient documentation that allows search engines to find the project
given search criteria.  Given that, I decided to name all my projects going
forward with names like phil.Thus phil was born.License, etcphil Copyright(C) 2011, 2012, 2013 Will Kahn-GreeneThis program comes with ABSOLUTELY NO WARRANTY.  This is free software,
and you are welcome to redistribute it under certain conditions.  See
the Terms and Conditions section ofLICENSEfor details.InstallIf you want a released version of phil, do this:$ pip install philIf you want a bleeding edge version of phil, do this:$ git clone git://github.com/willkg/phil.git
$ cd phil
$ python setup.py installConfigurephil requires a configuration file.  To generate a sample configuration file
run phil this way:phil-cmd createfile <configfile>The config file is self-documenting.  Go through it to configure phil.NoteIf you want to keep a pristine example config file with the documentation,
runphil-cmdcreatefile config_pristine.ini.RunFor list of subcommands, arguments and other help, do this:phil-cmd --helpTo email reminders for meetings, do this:phil-cmd run <configfile>This runs phil with the given config file.phil has a quiet mode which only prints errors:phil-cmd --quiet ...phil has a debug mode which does everythingexceptactually send email:phil-cmd --debug ...phil keeps track of the last meeting date/time that it reminded you about.
If you run phil twice, it’ll only remind you about a meeting once.Testphil comes with unit tests.  Unit tests are executed usingnoseand
usefudgeas a mocking framework.  If you don’t already have nose
and fudge installed, then install them with:pip install nose fudgeI like to usenose-progressive, too, because it’s awesome.  To
install that:pip install nose-progressiveTo run the unit tests from a git clone or the source tarball, do this
from the project directory:nosetestsWith nose-progressive and fail-fast:nosetests -x --with-progressiveResources I found helpfulhttp://tools.ietf.org/html/rfc5545#section-3.8.5.3http://labix.org/python-dateutilhttp://pypi.python.org/pypi/icalendar/3.0