All Projects → openvenues → Pypostal

openvenues / Pypostal

Licence: mit
Python bindings to libpostal for fast international address parsing/normalization

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Pypostal

Node Postal
NodeJS bindings to libpostal for fast international address parsing/normalization
Stars: ✭ 165 (-67.26%)
Mutual labels:  address, binding
Expostal
Elixir binding for Libpostal - a library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
Stars: ✭ 80 (-84.13%)
Mutual labels:  address, binding
tt address
Add address / contact datasets to your content management system.
Stars: ✭ 34 (-93.25%)
Mutual labels:  address
Pyo3
Rust bindings for the Python interpreter
Stars: ✭ 5,110 (+913.89%)
Mutual labels:  binding
Jni.hpp
A modern, type-safe, header-only, C++14 wrapper for JNI
Stars: ✭ 313 (-37.9%)
Mutual labels:  binding
lieu
Dedupe/batch geocode addresses and venues around the world with libpostal
Stars: ✭ 73 (-85.52%)
Mutual labels:  address
Corbind
Kotlin Coroutines binding APIs for Android UI widgets from the platform and support libraries
Stars: ✭ 357 (-29.17%)
Mutual labels:  binding
phper
A library that allows us to write PHP extensions using pure Rust and using safe Rust whenever possible.
Stars: ✭ 24 (-95.24%)
Mutual labels:  binding
Store
Unidirectional, transactional, operation-based Store implementation.
Stars: ✭ 477 (-5.36%)
Mutual labels:  binding
Fritz2
Easily build reactive web-apps in Kotlin based on flows and coroutines.
Stars: ✭ 308 (-38.89%)
Mutual labels:  binding
Plutus
An automated bitcoin wallet collider that brute forces random wallet addresses
Stars: ✭ 404 (-19.84%)
Mutual labels:  address
Android Viewmodelbinding
A lightweight library aiming to speed up Android app development by leveraging the new Android Data Binding together with the Model-View-ViewModel design pattern.
Stars: ✭ 308 (-38.89%)
Mutual labels:  binding
custom-permalinks
Set custom permalinks on a per-post basis in WordPress
Stars: ✭ 17 (-96.63%)
Mutual labels:  address
React Event Listener
A React component for binding events on the global scope. 💫
Stars: ✭ 359 (-28.77%)
Mutual labels:  binding
Identity Address DB
(China) 1. MySQL 身份证 地区 数据库(包含已被合并的区县,详见README) 2. PHP 验证身份证号是否正确 3. 从身份证号中获取 性别 生日 年龄 出生地 等信息 4.路过留个star
Stars: ✭ 38 (-92.46%)
Mutual labels:  address
Emacs Tree Sitter
Tree-sitter for Emacs
Stars: ✭ 409 (-18.85%)
Mutual labels:  binding
FABGen
C++ binding generator for CPython 3.x (x>=2), Lua 5.3 and Go
Stars: ✭ 26 (-94.84%)
Mutual labels:  binding
Libpostal
A C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
Stars: ✭ 3,312 (+557.14%)
Mutual labels:  address
Zh Address Parse
全网识别准确度最高的中国大陆收货地址智能解析
Stars: ✭ 328 (-34.92%)
Mutual labels:  address
Jquery.thailand.js
ตัวช่วยกรอกที่อยู่ที่ดีที่สุดในไทย ไม่ต้องใช้ Server Side!
Stars: ✭ 490 (-2.78%)
Mutual labels:  address

pypostal

Build Status PyPI version License

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 vingt 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 Ubuntu/Debian

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

On CentOS/RHEL

sudo yum install curl autoconf automake libtool python-devel pkgconfig

On Mac OSX

brew install curl 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:

pip install postal

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:

python setup.py build_ext --inplace
nosetests postal/tests

The build_ext --inplace business is needed so the C extensions build in the source checkout directory and are accessible/importalbe by the Python modules.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].