diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-zahlwort2num.spec | 361 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 363 insertions, 0 deletions
@@ -0,0 +1 @@ +/zahlwort2num-0.4.2.tar.gz diff --git a/python-zahlwort2num.spec b/python-zahlwort2num.spec new file mode 100644 index 0000000..e26e9c7 --- /dev/null +++ b/python-zahlwort2num.spec @@ -0,0 +1,361 @@ +%global _empty_manifest_terminate_build 0 +Name: python-zahlwort2num +Version: 0.4.2 +Release: 1 +Summary: A small package for handy conversion of german numerals (also ordinal / signed) written as words to numbers. +License: MIT License +URL: https://github.com/walu2/zahlwort2num +Source0: https://mirrors.aliyun.com/pypi/web/packages/79/6a/e58ad1e9ee67d4395f1ceafde041f9524ac67d276dda0e687841c2e2be6a/zahlwort2num-0.4.2.tar.gz +BuildArch: noarch + +Requires: python3-markdown + +%description +# ZahlWort2num (v.0.4.2) + +:de: :de: :de: +A small but useful (due shortage of/low quality support for `lang_de`) package for handy conversion of german numerals (incl. ordinal number) written as string to the from numbers. + +To put it differently: _It allows reverse text normalization for numbers_. + +This package might be a good complementary lib to https://github.com/savoirfairelinux/num2words + +:crying_cat_face: _Currently is doesn't support swiss variant. TBD_ :switzerland: + +# PyPi direct page of project +https://pypi.org/project/zahlwort2num/ + +# Installation + +`pip2 install zahlwort2num` + +# Usage + +### _Definition_: <br /> + +```python +import zahlwort2num as w2n +``` + +### _Few examples_: <br /> + ```python + w2n.convert('Zweihundertfünfundzwanzig') # => 225 + w2n.convert('neunte') # => '9.' + w2n.convert('minus siebenhundert Millionen achtundsiebzig') # => -700000078 +``` + _or even stuff like:_ :see_no_evil: <br /> + ```python + w2n.convert('sechshundertdreiundfünfzigtausendfünfhunderteinundzwanzig') # => 653521 +``` + +#### Command line: + +* _(Obviously it is better to use a parameter enclosed with apostrophs due to possible spaces)_ +``` +bin/zahlwort2num-convert 'eine Million siebenhunderteinundzwanzig' +``` + +# Development +Before doing anything. Install flake8 locally by +```bash +python3 -m pip install -r requirements.txt +``` + +Make sure tests are passing +```bash +python3 -m unittest +``` +and you locally run linter via +```bash +flake8 ./zahlwort2num/*.py --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics +``` + +# WIKI +TBD + +# Already implemented features :sunglasses: +* Theoretically it works for any numbers from range 0 upto 999 * 10^27 [big numbers] +* Command-line mode ([see](#command-line) above) +* Supported with ordinal numerals (incl. inflections [sufficies like `'ste', 'ten'` etc. ])<br /> + _In this case it returns coerced __String__ type value e.g '15.' instead of __Integer___ :point_up: +* Relative mild rules in terms of trailing whitespaces, lower/upper-case (unification). +* Handling of signed numerals (also ordinal ones) e.g `'minus zehn'` + +# TODO / Known issues +- [x] ~~Make POC, functional for all common cases~~ +- [x] ~~Ordinal number support~~ +- [x] ~~Take care for exceptions / trailing whitespaces etc.~~ +- [x] ~~Make structure + publish as PyPI package~~ +- [x] ~~Command line support :computer:~~ +- [x] ~~Added support for both non-direct usage e.g einhundert / hundert~~ +- [x] ~~Simplify/refactor POC code, add better documentation~~ +- [x] ~~Zwo variant~~ +- [x] ~~Added linter with Test Suite as hook~~ +- [ ] More comprehensible tests +- [ ] Swiss variant +- [ ] More fault tolerant (ß -> ss) etc +- [ ] Larger scale than 10^60 +- [ ] Ordinal with very large numbers (without addons) e.g `Millionste` +- [ ] Few benchmark improvements (e.g tail recursion etc) +- [ ] Better error handling + validation for idiotical cases (e.g `minus null Miliarde`) + +- [ ] Support for fractions? + + +# Thanks +- @warichet for addressing problem +- @spatialbitz for writing simple fix :+1: +- @psawa - adding support for `zwo` case +- ... lastly to any of you who uses this package ;-) + + +%package -n python3-zahlwort2num +Summary: A small package for handy conversion of german numerals (also ordinal / signed) written as words to numbers. +Provides: python-zahlwort2num +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-zahlwort2num +# ZahlWort2num (v.0.4.2) + +:de: :de: :de: +A small but useful (due shortage of/low quality support for `lang_de`) package for handy conversion of german numerals (incl. ordinal number) written as string to the from numbers. + +To put it differently: _It allows reverse text normalization for numbers_. + +This package might be a good complementary lib to https://github.com/savoirfairelinux/num2words + +:crying_cat_face: _Currently is doesn't support swiss variant. TBD_ :switzerland: + +# PyPi direct page of project +https://pypi.org/project/zahlwort2num/ + +# Installation + +`pip2 install zahlwort2num` + +# Usage + +### _Definition_: <br /> + +```python +import zahlwort2num as w2n +``` + +### _Few examples_: <br /> + ```python + w2n.convert('Zweihundertfünfundzwanzig') # => 225 + w2n.convert('neunte') # => '9.' + w2n.convert('minus siebenhundert Millionen achtundsiebzig') # => -700000078 +``` + _or even stuff like:_ :see_no_evil: <br /> + ```python + w2n.convert('sechshundertdreiundfünfzigtausendfünfhunderteinundzwanzig') # => 653521 +``` + +#### Command line: + +* _(Obviously it is better to use a parameter enclosed with apostrophs due to possible spaces)_ +``` +bin/zahlwort2num-convert 'eine Million siebenhunderteinundzwanzig' +``` + +# Development +Before doing anything. Install flake8 locally by +```bash +python3 -m pip install -r requirements.txt +``` + +Make sure tests are passing +```bash +python3 -m unittest +``` +and you locally run linter via +```bash +flake8 ./zahlwort2num/*.py --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics +``` + +# WIKI +TBD + +# Already implemented features :sunglasses: +* Theoretically it works for any numbers from range 0 upto 999 * 10^27 [big numbers] +* Command-line mode ([see](#command-line) above) +* Supported with ordinal numerals (incl. inflections [sufficies like `'ste', 'ten'` etc. ])<br /> + _In this case it returns coerced __String__ type value e.g '15.' instead of __Integer___ :point_up: +* Relative mild rules in terms of trailing whitespaces, lower/upper-case (unification). +* Handling of signed numerals (also ordinal ones) e.g `'minus zehn'` + +# TODO / Known issues +- [x] ~~Make POC, functional for all common cases~~ +- [x] ~~Ordinal number support~~ +- [x] ~~Take care for exceptions / trailing whitespaces etc.~~ +- [x] ~~Make structure + publish as PyPI package~~ +- [x] ~~Command line support :computer:~~ +- [x] ~~Added support for both non-direct usage e.g einhundert / hundert~~ +- [x] ~~Simplify/refactor POC code, add better documentation~~ +- [x] ~~Zwo variant~~ +- [x] ~~Added linter with Test Suite as hook~~ +- [ ] More comprehensible tests +- [ ] Swiss variant +- [ ] More fault tolerant (ß -> ss) etc +- [ ] Larger scale than 10^60 +- [ ] Ordinal with very large numbers (without addons) e.g `Millionste` +- [ ] Few benchmark improvements (e.g tail recursion etc) +- [ ] Better error handling + validation for idiotical cases (e.g `minus null Miliarde`) + +- [ ] Support for fractions? + + +# Thanks +- @warichet for addressing problem +- @spatialbitz for writing simple fix :+1: +- @psawa - adding support for `zwo` case +- ... lastly to any of you who uses this package ;-) + + +%package help +Summary: Development documents and examples for zahlwort2num +Provides: python3-zahlwort2num-doc +%description help +# ZahlWort2num (v.0.4.2) + +:de: :de: :de: +A small but useful (due shortage of/low quality support for `lang_de`) package for handy conversion of german numerals (incl. ordinal number) written as string to the from numbers. + +To put it differently: _It allows reverse text normalization for numbers_. + +This package might be a good complementary lib to https://github.com/savoirfairelinux/num2words + +:crying_cat_face: _Currently is doesn't support swiss variant. TBD_ :switzerland: + +# PyPi direct page of project +https://pypi.org/project/zahlwort2num/ + +# Installation + +`pip2 install zahlwort2num` + +# Usage + +### _Definition_: <br /> + +```python +import zahlwort2num as w2n +``` + +### _Few examples_: <br /> + ```python + w2n.convert('Zweihundertfünfundzwanzig') # => 225 + w2n.convert('neunte') # => '9.' + w2n.convert('minus siebenhundert Millionen achtundsiebzig') # => -700000078 +``` + _or even stuff like:_ :see_no_evil: <br /> + ```python + w2n.convert('sechshundertdreiundfünfzigtausendfünfhunderteinundzwanzig') # => 653521 +``` + +#### Command line: + +* _(Obviously it is better to use a parameter enclosed with apostrophs due to possible spaces)_ +``` +bin/zahlwort2num-convert 'eine Million siebenhunderteinundzwanzig' +``` + +# Development +Before doing anything. Install flake8 locally by +```bash +python3 -m pip install -r requirements.txt +``` + +Make sure tests are passing +```bash +python3 -m unittest +``` +and you locally run linter via +```bash +flake8 ./zahlwort2num/*.py --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics +``` + +# WIKI +TBD + +# Already implemented features :sunglasses: +* Theoretically it works for any numbers from range 0 upto 999 * 10^27 [big numbers] +* Command-line mode ([see](#command-line) above) +* Supported with ordinal numerals (incl. inflections [sufficies like `'ste', 'ten'` etc. ])<br /> + _In this case it returns coerced __String__ type value e.g '15.' instead of __Integer___ :point_up: +* Relative mild rules in terms of trailing whitespaces, lower/upper-case (unification). +* Handling of signed numerals (also ordinal ones) e.g `'minus zehn'` + +# TODO / Known issues +- [x] ~~Make POC, functional for all common cases~~ +- [x] ~~Ordinal number support~~ +- [x] ~~Take care for exceptions / trailing whitespaces etc.~~ +- [x] ~~Make structure + publish as PyPI package~~ +- [x] ~~Command line support :computer:~~ +- [x] ~~Added support for both non-direct usage e.g einhundert / hundert~~ +- [x] ~~Simplify/refactor POC code, add better documentation~~ +- [x] ~~Zwo variant~~ +- [x] ~~Added linter with Test Suite as hook~~ +- [ ] More comprehensible tests +- [ ] Swiss variant +- [ ] More fault tolerant (ß -> ss) etc +- [ ] Larger scale than 10^60 +- [ ] Ordinal with very large numbers (without addons) e.g `Millionste` +- [ ] Few benchmark improvements (e.g tail recursion etc) +- [ ] Better error handling + validation for idiotical cases (e.g `minus null Miliarde`) + +- [ ] Support for fractions? + + +# Thanks +- @warichet for addressing problem +- @spatialbitz for writing simple fix :+1: +- @psawa - adding support for `zwo` case +- ... lastly to any of you who uses this package ;-) + + +%prep +%autosetup -n zahlwort2num-0.4.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-zahlwort2num -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.2-1 +- Package Spec generated @@ -0,0 +1 @@ +f969821bcbce37404802606b39d3fc72 zahlwort2num-0.4.2.tar.gz |