Skip to content

Python bindings to libpostal for fast international address parsing/normalization

License

Notifications You must be signed in to change notification settings

Datactuariat/pypostal

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pypostal

Build Status

These are the official Python bindings to https://github.com/openvenues/libpostal, a fast statistical parser/normalizer for street addresses anywhere in the world.

Usage

from postal.expand import expand_address
expand_address('Quatre vignt douze Ave des Champs-Élysées')

from postal.parser import parse_address
parse_address('The Book Club 100-106 Leonard St, Shoreditch, London, Greater London, EC2A 4RH, United Kingdom')

Installation

Before using the Python bindings, you must install the libpostal C library. Make sure you have the following prerequisites:

On Linux (Ubuntu)

sudo apt-get install libsnappy-dev autoconf automake libtool python-dev pkg-config

On Mac OSX

sudo brew install snappy autoconf automake libtool pkg-config

Installing libpostal

git clone https://github.com/openvenues/libpostal
cd libpostal
./bootstrap.sh
./configure --datadir=[...some dir with a few GB of space...]
make
sudo make install

# On Linux it's probably a good idea to run
sudo ldconfig

To install the Python library, just run:

git clone https://github.com/openvenues/pypostal
cd pypostal
python setup.py install

If you want to import or run tests straight from your source checkout, use:

python setup.py build_ext --inplace

Compatibility

pypostal supports Python 2.7+ and Python 3.4+. These bindings are written using the Python C API and thus support CPython only. Since libpostal is a standalone C library, support for PyPy is still possible with a CFFI wrapper, but is not a goal for this repo.

Tests

Make sure you have nose installed, then run:

nosetests postal/tests

About

Python bindings to libpostal for fast international address parsing/normalization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 62.1%
  • Python 37.9%