Over the past few months here at Six Feet Up I have noticed an increasing need to demonstrate the usefulness and efficiency of Python command line tools. Command line tools can be very handy, and, making your own using Python is easier than you might think! The information in this article is part three of our series on building a command line app and will show you how to bootstrap the Pyramid app. Did you miss part two executing console_scripts? Read it here.
Alright, I can run a script, how do I actually talk to my Pyramid app? At this point, you have a script in your environment that can read in arguments from the command line. This can be done for Django, but for now let's use those arguments to bootstrap the Pyramid app.
We need to take the args and setup our Pyramid app environment so we can mess with our data. We get to use the paster config to read settings into your script for later usage. Below, args
was a return from our ArgumentParser.parse_args()
method. It contains the keys that line up the arguments we defined in our script.
from pyramid.paster import bootstrap config_uri = args.config_uri csv_uri = args.csv_uri env = bootstrap(config_uri) settings, closer = env['registry'].settings, env['closer'] sessions = env['root']['sessions']
The bootstrap
is imported from the pyramid.paster
module and allows us to basically fire up our Pyramid app inside our script. That last line actually brings us back the sessions
object from our database ready for us to manipulate. What is cool here is that in basically a few lines of code, we have the full environment of Pyramid app ready to use like this:
# Get the timezone set in the paster.ini file conf_tz = settings.get('myapp.timezone', 'US/Eastern') tz = pytz.timezone(conf_tz)
Now we can access application specific settings like what timezone is used in the application.
csv
module and show you how to watch out for datetime
timezone issues.Was this article useful? Be sure to stay tuned for the next installment and sign up for our Python How-To digests to receive more how-to guides as soon as they are published!