diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-12 02:58:47 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 02:58:47 +0000 |
| commit | 68c4c0323fa66b02d21e7c31e6e435bebbf2235b (patch) | |
| tree | 3dc4f8551e58a07ec920aed8e4f51ea7b41360c2 | |
| parent | bbb5bbc4104ff707423fbaaff25257380b108961 (diff) | |
automatic import of python-django-address
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-django-address.spec | 546 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 548 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-address-0.2.8.tar.gz diff --git a/python-django-address.spec b/python-django-address.spec new file mode 100644 index 0000000..3263e9a --- /dev/null +++ b/python-django-address.spec @@ -0,0 +1,546 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-address +Version: 0.2.8 +Release: 1 +Summary: A django application for describing addresses. +License: BSD +URL: https://github.com/furious-luke/django-address +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4f/5a/488ff3c27477da39cc469aa81b52773169f166dcdc450678913c05aece11/django-address-0.2.8.tar.gz +BuildArch: noarch + + +%description +# Overview +Django Address is a set of models and methods for working with postal addresses. +# Requirements + * Python (3.5, 3.6, 3.7, 3.8) + * Django (2.2, 3.0) +We **recommend** and only officially support the latest patch release of each Python and Django series. +# Installation +For more detailed instructions, [view the Readme for the example site](https://github.com/furious-luke/django-address/blob/master/example_site/README.md) included with this package. +```bash +pip install django-address +``` +Then, add `address` to your `INSTALLED_APPS` list in `settings.py`: +```python +INSTALLED_APPS = [ + # ... + 'address', + # ... +] +``` +You can either store your Google API key in an environment variable as `GOOGLE_API_KEY` or you can + specify the key in `settings.py`. If you have an environment variable set it will override what you put in settings.py. + For more information, including enabling the Google Places API, refer to [the example site](https://github.com/furious-luke/django-address/blob/master/example_site/README.md). +``` +GOOGLE_API_KEY = 'AIzaSyD--your-google-maps-key-SjQBE' +``` +# The Model +The rationale behind the model structure is centered on trying to make +it easy to enter addresses that may be poorly defined. The model field included +uses Google Maps API v3 (via the nicely done [geocomplete jquery plugin](http://ubilabs.github.io/geocomplete/)) to +determine a proper address where possible. However if this isn't possible the +raw address is used and the user is responsible for breaking the address down +into components. +It's currently assumed any address is represent-able using four components: +country, state, locality and street address. In addition, country code, state +code and postal code may be stored, if they exist. +There are four Django models used: +``` + Country + name + code + State + name + code + country -> Country + Locality + name + postal_code + state -> State + Address + raw + street_number + route + locality -> Locality +``` +# Address Field +To simplify storage and access of addresses, a subclass of `ForeignKey` named +`AddressField` has been created. It provides an easy method for setting new +addresses. +## ON_DELETE behavior of Address Field +By default, if you delete an Address that is related to another object, +Django's [cascade behavior](https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.on_delete) +is used. This means the related object will also be deleted. You may also choose +to set `null=True` when defining an address field to have the address set +to Null instead of deleting the related object. For more information and an example, +see the readme for the `django-address` example_site. +## Creation +It can be created using the same optional arguments as a ForeignKey field. +For example: +```python + from address.models import AddressField + class MyModel(models.Model): + address1 = AddressField() + address2 = AddressField(related_name='+', blank=True, null=True) +``` +## Setting Values +Values can be set either by assigning an Address object: +```python + addr = Address(...) + addr.save() + obj.address = addr +``` +Or by supplying a dictionary of address components: +```python + obj.address = {'street_number': '1', 'route': 'Somewhere Ave', ...} +``` +The structure of the address components is as follows: +```python + { + 'raw': '1 Somewhere Ave, Northcote, VIC 3070, AU', + 'street_number': '1', + 'route': 'Somewhere Ave', + 'locality': 'Northcote', + 'postal_code': '3070', + 'state': 'Victoria', + 'state_code': 'VIC', + 'country': 'Australia', + 'country_code': 'AU' + } +``` +All except the `raw` field can be omitted. In addition, a raw address may +be set directly: +```python +obj.address = 'Out the back of 1 Somewhere Ave, Northcote, Australia' +``` +## Getting Values +When accessed, the address field simply returns an Address object. This way +all components may be accessed naturally through the object. For example:: +```python + route = obj.address.route + state_name = obj.address.locality.state.name +``` +## Forms +Included is a form field for simplifying address entry. A Google maps +auto-complete is performed in the browser and passed to the view. If +the lookup fails the raw entered value is used. +TODO: Talk about this more. +## Partial Example +The model: +```python +from address.models import AddressField +class Person(models.Model): + address = AddressField(on_delete=models.CASCADE) +``` +The form: +```python +from address.forms import AddressField +class PersonForm(forms.Form): + address = AddressField() +``` +The template: +```html +<head> +{{ form.media }} <!-- needed for JS/GoogleMaps lookup --> +</head> +<body> + {{ form }} +</body> +``` +## Running Django-Address Tests +Django-address currently has partial form and model test coverage using `django.test.TestCase`. +To run the current tests: + 1. [Clone](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) `django-address` locally. + 1. Navigate to the example site, . `/django-address/example_site` + 1. Create a [virtual environment](https://www.tangowithdjango.com/book17/chapters/requirements.html#virtual-environments) and install the example site dependencies. For example: + ``` + mkvirtualenv -p python3 django-address + pip install -r requirements.txt + ``` + 1. Run `./manage.py test` +## Important note regarding US Territories +Django-address does not currently support the parsing of US territories aka Protectorates such as Guam or Puerto Rico. +This topic is under active consideration and its status is described in [#82](https://github.com/furious-luke/django-address/issues/82) +## Project Status Notes +This library was created by [Luke Hodkinson](@furious-luke) originally focused on Australian addresses. +In 2015 Luke began working to abstract the project so it could handle a wider variety of international addresses. +This became the current `dev` branch. While good progress was made on this, the branch became stale and releases +continued under the current model architecture on master. +The project is currently in open development, read more about the project status [in this issue](https://github.com/furious-luke/django-address/issues/98). +If you have questions, bug reports or suggestions please create a New Issue for the project. + +%package -n python3-django-address +Summary: A django application for describing addresses. +Provides: python-django-address +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-address +# Overview +Django Address is a set of models and methods for working with postal addresses. +# Requirements + * Python (3.5, 3.6, 3.7, 3.8) + * Django (2.2, 3.0) +We **recommend** and only officially support the latest patch release of each Python and Django series. +# Installation +For more detailed instructions, [view the Readme for the example site](https://github.com/furious-luke/django-address/blob/master/example_site/README.md) included with this package. +```bash +pip install django-address +``` +Then, add `address` to your `INSTALLED_APPS` list in `settings.py`: +```python +INSTALLED_APPS = [ + # ... + 'address', + # ... +] +``` +You can either store your Google API key in an environment variable as `GOOGLE_API_KEY` or you can + specify the key in `settings.py`. If you have an environment variable set it will override what you put in settings.py. + For more information, including enabling the Google Places API, refer to [the example site](https://github.com/furious-luke/django-address/blob/master/example_site/README.md). +``` +GOOGLE_API_KEY = 'AIzaSyD--your-google-maps-key-SjQBE' +``` +# The Model +The rationale behind the model structure is centered on trying to make +it easy to enter addresses that may be poorly defined. The model field included +uses Google Maps API v3 (via the nicely done [geocomplete jquery plugin](http://ubilabs.github.io/geocomplete/)) to +determine a proper address where possible. However if this isn't possible the +raw address is used and the user is responsible for breaking the address down +into components. +It's currently assumed any address is represent-able using four components: +country, state, locality and street address. In addition, country code, state +code and postal code may be stored, if they exist. +There are four Django models used: +``` + Country + name + code + State + name + code + country -> Country + Locality + name + postal_code + state -> State + Address + raw + street_number + route + locality -> Locality +``` +# Address Field +To simplify storage and access of addresses, a subclass of `ForeignKey` named +`AddressField` has been created. It provides an easy method for setting new +addresses. +## ON_DELETE behavior of Address Field +By default, if you delete an Address that is related to another object, +Django's [cascade behavior](https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.on_delete) +is used. This means the related object will also be deleted. You may also choose +to set `null=True` when defining an address field to have the address set +to Null instead of deleting the related object. For more information and an example, +see the readme for the `django-address` example_site. +## Creation +It can be created using the same optional arguments as a ForeignKey field. +For example: +```python + from address.models import AddressField + class MyModel(models.Model): + address1 = AddressField() + address2 = AddressField(related_name='+', blank=True, null=True) +``` +## Setting Values +Values can be set either by assigning an Address object: +```python + addr = Address(...) + addr.save() + obj.address = addr +``` +Or by supplying a dictionary of address components: +```python + obj.address = {'street_number': '1', 'route': 'Somewhere Ave', ...} +``` +The structure of the address components is as follows: +```python + { + 'raw': '1 Somewhere Ave, Northcote, VIC 3070, AU', + 'street_number': '1', + 'route': 'Somewhere Ave', + 'locality': 'Northcote', + 'postal_code': '3070', + 'state': 'Victoria', + 'state_code': 'VIC', + 'country': 'Australia', + 'country_code': 'AU' + } +``` +All except the `raw` field can be omitted. In addition, a raw address may +be set directly: +```python +obj.address = 'Out the back of 1 Somewhere Ave, Northcote, Australia' +``` +## Getting Values +When accessed, the address field simply returns an Address object. This way +all components may be accessed naturally through the object. For example:: +```python + route = obj.address.route + state_name = obj.address.locality.state.name +``` +## Forms +Included is a form field for simplifying address entry. A Google maps +auto-complete is performed in the browser and passed to the view. If +the lookup fails the raw entered value is used. +TODO: Talk about this more. +## Partial Example +The model: +```python +from address.models import AddressField +class Person(models.Model): + address = AddressField(on_delete=models.CASCADE) +``` +The form: +```python +from address.forms import AddressField +class PersonForm(forms.Form): + address = AddressField() +``` +The template: +```html +<head> +{{ form.media }} <!-- needed for JS/GoogleMaps lookup --> +</head> +<body> + {{ form }} +</body> +``` +## Running Django-Address Tests +Django-address currently has partial form and model test coverage using `django.test.TestCase`. +To run the current tests: + 1. [Clone](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) `django-address` locally. + 1. Navigate to the example site, . `/django-address/example_site` + 1. Create a [virtual environment](https://www.tangowithdjango.com/book17/chapters/requirements.html#virtual-environments) and install the example site dependencies. For example: + ``` + mkvirtualenv -p python3 django-address + pip install -r requirements.txt + ``` + 1. Run `./manage.py test` +## Important note regarding US Territories +Django-address does not currently support the parsing of US territories aka Protectorates such as Guam or Puerto Rico. +This topic is under active consideration and its status is described in [#82](https://github.com/furious-luke/django-address/issues/82) +## Project Status Notes +This library was created by [Luke Hodkinson](@furious-luke) originally focused on Australian addresses. +In 2015 Luke began working to abstract the project so it could handle a wider variety of international addresses. +This became the current `dev` branch. While good progress was made on this, the branch became stale and releases +continued under the current model architecture on master. +The project is currently in open development, read more about the project status [in this issue](https://github.com/furious-luke/django-address/issues/98). +If you have questions, bug reports or suggestions please create a New Issue for the project. + +%package help +Summary: Development documents and examples for django-address +Provides: python3-django-address-doc +%description help +# Overview +Django Address is a set of models and methods for working with postal addresses. +# Requirements + * Python (3.5, 3.6, 3.7, 3.8) + * Django (2.2, 3.0) +We **recommend** and only officially support the latest patch release of each Python and Django series. +# Installation +For more detailed instructions, [view the Readme for the example site](https://github.com/furious-luke/django-address/blob/master/example_site/README.md) included with this package. +```bash +pip install django-address +``` +Then, add `address` to your `INSTALLED_APPS` list in `settings.py`: +```python +INSTALLED_APPS = [ + # ... + 'address', + # ... +] +``` +You can either store your Google API key in an environment variable as `GOOGLE_API_KEY` or you can + specify the key in `settings.py`. If you have an environment variable set it will override what you put in settings.py. + For more information, including enabling the Google Places API, refer to [the example site](https://github.com/furious-luke/django-address/blob/master/example_site/README.md). +``` +GOOGLE_API_KEY = 'AIzaSyD--your-google-maps-key-SjQBE' +``` +# The Model +The rationale behind the model structure is centered on trying to make +it easy to enter addresses that may be poorly defined. The model field included +uses Google Maps API v3 (via the nicely done [geocomplete jquery plugin](http://ubilabs.github.io/geocomplete/)) to +determine a proper address where possible. However if this isn't possible the +raw address is used and the user is responsible for breaking the address down +into components. +It's currently assumed any address is represent-able using four components: +country, state, locality and street address. In addition, country code, state +code and postal code may be stored, if they exist. +There are four Django models used: +``` + Country + name + code + State + name + code + country -> Country + Locality + name + postal_code + state -> State + Address + raw + street_number + route + locality -> Locality +``` +# Address Field +To simplify storage and access of addresses, a subclass of `ForeignKey` named +`AddressField` has been created. It provides an easy method for setting new +addresses. +## ON_DELETE behavior of Address Field +By default, if you delete an Address that is related to another object, +Django's [cascade behavior](https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.on_delete) +is used. This means the related object will also be deleted. You may also choose +to set `null=True` when defining an address field to have the address set +to Null instead of deleting the related object. For more information and an example, +see the readme for the `django-address` example_site. +## Creation +It can be created using the same optional arguments as a ForeignKey field. +For example: +```python + from address.models import AddressField + class MyModel(models.Model): + address1 = AddressField() + address2 = AddressField(related_name='+', blank=True, null=True) +``` +## Setting Values +Values can be set either by assigning an Address object: +```python + addr = Address(...) + addr.save() + obj.address = addr +``` +Or by supplying a dictionary of address components: +```python + obj.address = {'street_number': '1', 'route': 'Somewhere Ave', ...} +``` +The structure of the address components is as follows: +```python + { + 'raw': '1 Somewhere Ave, Northcote, VIC 3070, AU', + 'street_number': '1', + 'route': 'Somewhere Ave', + 'locality': 'Northcote', + 'postal_code': '3070', + 'state': 'Victoria', + 'state_code': 'VIC', + 'country': 'Australia', + 'country_code': 'AU' + } +``` +All except the `raw` field can be omitted. In addition, a raw address may +be set directly: +```python +obj.address = 'Out the back of 1 Somewhere Ave, Northcote, Australia' +``` +## Getting Values +When accessed, the address field simply returns an Address object. This way +all components may be accessed naturally through the object. For example:: +```python + route = obj.address.route + state_name = obj.address.locality.state.name +``` +## Forms +Included is a form field for simplifying address entry. A Google maps +auto-complete is performed in the browser and passed to the view. If +the lookup fails the raw entered value is used. +TODO: Talk about this more. +## Partial Example +The model: +```python +from address.models import AddressField +class Person(models.Model): + address = AddressField(on_delete=models.CASCADE) +``` +The form: +```python +from address.forms import AddressField +class PersonForm(forms.Form): + address = AddressField() +``` +The template: +```html +<head> +{{ form.media }} <!-- needed for JS/GoogleMaps lookup --> +</head> +<body> + {{ form }} +</body> +``` +## Running Django-Address Tests +Django-address currently has partial form and model test coverage using `django.test.TestCase`. +To run the current tests: + 1. [Clone](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) `django-address` locally. + 1. Navigate to the example site, . `/django-address/example_site` + 1. Create a [virtual environment](https://www.tangowithdjango.com/book17/chapters/requirements.html#virtual-environments) and install the example site dependencies. For example: + ``` + mkvirtualenv -p python3 django-address + pip install -r requirements.txt + ``` + 1. Run `./manage.py test` +## Important note regarding US Territories +Django-address does not currently support the parsing of US territories aka Protectorates such as Guam or Puerto Rico. +This topic is under active consideration and its status is described in [#82](https://github.com/furious-luke/django-address/issues/82) +## Project Status Notes +This library was created by [Luke Hodkinson](@furious-luke) originally focused on Australian addresses. +In 2015 Luke began working to abstract the project so it could handle a wider variety of international addresses. +This became the current `dev` branch. While good progress was made on this, the branch became stale and releases +continued under the current model architecture on master. +The project is currently in open development, read more about the project status [in this issue](https://github.com/furious-luke/django-address/issues/98). +If you have questions, bug reports or suggestions please create a New Issue for the project. + +%prep +%autosetup -n django-address-0.2.8 + +%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-address -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.8-1 +- Package Spec generated @@ -0,0 +1 @@ +206a6afb5029be406129da767ccbdc73 django-address-0.2.8.tar.gz |
