diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:30:43 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:30:43 +0000 |
commit | 90766add337bc6d3b3dda1b945d632287715f572 (patch) | |
tree | 60791917ebbdbec4d2b9538b16f72158d7fcb887 | |
parent | 73a9b0a329b29b35f19d73330cacd900d8fdd54c (diff) |
automatic import of python-iso-4217
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-iso-4217.spec | 251 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 253 insertions, 0 deletions
@@ -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: 'US Dollar'> +>>> Currency.USD.value +'US Dollar' +>>> Currency.USD.number +840 +>>> Currency('US Dollar') +<Currency.USD: 'US Dollar'> +>>> Currency.JPY.entities +frozenset({'JAPAN'}) +>>> Currency.ZWR +<Currency.ZWR: 'Zimbabwe Dollar (2009)'> +>>> Currency.ZWR.entities +frozenset() +>>> Currency.ZWR.withdrew_entities +(Historic(entity='ZIMBABWE', name='Zimbabwe Dollar'...2009, month=6), begin=None)),) +>>> Currency.VED +<Currency.VED: 'Bolívar Soberano (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 +<Quantity(5.05, 'USD')> +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 +<Quantity(5, '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 +<Quantity(5, 'USDs')> +>>> (5 * reg.USDs).to("USD") +<Quantity(0.05, 'USD')> +>>> (5 * reg.BHDs).to_base_units() +<Quantity(0.005, 'BHD')> +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) +<Quantity(6.0, 'USD')> +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: 'US Dollar'> +>>> Currency.USD.value +'US Dollar' +>>> Currency.USD.number +840 +>>> Currency('US Dollar') +<Currency.USD: 'US Dollar'> +>>> Currency.JPY.entities +frozenset({'JAPAN'}) +>>> Currency.ZWR +<Currency.ZWR: 'Zimbabwe Dollar (2009)'> +>>> Currency.ZWR.entities +frozenset() +>>> Currency.ZWR.withdrew_entities +(Historic(entity='ZIMBABWE', name='Zimbabwe Dollar'...2009, month=6), begin=None)),) +>>> Currency.VED +<Currency.VED: 'Bolívar Soberano (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 +<Quantity(5.05, 'USD')> +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 +<Quantity(5, '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 +<Quantity(5, 'USDs')> +>>> (5 * reg.USDs).to("USD") +<Quantity(0.05, 'USD')> +>>> (5 * reg.BHDs).to_base_units() +<Quantity(0.005, 'BHD')> +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) +<Quantity(6.0, 'USD')> +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: 'US Dollar'> +>>> Currency.USD.value +'US Dollar' +>>> Currency.USD.number +840 +>>> Currency('US Dollar') +<Currency.USD: 'US Dollar'> +>>> Currency.JPY.entities +frozenset({'JAPAN'}) +>>> Currency.ZWR +<Currency.ZWR: 'Zimbabwe Dollar (2009)'> +>>> Currency.ZWR.entities +frozenset() +>>> Currency.ZWR.withdrew_entities +(Historic(entity='ZIMBABWE', name='Zimbabwe Dollar'...2009, month=6), begin=None)),) +>>> Currency.VED +<Currency.VED: 'Bolívar Soberano (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 +<Quantity(5.05, 'USD')> +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 +<Quantity(5, '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 +<Quantity(5, 'USDs')> +>>> (5 * reg.USDs).to("USD") +<Quantity(0.05, 'USD')> +>>> (5 * reg.BHDs).to_base_units() +<Quantity(0.005, 'BHD')> +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) +<Quantity(6.0, 'USD')> +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 <Python_Bot@openeuler.org> - 0.5.230101-1 +- Package Spec generated @@ -0,0 +1 @@ +9bee6990793bbf30c99367c35d3e570b iso_4217-0.5.230101.tar.gz |