Special QR Code factory functions

The segno.helpers module provides factory functions to create common QR Codes for encoding WIFI configurations, vCards and MeCards, EPC QR Codes or geographic locations.

The created QR Codes use at minimum the error correction level “L”. If a better error correction level is possible without changing the QR Code version, the better error correction level will be used.

Create a QR Code for a WIFI configuration

>>> from segno import helpers
>>> # Create a WIFI config with min. error level "L" or better
>>> qr = helpers.make_wifi(ssid='My network', password='secret', security='WPA')
>>> qr.designator
'3-M'
3-M QR Code encoding a WIFI configuration

If you want more control over the creation of the QR Code (i.e. using a specific version or error correction level, use the segno.helpers.make_wifi_data() factory function, which returns a string which encodes the WIFI configuration.

>>> import segno
>>> from segno import helpers
>>> config = helpers.make_wifi_data(ssid='My network', password='secret', security='WPA')
>>> config
'WIFI:T:WPA;S:My network;P:secret;;'
>>> # Create a QR Code with error correction level "H"
>>> qr = segno.make(config, error='h')
>>> qr.designator
'4-H'
4-H QR Code encoding a WIFI configuration

Create a QR Code encoding geographic information

>>> from segno import helpers
>>> latitude, longitude = 38.8976763,-77.0365297
>>> qr = helpers.make_geo(latitude, longitude)
>>> qr.designator
'2-M'
2-M QR Code encoding a geographic informatiion

A factory function for encoding the geographic information as string is also available.

>>> import segno
>>> from segno import helpers
>>> latitude, longitude = 38.8976763, -77.0365297
>>> geo_uri = helpers.make_geo_data(latitude, longitude)
>>> geo_uri
'geo:38.8976763,-77.0365297'
>>> # Use error correction level "H"
>>> qr = segno.make(geo_uri, error='H')
>>> qr.designator
'4-H'
4-H QR Code encoding a geographic informatiion