summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 21:09:25 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 21:09:25 +0000
commite79060247865fe7c8f95ba0303fcae429276c886 (patch)
treeda9505c57b3a538123e7f75607d0b8eee3807f0b
parent047a6159a1d81d6ced8bab7f504c687f089b6ed1 (diff)
automatic import of python-django-prices
-rw-r--r--.gitignore1
-rw-r--r--python-django-prices.spec466
-rw-r--r--sources1
3 files changed, 468 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..884786f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/django-prices-2.3.0.tar.gz
diff --git a/python-django-prices.spec b/python-django-prices.spec
new file mode 100644
index 0000000..c9804cc
--- /dev/null
+++ b/python-django-prices.spec
@@ -0,0 +1,466 @@
+%global _empty_manifest_terminate_build 0
+Name: python-django-prices
+Version: 2.3.0
+Release: 1
+Summary: Django fields for the prices module
+License: BSD
+URL: https://github.com/mirumee/django-prices
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/fb/8d/514f2caef68ec87124b8ec275be307bcc4771398257d1e43245dcfd201a4/django-prices-2.3.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-Babel
+Requires: python3-Django
+Requires: python3-enmerkar
+Requires: python3-prices
+
+%description
+[![Build Status](https://secure.travis-ci.org/mirumee/django-prices.png)](https://travis-ci.org/mirumee/django-prices) [![codecov.io](https://img.shields.io/codecov/c/github/mirumee/django-prices/master.svg)](http://codecov.io/github/mirumee/django-prices?branch=master)
+# Installation
+* `pip install django-prices`
+* Add `django_prices` to your `INSTALLED_APPS` at `settings.py`
+* Follow `enmerkar` [instructions](https://github.com/Zegocover/enmerkar#using-the-middleware) and update both your `INSTALLED_APPS` and `MIDDLEWARE_CLASSES`.
+# Features
+Provides support for models:
+```python
+from django.db import models
+from django_prices.models import MoneyField, TaxedMoneyField
+class Model(models.Model):
+ currency = models.CharField(max_length=3, default="BTC")
+ price_net_amount = models.DecimalField(max_digits=9, decimal_places=2, default="5")
+ price_net = MoneyField(amount_field="price_net_amount", currency_field="currency")
+ price_gross_amount = models.DecimalField(
+ max_digits=9, decimal_places=2, default="5"
+ )
+ price_gross = MoneyField(
+ amount_field="price_gross_amount", currency_field="currency"
+ )
+ price = TaxedMoneyField(
+ net_amount_field="price_net_amount",
+ gross_amount_field="price_gross_amount",
+ currency="currency",
+ )
+```
+And forms:
+```python
+from django import forms
+from django_prices.forms import MoneyField
+AVAILABLE_CURRENCIES = ["BTC", "USD"]
+class ProductForm(forms.Form):
+ name = forms.CharField(label="Name")
+ price_net = MoneyField(label="net", available_currencies=AVAILABLE_CURRENCIES)
+```
+And validators:
+```python
+from django import forms
+from prices.forms import Money
+from django_prices.forms import MoneyField
+from django_prices.validators import (
+ MaxMoneyValidator, MinMoneyValidator, MoneyPrecisionValidator)
+class DonateForm(forms.Form):
+ donator_name = forms.CharField(label="Your name")
+ donation = MoneyField(
+ label="net",
+ available_currencies=["BTC", "USD"],
+ max_digits=9,
+ decimal_places=2,
+ validators=[
+ MoneyPrecisionValidator(),
+ MinMoneyValidator(Money(5, "USD")),
+ MaxMoneyValidator(Money(500, "USD")),
+ ],
+ )
+```
+It also provides support for templates:
+```html+django
+{% load prices %}
+<p>Price: {{ foo.price.gross|amount }} ({{ foo.price.net|amount }} + {{ foo.price.tax|amount }} tax)</p>
+```
+You can also use HTML output from `prices` template tags, they will wrap currency symbol in a `<span>` element:
+```html+django
+{% load prices %}
+<p>Price: {{ foo.price.gross|amount:'html' }} ({{ foo.price.net|amount:'html' }} + {{ foo.price.tax|amount:'html' }} tax)</p>
+```
+It will be rendered as a following structure (for example with English locale):
+```html
+<span class="currency">$</span>15.00
+```
+## How to migrate to django-prices 2.0
+Version 2.0 introduces major changes to how prices data is stored in models, enabling setting price's currency per model instance.
+Steps to migrate:
+1. In your **forms**:
+ * remove the `currency` argument
+ * add `available_currencies` with available choices.
+ If the form specified `MoneyFields` in `fields` option, replace those with explicit declarations instead:
+ ```python
+ AVAILABLE_CURRENCIES = [("BTC", "bitcoins"), ("USD", "US dollar")]
+ class ModelForm(forms.ModelForm):
+ class Meta:
+ model = models.Model
+ fields = []
+ price_net = MoneyField(available_currencies=AVAILABLE_CURRENCIES)
+ ```
+1. In your **models** using `MoneyField`:
+ * Replace all occurrences of the `MoneyField` class with `DecimalField`
+ * Remove the `currency` argument from them
+ * Change `default` from Money instance to value acceptable by Decimal field
+ Example of code:
+ ```python
+ price_net = MoneyField(
+ "net", currency="BTC", default=Money("5", "BTC"), max_digits=9, decimal_places=2
+ )
+ ```
+ Updated code:
+ ```python
+ price_net = models.DecimalField("net", default="5", max_digits=9, decimal_places=2)
+ ```
+1. In your **migration** files:
+ * Replace all occurrences of the `MoneyField` class with `DecimalField`
+ * Remove the `currency` argument from them
+ * Change `default` from Money instance to value acceptable by Decimal field
+ ```python
+ field = django_prices.models.MoneyField(currency='BTC', decimal_places=2, default='5', max_digits=9, verbose_name='net')
+ ```
+ Updated code:
+ ```python
+ field = models.DecimalField(decimal_places=2, default='5', max_digits=9, verbose_name='net')
+ ```
+1. Rename fields in **models**. Your old field will still store amount of money, so probably the best choice would be `price_net_amount` instead `price_net`.
+1. All places which use Models and it's fields can prevent django app from even starting the code. Possible issues: code tries to access non existing fields. Exclude those fields for now from your ModelForms, Graphene types etc.
+1. Run `python manage.py makemigrations`. Make sure to do this step before adding new `MoneyFields` to model! If not, django will generate `delete/create` migrations instead of `rename`.
+1. Run `python manage.py migrate`.
+1. Update `django-prices`.
+1. Add `models.CharField` for currency and `MoneyField` to your models:
+ ```python
+ currency = models.CharField(max_length=3, default="BTC")
+ price_net_amount = models.DecimalField("net", default="5", max_digits=9, decimal_places=2)
+ price_net = MoneyField(amount_field="price_net_amount", currency_field="currency")
+ ```
+1. Run `python manage.py makemigrations` and `python manage.py migrate`.
+1. Change `TaxedMoneyField` declaration:
+ ```python
+ price = TaxedMoneyField(
+ net_amount_field="price_net_amount",
+ gross_amount_field="price_gross_amount",
+ currency="currency",
+ )
+ ```
+1. Remember to address changes in previously edited ModelForms
+
+%package -n python3-django-prices
+Summary: Django fields for the prices module
+Provides: python-django-prices
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-django-prices
+[![Build Status](https://secure.travis-ci.org/mirumee/django-prices.png)](https://travis-ci.org/mirumee/django-prices) [![codecov.io](https://img.shields.io/codecov/c/github/mirumee/django-prices/master.svg)](http://codecov.io/github/mirumee/django-prices?branch=master)
+# Installation
+* `pip install django-prices`
+* Add `django_prices` to your `INSTALLED_APPS` at `settings.py`
+* Follow `enmerkar` [instructions](https://github.com/Zegocover/enmerkar#using-the-middleware) and update both your `INSTALLED_APPS` and `MIDDLEWARE_CLASSES`.
+# Features
+Provides support for models:
+```python
+from django.db import models
+from django_prices.models import MoneyField, TaxedMoneyField
+class Model(models.Model):
+ currency = models.CharField(max_length=3, default="BTC")
+ price_net_amount = models.DecimalField(max_digits=9, decimal_places=2, default="5")
+ price_net = MoneyField(amount_field="price_net_amount", currency_field="currency")
+ price_gross_amount = models.DecimalField(
+ max_digits=9, decimal_places=2, default="5"
+ )
+ price_gross = MoneyField(
+ amount_field="price_gross_amount", currency_field="currency"
+ )
+ price = TaxedMoneyField(
+ net_amount_field="price_net_amount",
+ gross_amount_field="price_gross_amount",
+ currency="currency",
+ )
+```
+And forms:
+```python
+from django import forms
+from django_prices.forms import MoneyField
+AVAILABLE_CURRENCIES = ["BTC", "USD"]
+class ProductForm(forms.Form):
+ name = forms.CharField(label="Name")
+ price_net = MoneyField(label="net", available_currencies=AVAILABLE_CURRENCIES)
+```
+And validators:
+```python
+from django import forms
+from prices.forms import Money
+from django_prices.forms import MoneyField
+from django_prices.validators import (
+ MaxMoneyValidator, MinMoneyValidator, MoneyPrecisionValidator)
+class DonateForm(forms.Form):
+ donator_name = forms.CharField(label="Your name")
+ donation = MoneyField(
+ label="net",
+ available_currencies=["BTC", "USD"],
+ max_digits=9,
+ decimal_places=2,
+ validators=[
+ MoneyPrecisionValidator(),
+ MinMoneyValidator(Money(5, "USD")),
+ MaxMoneyValidator(Money(500, "USD")),
+ ],
+ )
+```
+It also provides support for templates:
+```html+django
+{% load prices %}
+<p>Price: {{ foo.price.gross|amount }} ({{ foo.price.net|amount }} + {{ foo.price.tax|amount }} tax)</p>
+```
+You can also use HTML output from `prices` template tags, they will wrap currency symbol in a `<span>` element:
+```html+django
+{% load prices %}
+<p>Price: {{ foo.price.gross|amount:'html' }} ({{ foo.price.net|amount:'html' }} + {{ foo.price.tax|amount:'html' }} tax)</p>
+```
+It will be rendered as a following structure (for example with English locale):
+```html
+<span class="currency">$</span>15.00
+```
+## How to migrate to django-prices 2.0
+Version 2.0 introduces major changes to how prices data is stored in models, enabling setting price's currency per model instance.
+Steps to migrate:
+1. In your **forms**:
+ * remove the `currency` argument
+ * add `available_currencies` with available choices.
+ If the form specified `MoneyFields` in `fields` option, replace those with explicit declarations instead:
+ ```python
+ AVAILABLE_CURRENCIES = [("BTC", "bitcoins"), ("USD", "US dollar")]
+ class ModelForm(forms.ModelForm):
+ class Meta:
+ model = models.Model
+ fields = []
+ price_net = MoneyField(available_currencies=AVAILABLE_CURRENCIES)
+ ```
+1. In your **models** using `MoneyField`:
+ * Replace all occurrences of the `MoneyField` class with `DecimalField`
+ * Remove the `currency` argument from them
+ * Change `default` from Money instance to value acceptable by Decimal field
+ Example of code:
+ ```python
+ price_net = MoneyField(
+ "net", currency="BTC", default=Money("5", "BTC"), max_digits=9, decimal_places=2
+ )
+ ```
+ Updated code:
+ ```python
+ price_net = models.DecimalField("net", default="5", max_digits=9, decimal_places=2)
+ ```
+1. In your **migration** files:
+ * Replace all occurrences of the `MoneyField` class with `DecimalField`
+ * Remove the `currency` argument from them
+ * Change `default` from Money instance to value acceptable by Decimal field
+ ```python
+ field = django_prices.models.MoneyField(currency='BTC', decimal_places=2, default='5', max_digits=9, verbose_name='net')
+ ```
+ Updated code:
+ ```python
+ field = models.DecimalField(decimal_places=2, default='5', max_digits=9, verbose_name='net')
+ ```
+1. Rename fields in **models**. Your old field will still store amount of money, so probably the best choice would be `price_net_amount` instead `price_net`.
+1. All places which use Models and it's fields can prevent django app from even starting the code. Possible issues: code tries to access non existing fields. Exclude those fields for now from your ModelForms, Graphene types etc.
+1. Run `python manage.py makemigrations`. Make sure to do this step before adding new `MoneyFields` to model! If not, django will generate `delete/create` migrations instead of `rename`.
+1. Run `python manage.py migrate`.
+1. Update `django-prices`.
+1. Add `models.CharField` for currency and `MoneyField` to your models:
+ ```python
+ currency = models.CharField(max_length=3, default="BTC")
+ price_net_amount = models.DecimalField("net", default="5", max_digits=9, decimal_places=2)
+ price_net = MoneyField(amount_field="price_net_amount", currency_field="currency")
+ ```
+1. Run `python manage.py makemigrations` and `python manage.py migrate`.
+1. Change `TaxedMoneyField` declaration:
+ ```python
+ price = TaxedMoneyField(
+ net_amount_field="price_net_amount",
+ gross_amount_field="price_gross_amount",
+ currency="currency",
+ )
+ ```
+1. Remember to address changes in previously edited ModelForms
+
+%package help
+Summary: Development documents and examples for django-prices
+Provides: python3-django-prices-doc
+%description help
+[![Build Status](https://secure.travis-ci.org/mirumee/django-prices.png)](https://travis-ci.org/mirumee/django-prices) [![codecov.io](https://img.shields.io/codecov/c/github/mirumee/django-prices/master.svg)](http://codecov.io/github/mirumee/django-prices?branch=master)
+# Installation
+* `pip install django-prices`
+* Add `django_prices` to your `INSTALLED_APPS` at `settings.py`
+* Follow `enmerkar` [instructions](https://github.com/Zegocover/enmerkar#using-the-middleware) and update both your `INSTALLED_APPS` and `MIDDLEWARE_CLASSES`.
+# Features
+Provides support for models:
+```python
+from django.db import models
+from django_prices.models import MoneyField, TaxedMoneyField
+class Model(models.Model):
+ currency = models.CharField(max_length=3, default="BTC")
+ price_net_amount = models.DecimalField(max_digits=9, decimal_places=2, default="5")
+ price_net = MoneyField(amount_field="price_net_amount", currency_field="currency")
+ price_gross_amount = models.DecimalField(
+ max_digits=9, decimal_places=2, default="5"
+ )
+ price_gross = MoneyField(
+ amount_field="price_gross_amount", currency_field="currency"
+ )
+ price = TaxedMoneyField(
+ net_amount_field="price_net_amount",
+ gross_amount_field="price_gross_amount",
+ currency="currency",
+ )
+```
+And forms:
+```python
+from django import forms
+from django_prices.forms import MoneyField
+AVAILABLE_CURRENCIES = ["BTC", "USD"]
+class ProductForm(forms.Form):
+ name = forms.CharField(label="Name")
+ price_net = MoneyField(label="net", available_currencies=AVAILABLE_CURRENCIES)
+```
+And validators:
+```python
+from django import forms
+from prices.forms import Money
+from django_prices.forms import MoneyField
+from django_prices.validators import (
+ MaxMoneyValidator, MinMoneyValidator, MoneyPrecisionValidator)
+class DonateForm(forms.Form):
+ donator_name = forms.CharField(label="Your name")
+ donation = MoneyField(
+ label="net",
+ available_currencies=["BTC", "USD"],
+ max_digits=9,
+ decimal_places=2,
+ validators=[
+ MoneyPrecisionValidator(),
+ MinMoneyValidator(Money(5, "USD")),
+ MaxMoneyValidator(Money(500, "USD")),
+ ],
+ )
+```
+It also provides support for templates:
+```html+django
+{% load prices %}
+<p>Price: {{ foo.price.gross|amount }} ({{ foo.price.net|amount }} + {{ foo.price.tax|amount }} tax)</p>
+```
+You can also use HTML output from `prices` template tags, they will wrap currency symbol in a `<span>` element:
+```html+django
+{% load prices %}
+<p>Price: {{ foo.price.gross|amount:'html' }} ({{ foo.price.net|amount:'html' }} + {{ foo.price.tax|amount:'html' }} tax)</p>
+```
+It will be rendered as a following structure (for example with English locale):
+```html
+<span class="currency">$</span>15.00
+```
+## How to migrate to django-prices 2.0
+Version 2.0 introduces major changes to how prices data is stored in models, enabling setting price's currency per model instance.
+Steps to migrate:
+1. In your **forms**:
+ * remove the `currency` argument
+ * add `available_currencies` with available choices.
+ If the form specified `MoneyFields` in `fields` option, replace those with explicit declarations instead:
+ ```python
+ AVAILABLE_CURRENCIES = [("BTC", "bitcoins"), ("USD", "US dollar")]
+ class ModelForm(forms.ModelForm):
+ class Meta:
+ model = models.Model
+ fields = []
+ price_net = MoneyField(available_currencies=AVAILABLE_CURRENCIES)
+ ```
+1. In your **models** using `MoneyField`:
+ * Replace all occurrences of the `MoneyField` class with `DecimalField`
+ * Remove the `currency` argument from them
+ * Change `default` from Money instance to value acceptable by Decimal field
+ Example of code:
+ ```python
+ price_net = MoneyField(
+ "net", currency="BTC", default=Money("5", "BTC"), max_digits=9, decimal_places=2
+ )
+ ```
+ Updated code:
+ ```python
+ price_net = models.DecimalField("net", default="5", max_digits=9, decimal_places=2)
+ ```
+1. In your **migration** files:
+ * Replace all occurrences of the `MoneyField` class with `DecimalField`
+ * Remove the `currency` argument from them
+ * Change `default` from Money instance to value acceptable by Decimal field
+ ```python
+ field = django_prices.models.MoneyField(currency='BTC', decimal_places=2, default='5', max_digits=9, verbose_name='net')
+ ```
+ Updated code:
+ ```python
+ field = models.DecimalField(decimal_places=2, default='5', max_digits=9, verbose_name='net')
+ ```
+1. Rename fields in **models**. Your old field will still store amount of money, so probably the best choice would be `price_net_amount` instead `price_net`.
+1. All places which use Models and it's fields can prevent django app from even starting the code. Possible issues: code tries to access non existing fields. Exclude those fields for now from your ModelForms, Graphene types etc.
+1. Run `python manage.py makemigrations`. Make sure to do this step before adding new `MoneyFields` to model! If not, django will generate `delete/create` migrations instead of `rename`.
+1. Run `python manage.py migrate`.
+1. Update `django-prices`.
+1. Add `models.CharField` for currency and `MoneyField` to your models:
+ ```python
+ currency = models.CharField(max_length=3, default="BTC")
+ price_net_amount = models.DecimalField("net", default="5", max_digits=9, decimal_places=2)
+ price_net = MoneyField(amount_field="price_net_amount", currency_field="currency")
+ ```
+1. Run `python manage.py makemigrations` and `python manage.py migrate`.
+1. Change `TaxedMoneyField` declaration:
+ ```python
+ price = TaxedMoneyField(
+ net_amount_field="price_net_amount",
+ gross_amount_field="price_gross_amount",
+ currency="currency",
+ )
+ ```
+1. Remember to address changes in previously edited ModelForms
+
+%prep
+%autosetup -n django-prices-2.3.0
+
+%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-django-prices -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 2.3.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..3a91e9a
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+559a7f507d3d4cdbfbf0e70a2386ba79 django-prices-2.3.0.tar.gz