Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/README
blob: 02b88ea4194ac65f7f5a254573b50c75ecb77e01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
python-stdnum
=============

A Python module to parse, validate and reformat standard numbers and codes
in different formats.

Available formats
-----------------

Currently this package supports the following formats:

 * ISBN (International Standard Book Number)
 * ISSN (International Standard Serial Number)
 * ISMN (International Standard Music Number)
 * ISAN (International Standard Audiovisual Number)
 * BSN (Burgerservicenummer, the Dutch national identification number)
 * CPF (Cadastro de Pessoas FĂ­sicas, the Brazillian national identification
   number)
 * SSN (U.S. Social Security Number)
 * IMEI (International Mobile Equipment Identity)
 * MEID (Mobile Equipment Identifier)
 * GRid (Global Release Identifier)
 * IBAN (International Bank Account Number)
 * ISIL (International Standard Identifier for Libraries and Related
   Organizations)

Furthermore a number of generic check digit algorithms are available:

 * the Verhoeff algorithm
 * the Luhn and Luhn mod N algorithms
 * some algorithms described in ISO/IEC 7064: Mod 11, 2, Mod 37, 2,
   Mod 97, 10, Mod 11, 10 and Mod 37, 36

Basically any number or code that has some validation mechanism available
or some common formatting is eligible for inclusion into this library.

These modules generally do not provide background information on the meaning
and use of the specified numbers, only parsing and handling functions.

Interface
---------

Most of these modules implement the following functions:

is_valid() - returns either True or False depending on whether the
             passed number is in any supported and valid form
compact() - return a compact representation of the number or code
            this function generally does not do validation but may raise
            exceptions for wildly incorrect numbers
format() - return a formatted version of the number in the preferred format
           this function generally expects to be passed a valid number or code

Apart from the above, the module may add extra parsing, validation or conversion functions.

Requirements
------------

The modules should not require any external Python modules and should be
pure Python. The modules are developed and tested with Python 2.6 but may
also work with older versions of Python.

Copyright
---------

Copyright (C) 2010, 2011 Arthur de Jong

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA

Feedback and bug reports
------------------------

If you have any questions regarding python-stdnum, would like to report a bug
or request addition of a format please send an email to
  <python-stdnum-users@lists.arthurdejong.org>
Patches and code contributions are more than welcome.