summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-baluhn.spec336
-rw-r--r--sources1
3 files changed, 338 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..adf0291 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/baluhn-0.1.2.tar.gz
diff --git a/python-baluhn.spec b/python-baluhn.spec
new file mode 100644
index 0000000..578509d
--- /dev/null
+++ b/python-baluhn.spec
@@ -0,0 +1,336 @@
+%global _empty_manifest_terminate_build 0
+Name: python-baluhn
+Version: 0.1.2
+Release: 1
+Summary: A base-agnostic implementation of the Luhn Algorithm for Python. Useful for generating and verifying check digits.
+License: Public Domain
+URL: http://github.com/benhodgson/baluhn
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d8/04/1f702c771d387b66f8232afb223db4796372a2e68095078ca76c41d1f151/baluhn-0.1.2.tar.gz
+BuildArch: noarch
+
+
+%description
+# Baluhn: Base-agnostic Luhn
+
+Baluhn provides a base-independent implementation of the [Luhn
+algorithm](http://en.wikipedia.org/wiki/Luhn_algorithm) for Python. It is
+useful for generating and verifying check digits in arbitrary bases.
+
+From Wikipedia:
+
+> The Luhn algorithm or Luhn formula, also known as the "modulus 10" or "mod
+> 10" algorithm, is a simple checksum formula used to validate a variety of
+> identification numbers, such as credit card numbers, IMEI numbers,
+> National Provider Identifier numbers in US and Canadian Social Insurance
+> Numbers.
+
+## Installation
+
+Use `pip install baluhn` or `python setup.py install`.
+
+## Usage
+
+The `baluhn` module provides two functions: `verify` and `generate`.
+
+`generate` calculates the Luhn check character for the given input string in
+the given base. This character should be appended to the input string to
+produce a valid Luhn string. `verify` tests whether or not a string is a valid
+Luhn string in the given base. By default, Baluhn operates in base 10:
+
+```python
+>>> from baluhn import generate, verify
+>>> verify('5105105105105100') # MasterCard test number
+True
+>>> value = '510510510510510' # note the missing check digit
+>>> generate(value)
+'0'
+>>> verify(value + '0')
+True
+>>> verify(value + '7')
+False
+```
+
+When operating in a base other than decimal, encoder and decoder callables
+should be supplied. The encoder should take a single argument, an integer, and
+return the character corresponding to that integer in the operating base.
+Conversely, the decoder should take a string containing a single character and
+return its integer value in the operating base. Note that the mapping between
+values and characters defined by the encoder and decoder should be one-to-one.
+
+For example, when working in hexadecimal:
+
+```python
+>>> hex_alphabet = '0123456789abcdef'
+>>> hex_encoder = lambda i: hex_alphabet[i]
+>>> hex_decoder = lambda s: hex_alphabet.index(s)
+>>> value = 'a8b56f'
+>>> generate(value, base=16, encoder=hex_encoder, decoder=hex_decoder)
+'b'
+>>> verify('a8b56fb', base=16, decoder=hex_decoder)
+True
+>>> verify('a8b56fc', base=16, decoder=hex_decoder)
+False
+```
+
+## Author
+
+Baluhn is written by [Ben Hodgson](http://benhodgson.com/) and maintained by [Four Digits](https://fourdigits.nl/).
+
+## (Un)license
+
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute
+this software, either in source code form or as a compiled binary, for any
+purpose, commercial or non-commercial, and by any means.
+
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org/>
+
+%package -n python3-baluhn
+Summary: A base-agnostic implementation of the Luhn Algorithm for Python. Useful for generating and verifying check digits.
+Provides: python-baluhn
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-baluhn
+# Baluhn: Base-agnostic Luhn
+
+Baluhn provides a base-independent implementation of the [Luhn
+algorithm](http://en.wikipedia.org/wiki/Luhn_algorithm) for Python. It is
+useful for generating and verifying check digits in arbitrary bases.
+
+From Wikipedia:
+
+> The Luhn algorithm or Luhn formula, also known as the "modulus 10" or "mod
+> 10" algorithm, is a simple checksum formula used to validate a variety of
+> identification numbers, such as credit card numbers, IMEI numbers,
+> National Provider Identifier numbers in US and Canadian Social Insurance
+> Numbers.
+
+## Installation
+
+Use `pip install baluhn` or `python setup.py install`.
+
+## Usage
+
+The `baluhn` module provides two functions: `verify` and `generate`.
+
+`generate` calculates the Luhn check character for the given input string in
+the given base. This character should be appended to the input string to
+produce a valid Luhn string. `verify` tests whether or not a string is a valid
+Luhn string in the given base. By default, Baluhn operates in base 10:
+
+```python
+>>> from baluhn import generate, verify
+>>> verify('5105105105105100') # MasterCard test number
+True
+>>> value = '510510510510510' # note the missing check digit
+>>> generate(value)
+'0'
+>>> verify(value + '0')
+True
+>>> verify(value + '7')
+False
+```
+
+When operating in a base other than decimal, encoder and decoder callables
+should be supplied. The encoder should take a single argument, an integer, and
+return the character corresponding to that integer in the operating base.
+Conversely, the decoder should take a string containing a single character and
+return its integer value in the operating base. Note that the mapping between
+values and characters defined by the encoder and decoder should be one-to-one.
+
+For example, when working in hexadecimal:
+
+```python
+>>> hex_alphabet = '0123456789abcdef'
+>>> hex_encoder = lambda i: hex_alphabet[i]
+>>> hex_decoder = lambda s: hex_alphabet.index(s)
+>>> value = 'a8b56f'
+>>> generate(value, base=16, encoder=hex_encoder, decoder=hex_decoder)
+'b'
+>>> verify('a8b56fb', base=16, decoder=hex_decoder)
+True
+>>> verify('a8b56fc', base=16, decoder=hex_decoder)
+False
+```
+
+## Author
+
+Baluhn is written by [Ben Hodgson](http://benhodgson.com/) and maintained by [Four Digits](https://fourdigits.nl/).
+
+## (Un)license
+
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute
+this software, either in source code form or as a compiled binary, for any
+purpose, commercial or non-commercial, and by any means.
+
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org/>
+
+%package help
+Summary: Development documents and examples for baluhn
+Provides: python3-baluhn-doc
+%description help
+# Baluhn: Base-agnostic Luhn
+
+Baluhn provides a base-independent implementation of the [Luhn
+algorithm](http://en.wikipedia.org/wiki/Luhn_algorithm) for Python. It is
+useful for generating and verifying check digits in arbitrary bases.
+
+From Wikipedia:
+
+> The Luhn algorithm or Luhn formula, also known as the "modulus 10" or "mod
+> 10" algorithm, is a simple checksum formula used to validate a variety of
+> identification numbers, such as credit card numbers, IMEI numbers,
+> National Provider Identifier numbers in US and Canadian Social Insurance
+> Numbers.
+
+## Installation
+
+Use `pip install baluhn` or `python setup.py install`.
+
+## Usage
+
+The `baluhn` module provides two functions: `verify` and `generate`.
+
+`generate` calculates the Luhn check character for the given input string in
+the given base. This character should be appended to the input string to
+produce a valid Luhn string. `verify` tests whether or not a string is a valid
+Luhn string in the given base. By default, Baluhn operates in base 10:
+
+```python
+>>> from baluhn import generate, verify
+>>> verify('5105105105105100') # MasterCard test number
+True
+>>> value = '510510510510510' # note the missing check digit
+>>> generate(value)
+'0'
+>>> verify(value + '0')
+True
+>>> verify(value + '7')
+False
+```
+
+When operating in a base other than decimal, encoder and decoder callables
+should be supplied. The encoder should take a single argument, an integer, and
+return the character corresponding to that integer in the operating base.
+Conversely, the decoder should take a string containing a single character and
+return its integer value in the operating base. Note that the mapping between
+values and characters defined by the encoder and decoder should be one-to-one.
+
+For example, when working in hexadecimal:
+
+```python
+>>> hex_alphabet = '0123456789abcdef'
+>>> hex_encoder = lambda i: hex_alphabet[i]
+>>> hex_decoder = lambda s: hex_alphabet.index(s)
+>>> value = 'a8b56f'
+>>> generate(value, base=16, encoder=hex_encoder, decoder=hex_decoder)
+'b'
+>>> verify('a8b56fb', base=16, decoder=hex_decoder)
+True
+>>> verify('a8b56fc', base=16, decoder=hex_decoder)
+False
+```
+
+## Author
+
+Baluhn is written by [Ben Hodgson](http://benhodgson.com/) and maintained by [Four Digits](https://fourdigits.nl/).
+
+## (Un)license
+
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute
+this software, either in source code form or as a compiled binary, for any
+purpose, commercial or non-commercial, and by any means.
+
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org/>
+
+%prep
+%autosetup -n baluhn-0.1.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-baluhn -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..ea7d836
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9b1cc037045b79c350e2b4fd48d6c16f baluhn-0.1.2.tar.gz