Thu Jan 4 20:44:10 2018 UTC ()
py-stdnum: updated to 1.8

changes from 1.7 to 1.8
* add modules for the following number formats:
 - NCF (Nç‚­meros de Comprobante Fiscal, Dominican Republic receipt number)
 - Euro banknote serial numbers
 - CAS RN (Chemical Abstracts Service Registry Number)
 - Aadhaar (Indian digital resident personal identity number)
   (thanks Srikanth Lakshmanan)
 - PAN (Permanent Account Number, Indian income tax identifier)
   (thanks Srikanth Lakshmanan)
* add functions for using the Dominican Republic DGII web service to validate
  and search for RNC and NCF numbers
* add/update whitelists for Dominican Republic RNC and Cedula
* support zeep as preferred SOAP library (suds and pysimplesoap are tried
  as fallback)
* rename stdnum.iso9362 to stdnum.bic (iso9362 is deprecated but still
  available for compatibility)
* add tests for web services (not normally run to avoid unnecessary load)
* fixes and improvement to the sample online validation service


(adam)
diff -r1.11 -r1.12 pkgsrc/misc/py-stdnum/Makefile
diff -r1.3 -r1.4 pkgsrc/misc/py-stdnum/PLIST
diff -r1.4 -r1.5 pkgsrc/misc/py-stdnum/distinfo
diff -r0 -r1.1 pkgsrc/misc/py-stdnum/patches/patch-setup.py

cvs diff -r1.11 -r1.12 pkgsrc/misc/py-stdnum/Makefile (expand / switch to unified diff)

--- pkgsrc/misc/py-stdnum/Makefile 2017/10/04 13:25:43 1.11
+++ pkgsrc/misc/py-stdnum/Makefile 2018/01/04 20:44:09 1.12
@@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
1# $NetBSD: Makefile,v 1.11 2017/10/04 13:25:43 adam Exp $ 1# $NetBSD: Makefile,v 1.12 2018/01/04 20:44:09 adam Exp $
2 2
3DISTNAME= python-stdnum-1.7 3DISTNAME= python-stdnum-1.8
4PKGNAME= ${DISTNAME:S/python/${PYPKGPREFIX}/} 4PKGNAME= ${DISTNAME:S/python/${PYPKGPREFIX}/}
5CATEGORIES= misc python 5CATEGORIES= misc python
6MASTER_SITES= ${MASTER_SITE_PYPI:=p/python-stdnum/} 6MASTER_SITES= ${MASTER_SITE_PYPI:=p/python-stdnum/}
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= http://arthurdejong.org/python-stdnum 9HOMEPAGE= http://arthurdejong.org/python-stdnum
10COMMENT= Python module to handle standardized numbers and codes 10COMMENT= Python module to handle standardized numbers and codes
11LICENSE= gnu-lgpl-v3 11LICENSE= gnu-lgpl-v3
12 12
13USE_LANGUAGES= # none 13USE_LANGUAGES= # none
14 14
15.include "../../lang/python/egg.mk" 15.include "../../lang/python/egg.mk"
16.include "../../mk/bsd.pkg.mk" 16.include "../../mk/bsd.pkg.mk"

cvs diff -r1.3 -r1.4 pkgsrc/misc/py-stdnum/PLIST (expand / switch to unified diff)

--- pkgsrc/misc/py-stdnum/PLIST 2017/10/04 13:25:43 1.3
+++ pkgsrc/misc/py-stdnum/PLIST 2018/01/04 20:44:09 1.4
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.3 2017/10/04 13:25:43 adam Exp $ 1@comment $NetBSD: PLIST,v 1.4 2018/01/04 20:44:09 adam Exp $
2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO 2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt 3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt 4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
5${PYSITELIB}/${EGG_INFODIR}/requires.txt 5${PYSITELIB}/${EGG_INFODIR}/requires.txt
6${PYSITELIB}/${EGG_INFODIR}/top_level.txt 6${PYSITELIB}/${EGG_INFODIR}/top_level.txt
7${PYSITELIB}/stdnum/__init__.py 7${PYSITELIB}/stdnum/__init__.py
8${PYSITELIB}/stdnum/__init__.pyc 8${PYSITELIB}/stdnum/__init__.pyc
9${PYSITELIB}/stdnum/__init__.pyo 9${PYSITELIB}/stdnum/__init__.pyo
10${PYSITELIB}/stdnum/al/__init__.py 10${PYSITELIB}/stdnum/al/__init__.py
11${PYSITELIB}/stdnum/al/__init__.pyc 11${PYSITELIB}/stdnum/al/__init__.pyc
12${PYSITELIB}/stdnum/al/__init__.pyo 12${PYSITELIB}/stdnum/al/__init__.pyo
13${PYSITELIB}/stdnum/al/nipt.py 13${PYSITELIB}/stdnum/al/nipt.py
14${PYSITELIB}/stdnum/al/nipt.pyc 14${PYSITELIB}/stdnum/al/nipt.pyc
@@ -51,44 +51,50 @@ ${PYSITELIB}/stdnum/be/vat.pyc @@ -51,44 +51,50 @@ ${PYSITELIB}/stdnum/be/vat.pyc
51${PYSITELIB}/stdnum/be/vat.pyo 51${PYSITELIB}/stdnum/be/vat.pyo
52${PYSITELIB}/stdnum/bg/__init__.py 52${PYSITELIB}/stdnum/bg/__init__.py
53${PYSITELIB}/stdnum/bg/__init__.pyc 53${PYSITELIB}/stdnum/bg/__init__.pyc
54${PYSITELIB}/stdnum/bg/__init__.pyo 54${PYSITELIB}/stdnum/bg/__init__.pyo
55${PYSITELIB}/stdnum/bg/egn.py 55${PYSITELIB}/stdnum/bg/egn.py
56${PYSITELIB}/stdnum/bg/egn.pyc 56${PYSITELIB}/stdnum/bg/egn.pyc
57${PYSITELIB}/stdnum/bg/egn.pyo 57${PYSITELIB}/stdnum/bg/egn.pyo
58${PYSITELIB}/stdnum/bg/pnf.py 58${PYSITELIB}/stdnum/bg/pnf.py
59${PYSITELIB}/stdnum/bg/pnf.pyc 59${PYSITELIB}/stdnum/bg/pnf.pyc
60${PYSITELIB}/stdnum/bg/pnf.pyo 60${PYSITELIB}/stdnum/bg/pnf.pyo
61${PYSITELIB}/stdnum/bg/vat.py 61${PYSITELIB}/stdnum/bg/vat.py
62${PYSITELIB}/stdnum/bg/vat.pyc 62${PYSITELIB}/stdnum/bg/vat.pyc
63${PYSITELIB}/stdnum/bg/vat.pyo 63${PYSITELIB}/stdnum/bg/vat.pyo
 64${PYSITELIB}/stdnum/bic.py
 65${PYSITELIB}/stdnum/bic.pyc
 66${PYSITELIB}/stdnum/bic.pyo
64${PYSITELIB}/stdnum/br/__init__.py 67${PYSITELIB}/stdnum/br/__init__.py
65${PYSITELIB}/stdnum/br/__init__.pyc 68${PYSITELIB}/stdnum/br/__init__.pyc
66${PYSITELIB}/stdnum/br/__init__.pyo 69${PYSITELIB}/stdnum/br/__init__.pyo
67${PYSITELIB}/stdnum/br/cnpj.py 70${PYSITELIB}/stdnum/br/cnpj.py
68${PYSITELIB}/stdnum/br/cnpj.pyc 71${PYSITELIB}/stdnum/br/cnpj.pyc
69${PYSITELIB}/stdnum/br/cnpj.pyo 72${PYSITELIB}/stdnum/br/cnpj.pyo
70${PYSITELIB}/stdnum/br/cpf.py 73${PYSITELIB}/stdnum/br/cpf.py
71${PYSITELIB}/stdnum/br/cpf.pyc 74${PYSITELIB}/stdnum/br/cpf.pyc
72${PYSITELIB}/stdnum/br/cpf.pyo 75${PYSITELIB}/stdnum/br/cpf.pyo
73${PYSITELIB}/stdnum/ca/__init__.py 76${PYSITELIB}/stdnum/ca/__init__.py
74${PYSITELIB}/stdnum/ca/__init__.pyc 77${PYSITELIB}/stdnum/ca/__init__.pyc
75${PYSITELIB}/stdnum/ca/__init__.pyo 78${PYSITELIB}/stdnum/ca/__init__.pyo
76${PYSITELIB}/stdnum/ca/bn.py 79${PYSITELIB}/stdnum/ca/bn.py
77${PYSITELIB}/stdnum/ca/bn.pyc 80${PYSITELIB}/stdnum/ca/bn.pyc
78${PYSITELIB}/stdnum/ca/bn.pyo 81${PYSITELIB}/stdnum/ca/bn.pyo
79${PYSITELIB}/stdnum/ca/sin.py 82${PYSITELIB}/stdnum/ca/sin.py
80${PYSITELIB}/stdnum/ca/sin.pyc 83${PYSITELIB}/stdnum/ca/sin.pyc
81${PYSITELIB}/stdnum/ca/sin.pyo 84${PYSITELIB}/stdnum/ca/sin.pyo
 85${PYSITELIB}/stdnum/casrn.py
 86${PYSITELIB}/stdnum/casrn.pyc
 87${PYSITELIB}/stdnum/casrn.pyo
82${PYSITELIB}/stdnum/ch/__init__.py 88${PYSITELIB}/stdnum/ch/__init__.py
83${PYSITELIB}/stdnum/ch/__init__.pyc 89${PYSITELIB}/stdnum/ch/__init__.pyc
84${PYSITELIB}/stdnum/ch/__init__.pyo 90${PYSITELIB}/stdnum/ch/__init__.pyo
85${PYSITELIB}/stdnum/ch/ssn.py 91${PYSITELIB}/stdnum/ch/ssn.py
86${PYSITELIB}/stdnum/ch/ssn.pyc 92${PYSITELIB}/stdnum/ch/ssn.pyc
87${PYSITELIB}/stdnum/ch/ssn.pyo 93${PYSITELIB}/stdnum/ch/ssn.pyo
88${PYSITELIB}/stdnum/ch/uid.py 94${PYSITELIB}/stdnum/ch/uid.py
89${PYSITELIB}/stdnum/ch/uid.pyc 95${PYSITELIB}/stdnum/ch/uid.pyc
90${PYSITELIB}/stdnum/ch/uid.pyo 96${PYSITELIB}/stdnum/ch/uid.pyo
91${PYSITELIB}/stdnum/ch/vat.py 97${PYSITELIB}/stdnum/ch/vat.py
92${PYSITELIB}/stdnum/ch/vat.pyc 98${PYSITELIB}/stdnum/ch/vat.pyc
93${PYSITELIB}/stdnum/ch/vat.pyo 99${PYSITELIB}/stdnum/ch/vat.pyo
94${PYSITELIB}/stdnum/cl/__init__.py 100${PYSITELIB}/stdnum/cl/__init__.py
@@ -148,26 +154,29 @@ ${PYSITELIB}/stdnum/dk/__init__.pyc @@ -148,26 +154,29 @@ ${PYSITELIB}/stdnum/dk/__init__.pyc
148${PYSITELIB}/stdnum/dk/__init__.pyo 154${PYSITELIB}/stdnum/dk/__init__.pyo
149${PYSITELIB}/stdnum/dk/cpr.py 155${PYSITELIB}/stdnum/dk/cpr.py
150${PYSITELIB}/stdnum/dk/cpr.pyc 156${PYSITELIB}/stdnum/dk/cpr.pyc
151${PYSITELIB}/stdnum/dk/cpr.pyo 157${PYSITELIB}/stdnum/dk/cpr.pyo
152${PYSITELIB}/stdnum/dk/cvr.py 158${PYSITELIB}/stdnum/dk/cvr.py
153${PYSITELIB}/stdnum/dk/cvr.pyc 159${PYSITELIB}/stdnum/dk/cvr.pyc
154${PYSITELIB}/stdnum/dk/cvr.pyo 160${PYSITELIB}/stdnum/dk/cvr.pyo
155${PYSITELIB}/stdnum/do/__init__.py 161${PYSITELIB}/stdnum/do/__init__.py
156${PYSITELIB}/stdnum/do/__init__.pyc 162${PYSITELIB}/stdnum/do/__init__.pyc
157${PYSITELIB}/stdnum/do/__init__.pyo 163${PYSITELIB}/stdnum/do/__init__.pyo
158${PYSITELIB}/stdnum/do/cedula.py 164${PYSITELIB}/stdnum/do/cedula.py
159${PYSITELIB}/stdnum/do/cedula.pyc 165${PYSITELIB}/stdnum/do/cedula.pyc
160${PYSITELIB}/stdnum/do/cedula.pyo 166${PYSITELIB}/stdnum/do/cedula.pyo
 167${PYSITELIB}/stdnum/do/ncf.py
 168${PYSITELIB}/stdnum/do/ncf.pyc
 169${PYSITELIB}/stdnum/do/ncf.pyo
161${PYSITELIB}/stdnum/do/rnc.py 170${PYSITELIB}/stdnum/do/rnc.py
162${PYSITELIB}/stdnum/do/rnc.pyc 171${PYSITELIB}/stdnum/do/rnc.pyc
163${PYSITELIB}/stdnum/do/rnc.pyo 172${PYSITELIB}/stdnum/do/rnc.pyo
164${PYSITELIB}/stdnum/ean.py 173${PYSITELIB}/stdnum/ean.py
165${PYSITELIB}/stdnum/ean.pyc 174${PYSITELIB}/stdnum/ean.pyc
166${PYSITELIB}/stdnum/ean.pyo 175${PYSITELIB}/stdnum/ean.pyo
167${PYSITELIB}/stdnum/ec/__init__.py 176${PYSITELIB}/stdnum/ec/__init__.py
168${PYSITELIB}/stdnum/ec/__init__.pyc 177${PYSITELIB}/stdnum/ec/__init__.pyc
169${PYSITELIB}/stdnum/ec/__init__.pyo 178${PYSITELIB}/stdnum/ec/__init__.pyo
170${PYSITELIB}/stdnum/ec/ci.py 179${PYSITELIB}/stdnum/ec/ci.py
171${PYSITELIB}/stdnum/ec/ci.pyc 180${PYSITELIB}/stdnum/ec/ci.pyc
172${PYSITELIB}/stdnum/ec/ci.pyo 181${PYSITELIB}/stdnum/ec/ci.pyo
173${PYSITELIB}/stdnum/ec/ruc.py 182${PYSITELIB}/stdnum/ec/ruc.py
@@ -208,26 +217,29 @@ ${PYSITELIB}/stdnum/es/nie.pyc @@ -208,26 +217,29 @@ ${PYSITELIB}/stdnum/es/nie.pyc
208${PYSITELIB}/stdnum/es/nie.pyo 217${PYSITELIB}/stdnum/es/nie.pyo
209${PYSITELIB}/stdnum/es/nif.py 218${PYSITELIB}/stdnum/es/nif.py
210${PYSITELIB}/stdnum/es/nif.pyc 219${PYSITELIB}/stdnum/es/nif.pyc
211${PYSITELIB}/stdnum/es/nif.pyo 220${PYSITELIB}/stdnum/es/nif.pyo
212${PYSITELIB}/stdnum/es/referenciacatastral.py 221${PYSITELIB}/stdnum/es/referenciacatastral.py
213${PYSITELIB}/stdnum/es/referenciacatastral.pyc 222${PYSITELIB}/stdnum/es/referenciacatastral.pyc
214${PYSITELIB}/stdnum/es/referenciacatastral.pyo 223${PYSITELIB}/stdnum/es/referenciacatastral.pyo
215${PYSITELIB}/stdnum/eu/__init__.py 224${PYSITELIB}/stdnum/eu/__init__.py
216${PYSITELIB}/stdnum/eu/__init__.pyc 225${PYSITELIB}/stdnum/eu/__init__.pyc
217${PYSITELIB}/stdnum/eu/__init__.pyo 226${PYSITELIB}/stdnum/eu/__init__.pyo
218${PYSITELIB}/stdnum/eu/at_02.py 227${PYSITELIB}/stdnum/eu/at_02.py
219${PYSITELIB}/stdnum/eu/at_02.pyc 228${PYSITELIB}/stdnum/eu/at_02.pyc
220${PYSITELIB}/stdnum/eu/at_02.pyo 229${PYSITELIB}/stdnum/eu/at_02.pyo
 230${PYSITELIB}/stdnum/eu/banknote.py
 231${PYSITELIB}/stdnum/eu/banknote.pyc
 232${PYSITELIB}/stdnum/eu/banknote.pyo
221${PYSITELIB}/stdnum/eu/eic.py 233${PYSITELIB}/stdnum/eu/eic.py
222${PYSITELIB}/stdnum/eu/eic.pyc 234${PYSITELIB}/stdnum/eu/eic.pyc
223${PYSITELIB}/stdnum/eu/eic.pyo 235${PYSITELIB}/stdnum/eu/eic.pyo
224${PYSITELIB}/stdnum/eu/nace.dat 236${PYSITELIB}/stdnum/eu/nace.dat
225${PYSITELIB}/stdnum/eu/nace.py 237${PYSITELIB}/stdnum/eu/nace.py
226${PYSITELIB}/stdnum/eu/nace.pyc 238${PYSITELIB}/stdnum/eu/nace.pyc
227${PYSITELIB}/stdnum/eu/nace.pyo 239${PYSITELIB}/stdnum/eu/nace.pyo
228${PYSITELIB}/stdnum/eu/vat.py 240${PYSITELIB}/stdnum/eu/vat.py
229${PYSITELIB}/stdnum/eu/vat.pyc 241${PYSITELIB}/stdnum/eu/vat.pyc
230${PYSITELIB}/stdnum/eu/vat.pyo 242${PYSITELIB}/stdnum/eu/vat.pyo
231${PYSITELIB}/stdnum/exceptions.py 243${PYSITELIB}/stdnum/exceptions.py
232${PYSITELIB}/stdnum/exceptions.pyc 244${PYSITELIB}/stdnum/exceptions.pyc
233${PYSITELIB}/stdnum/exceptions.pyo 245${PYSITELIB}/stdnum/exceptions.pyo
@@ -316,26 +328,35 @@ ${PYSITELIB}/stdnum/ie/pps.pyo @@ -316,26 +328,35 @@ ${PYSITELIB}/stdnum/ie/pps.pyo
316${PYSITELIB}/stdnum/ie/vat.py 328${PYSITELIB}/stdnum/ie/vat.py
317${PYSITELIB}/stdnum/ie/vat.pyc 329${PYSITELIB}/stdnum/ie/vat.pyc
318${PYSITELIB}/stdnum/ie/vat.pyo 330${PYSITELIB}/stdnum/ie/vat.pyo
319${PYSITELIB}/stdnum/imei.py 331${PYSITELIB}/stdnum/imei.py
320${PYSITELIB}/stdnum/imei.pyc 332${PYSITELIB}/stdnum/imei.pyc
321${PYSITELIB}/stdnum/imei.pyo 333${PYSITELIB}/stdnum/imei.pyo
322${PYSITELIB}/stdnum/imo.py 334${PYSITELIB}/stdnum/imo.py
323${PYSITELIB}/stdnum/imo.pyc 335${PYSITELIB}/stdnum/imo.pyc
324${PYSITELIB}/stdnum/imo.pyo 336${PYSITELIB}/stdnum/imo.pyo
325${PYSITELIB}/stdnum/imsi.dat 337${PYSITELIB}/stdnum/imsi.dat
326${PYSITELIB}/stdnum/imsi.py 338${PYSITELIB}/stdnum/imsi.py
327${PYSITELIB}/stdnum/imsi.pyc 339${PYSITELIB}/stdnum/imsi.pyc
328${PYSITELIB}/stdnum/imsi.pyo 340${PYSITELIB}/stdnum/imsi.pyo
 341${PYSITELIB}/stdnum/in_/__init__.py
 342${PYSITELIB}/stdnum/in_/__init__.pyc
 343${PYSITELIB}/stdnum/in_/__init__.pyo
 344${PYSITELIB}/stdnum/in_/aadhaar.py
 345${PYSITELIB}/stdnum/in_/aadhaar.pyc
 346${PYSITELIB}/stdnum/in_/aadhaar.pyo
 347${PYSITELIB}/stdnum/in_/pan.py
 348${PYSITELIB}/stdnum/in_/pan.pyc
 349${PYSITELIB}/stdnum/in_/pan.pyo
329${PYSITELIB}/stdnum/is_/__init__.py 350${PYSITELIB}/stdnum/is_/__init__.py
330${PYSITELIB}/stdnum/is_/__init__.pyc 351${PYSITELIB}/stdnum/is_/__init__.pyc
331${PYSITELIB}/stdnum/is_/__init__.pyo 352${PYSITELIB}/stdnum/is_/__init__.pyo
332${PYSITELIB}/stdnum/is_/kennitala.py 353${PYSITELIB}/stdnum/is_/kennitala.py
333${PYSITELIB}/stdnum/is_/kennitala.pyc 354${PYSITELIB}/stdnum/is_/kennitala.pyc
334${PYSITELIB}/stdnum/is_/kennitala.pyo 355${PYSITELIB}/stdnum/is_/kennitala.pyo
335${PYSITELIB}/stdnum/is_/vsk.py 356${PYSITELIB}/stdnum/is_/vsk.py
336${PYSITELIB}/stdnum/is_/vsk.pyc 357${PYSITELIB}/stdnum/is_/vsk.pyc
337${PYSITELIB}/stdnum/is_/vsk.pyo 358${PYSITELIB}/stdnum/is_/vsk.pyo
338${PYSITELIB}/stdnum/isan.py 359${PYSITELIB}/stdnum/isan.py
339${PYSITELIB}/stdnum/isan.pyc 360${PYSITELIB}/stdnum/isan.pyc
340${PYSITELIB}/stdnum/isan.pyo 361${PYSITELIB}/stdnum/isan.pyo
341${PYSITELIB}/stdnum/isbn.dat 362${PYSITELIB}/stdnum/isbn.dat

cvs diff -r1.4 -r1.5 pkgsrc/misc/py-stdnum/distinfo (expand / switch to unified diff)

--- pkgsrc/misc/py-stdnum/distinfo 2017/10/04 13:25:43 1.4
+++ pkgsrc/misc/py-stdnum/distinfo 2018/01/04 20:44:09 1.5
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
1$NetBSD: distinfo,v 1.4 2017/10/04 13:25:43 adam Exp $ 1$NetBSD: distinfo,v 1.5 2018/01/04 20:44:09 adam Exp $
2 2
3SHA1 (python-stdnum-1.7.tar.gz) = 5f70a40792f36f225c545ba80af3642280886f6f 3SHA1 (python-stdnum-1.8.tar.gz) = c769b65d1de63fdc926277d7a98456a004dafe51
4RMD160 (python-stdnum-1.7.tar.gz) = 6400d03a8aef6bb87ee87fdcadb720bdf59044e1 4RMD160 (python-stdnum-1.8.tar.gz) = 075b3baf1862d1dc7c8ed9fcbbdc290c9d2bdfc5
5SHA512 (python-stdnum-1.7.tar.gz) = 323f5e37087e95143eb59345c4ddb5fb1529a136c234c8e9c957cf9914984e758b256facbfbc5de379000b8939460ea25e8105428d67f7052a23676c334a002a 5SHA512 (python-stdnum-1.8.tar.gz) = af3ab7a035ff99dd719540246b148f13727799cc2728819c14ca6d7e25157bfc840f4696d74dbfafc956be6c5a33ea02f4028289193db5919c660c72b2a8e781
6Size (python-stdnum-1.7.tar.gz) = 411134 bytes 6Size (python-stdnum-1.8.tar.gz) = 421547 bytes
 7SHA1 (patch-setup.py) = 2fdf51a8d5702f7dbb50afe1f7d2e2874124e955

File Added: pkgsrc/misc/py-stdnum/patches/Attic/patch-setup.py
$NetBSD: patch-setup.py,v 1.1 2018/01/04 20:44:10 adam Exp $

Read README file with UTF-8 enconding.

--- setup.py.orig	2018-01-04 20:35:54.000000000 +0000
+++ setup.py
@@ -21,6 +21,7 @@
 
 """python-stdnum installation script."""
 
+import io
 import os
 import sys
 from setuptools import setup, find_packages
@@ -34,7 +35,7 @@ if 'sdist' in sys.argv:
 
 base_dir = os.path.dirname(__file__)
 
-with open(os.path.join(base_dir, 'README'), 'r') as fp:
+with io.open(os.path.join(base_dir, 'README'), 'r', encoding='utf-8') as fp:
     long_description = fp.read()
 
 setup(name='python-stdnum',