This script is used to manage the Who's Who in Astrochemistry
database, a contact list of astrochemists from around the globe. If you are
seeing this help message, you have probably cloned the original repository,
or an original fork of it, on your local machine. You have installed all the
dependencies (probably because you saw a requirements.txt
file) and you
figured out how to display this help message. Whether you were just ideally
curious, or you were thinking of contributing, you will find all the answers
you desire here.
First of all, what does this script do? Well, if you have this repository on your system, you probably rummaged through the folders and saw a lot of YAML files. These files power the entire Who's Who website, thanks to the awesome Lowdefy framework. I use this script to build those YAML files from a bunch of Mako templates, locally serve the Who's Who app (to see if everything is working as intended), and update my local copy of the database that ultimately makes it into the Github repository. This script also calculates a few statistics about the database, such as the total number of astrochemists, how many can be contacted (via their email or Twitter), and how many of them are tweeting.
We use the invoke package to power the entire script. invoke
is a framework for running use-defined tasks. These tasks can be anything:
Python functions, shell commands, etc. In this simplest scenario (which is what
we user here), all the user needs to do is define the tasks in a tasks.py
file,
and then invoke any task using the invoke
CLI. The settings for the invoke
CLI are customized through the invoke.yaml
file.
To see how the site looks, just type:
invoke serve
This will start a local server and serve the Who's Who web application. As you
carry out your changes, you will be able to see them show up instantly! To make
a change, it is recommended that you change the templates (in the templates
directory) rather than the YAML pages themselves (which you will find in the
pages
directory), because otherwise all your changes will vanish anytime you
recompile your changes with:
invoke compile
Run the above command everytime you wish to see your changes show up in the YAML files andf in the web application. You can check out some stats about the database by typing:
invoke statistics
If you wish to update your copy of the database, just run:
invoke update