Python Libraries for Startups


Whitenoise

Whitenoise handles Gzipping your content and setting far-future cache headers on content. With a trivial amount of work, you can configure your app to automatically append a hash to each of your static files every time you deploy changes, so that you can set the cache headers as so.

A WSGI compliant app literally requires a few lines of code changes to deploy Whitenoise:

from whitenoise import WhiteNoise

from my_project import MyWSGIApp

application = MyWSGIApp()
application = WhiteNoise(application, root='/path/to/static/files')
application.add_files('/path/to/more/static/files', prefix='more-files/')

Why is this important? Using Gzip significantly reduces file sizes / page load for static files. Search engines also detect Gzip compression, penalizing websites that don’t implement it. Being discovered is critical for any early-stage Start-up.

You can find Whitenoise here.

Phonenumbers (lite)

Validating phone numbers is not easy, and there are tons of valid formats that make using regular expressions impossible. Moreover, even if a number passes a regular expression for formatting, it may still not be valid.

Invalid: 222-222-2222 (but it would pass common regular expression tests) Valid: 313-442-1231 ext. 901

Relying solely on a regular expression would mean you reject valid phone numbers and accept invalid ones!

Solution: use python-phonenumbers, a port of Google’s libphonenumber.

This library makes it trivial to validate phone numbers. Using this library ensures that you accept a variety of formats, with various formats / schemes and ensure they are valid.

Pdfkit

Pdfkit makes it simple to generate PDFs from html. Why would one use this? Let’s say you have an invoice page in your app – you can use the same code to render that page to render a downloadable PDF for customers or your own records. Here’s how simple it is:

import pdfkit

pdfkit.from_file('test.html', 'out.pdf')

# Generating PDFs from strings and web-pages is equally easy:

pdfkit.from_string('Hello!', 'out.pdf')
pdfkit.from_url('http://google.com', 'out.pdf')

Another perk of this library is that it is a binding to the extremely resilient and maintained library wkhtmltopdf.

You can find pdfkit here.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s