From 90766add337bc6d3b3dda1b945d632287715f572 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 29 May 2023 11:30:43 +0000 Subject: automatic import of python-iso-4217 --- .gitignore | 1 + python-iso-4217.spec | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 253 insertions(+) create mode 100644 python-iso-4217.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..52ebece 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/iso_4217-0.5.230101.tar.gz diff --git a/python-iso-4217.spec b/python-iso-4217.spec new file mode 100644 index 0000000..ee19e92 --- /dev/null +++ b/python-iso-4217.spec @@ -0,0 +1,251 @@ +%global _empty_manifest_terminate_build 0 +Name: python-iso-4217 +Version: 0.5.230101 +Release: 1 +Summary: ISO 4217 currency code library +License: MIT +URL: https://pypi.org/project/iso-4217/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a3/51/d064ebfe5840c94a3303357ad1c143e44703ed72d0f940bca25181162287/iso_4217-0.5.230101.tar.gz +BuildArch: noarch + +Requires: python3-Pint +Requires: python3-pytest + +%description +This package contains ISO 4217 *active* and *historical* currency data. +Written and tested for Python 3.6 and above. +Supports `pint`_ for operations with currency units. +>>> from iso_4217 import Currency +>>> Currency.USD + +>>> Currency.USD.value +'US Dollar' +>>> Currency.USD.number +840 +>>> Currency('US Dollar') + +>>> Currency.JPY.entities +frozenset({'JAPAN'}) +>>> Currency.ZWR + +>>> Currency.ZWR.entities +frozenset() +>>> Currency.ZWR.withdrew_entities +(Historic(entity='ZIMBABWE', name='Zimbabwe Dollar'...2009, month=6), begin=None)),) +>>> Currency.VED + +Pint units and subunits are available with convenient :code:`unit` and :code:`subunit` +properties on Currency. Accessing these properties requires `pint` package installed +and automatically defines currency units in application default registry. +>>> Currency.USD.unit * 5 + Currency.USD.subunit * 5 + +Currency units can be defined in any UnitRegistry manually +>>> import pint +>>> from decimal import Decimal +>>> from iso_4217 import define_currency_units +>>> reg = define_currency_units(pint.UnitRegistry(non_int_type=Decimal)) +>>> 5 * reg.USD + +But units from separate registries should not be mixed +>>> Currency.USD.unit == reg.USD +Traceback (most recent call last): +ValueError: Cannot operate with Unit and Unit of different registries. +If you want to replace registry used by Currency just replace the application registry: +>>> pint.set_application_registry(reg) +>>> Currency.USD.unit == reg.USD +True +Subunits are defined with `s` suffix: +>>> 5 * reg.USDs + +>>> (5 * reg.USDs).to("USD") + +>>> (5 * reg.BHDs).to_base_units() + +Each currency is defined within it's own dimension: +>>> (5 * reg.USD).to('EUR') +Traceback (most recent call last): +pint.errors.DimensionalityError: Cannot convert from 'USD' ([currency_USD]) to 'EUR' ([currency_EUR]) +But automatic currency conversion can be made via pint Contexts +>>> context = pint.Context() +>>> eur_to_usd = lambda r, eur: eur * r("1.2 USD/EUR") +>>> context.add_transformation("[currency_EUR]", "[currency_USD]", eur_to_usd) +>>> (Currency.EUR.unit * 5).to('USD', context) + +Inspired by `iso4217`_ package by Hong Minhee. + +%package -n python3-iso-4217 +Summary: ISO 4217 currency code library +Provides: python-iso-4217 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-iso-4217 +This package contains ISO 4217 *active* and *historical* currency data. +Written and tested for Python 3.6 and above. +Supports `pint`_ for operations with currency units. +>>> from iso_4217 import Currency +>>> Currency.USD + +>>> Currency.USD.value +'US Dollar' +>>> Currency.USD.number +840 +>>> Currency('US Dollar') + +>>> Currency.JPY.entities +frozenset({'JAPAN'}) +>>> Currency.ZWR + +>>> Currency.ZWR.entities +frozenset() +>>> Currency.ZWR.withdrew_entities +(Historic(entity='ZIMBABWE', name='Zimbabwe Dollar'...2009, month=6), begin=None)),) +>>> Currency.VED + +Pint units and subunits are available with convenient :code:`unit` and :code:`subunit` +properties on Currency. Accessing these properties requires `pint` package installed +and automatically defines currency units in application default registry. +>>> Currency.USD.unit * 5 + Currency.USD.subunit * 5 + +Currency units can be defined in any UnitRegistry manually +>>> import pint +>>> from decimal import Decimal +>>> from iso_4217 import define_currency_units +>>> reg = define_currency_units(pint.UnitRegistry(non_int_type=Decimal)) +>>> 5 * reg.USD + +But units from separate registries should not be mixed +>>> Currency.USD.unit == reg.USD +Traceback (most recent call last): +ValueError: Cannot operate with Unit and Unit of different registries. +If you want to replace registry used by Currency just replace the application registry: +>>> pint.set_application_registry(reg) +>>> Currency.USD.unit == reg.USD +True +Subunits are defined with `s` suffix: +>>> 5 * reg.USDs + +>>> (5 * reg.USDs).to("USD") + +>>> (5 * reg.BHDs).to_base_units() + +Each currency is defined within it's own dimension: +>>> (5 * reg.USD).to('EUR') +Traceback (most recent call last): +pint.errors.DimensionalityError: Cannot convert from 'USD' ([currency_USD]) to 'EUR' ([currency_EUR]) +But automatic currency conversion can be made via pint Contexts +>>> context = pint.Context() +>>> eur_to_usd = lambda r, eur: eur * r("1.2 USD/EUR") +>>> context.add_transformation("[currency_EUR]", "[currency_USD]", eur_to_usd) +>>> (Currency.EUR.unit * 5).to('USD', context) + +Inspired by `iso4217`_ package by Hong Minhee. + +%package help +Summary: Development documents and examples for iso-4217 +Provides: python3-iso-4217-doc +%description help +This package contains ISO 4217 *active* and *historical* currency data. +Written and tested for Python 3.6 and above. +Supports `pint`_ for operations with currency units. +>>> from iso_4217 import Currency +>>> Currency.USD + +>>> Currency.USD.value +'US Dollar' +>>> Currency.USD.number +840 +>>> Currency('US Dollar') + +>>> Currency.JPY.entities +frozenset({'JAPAN'}) +>>> Currency.ZWR + +>>> Currency.ZWR.entities +frozenset() +>>> Currency.ZWR.withdrew_entities +(Historic(entity='ZIMBABWE', name='Zimbabwe Dollar'...2009, month=6), begin=None)),) +>>> Currency.VED + +Pint units and subunits are available with convenient :code:`unit` and :code:`subunit` +properties on Currency. Accessing these properties requires `pint` package installed +and automatically defines currency units in application default registry. +>>> Currency.USD.unit * 5 + Currency.USD.subunit * 5 + +Currency units can be defined in any UnitRegistry manually +>>> import pint +>>> from decimal import Decimal +>>> from iso_4217 import define_currency_units +>>> reg = define_currency_units(pint.UnitRegistry(non_int_type=Decimal)) +>>> 5 * reg.USD + +But units from separate registries should not be mixed +>>> Currency.USD.unit == reg.USD +Traceback (most recent call last): +ValueError: Cannot operate with Unit and Unit of different registries. +If you want to replace registry used by Currency just replace the application registry: +>>> pint.set_application_registry(reg) +>>> Currency.USD.unit == reg.USD +True +Subunits are defined with `s` suffix: +>>> 5 * reg.USDs + +>>> (5 * reg.USDs).to("USD") + +>>> (5 * reg.BHDs).to_base_units() + +Each currency is defined within it's own dimension: +>>> (5 * reg.USD).to('EUR') +Traceback (most recent call last): +pint.errors.DimensionalityError: Cannot convert from 'USD' ([currency_USD]) to 'EUR' ([currency_EUR]) +But automatic currency conversion can be made via pint Contexts +>>> context = pint.Context() +>>> eur_to_usd = lambda r, eur: eur * r("1.2 USD/EUR") +>>> context.add_transformation("[currency_EUR]", "[currency_USD]", eur_to_usd) +>>> (Currency.EUR.unit * 5).to('USD', context) + +Inspired by `iso4217`_ package by Hong Minhee. + +%prep +%autosetup -n iso-4217-0.5.230101 + +%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-iso-4217 -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot - 0.5.230101-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..c33b184 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +9bee6990793bbf30c99367c35d3e570b iso_4217-0.5.230101.tar.gz -- cgit v1.2.3