From 2fb2969c183514bed0875b6739b099c3df3ef36a Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 11 Apr 2023 10:18:14 +0000 Subject: automatic import of python-urlman --- .gitignore | 1 + python-urlman.spec | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 182 insertions(+) create mode 100644 python-urlman.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..00477d9 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/urlman-2.0.1.tar.gz diff --git a/python-urlman.spec b/python-urlman.spec new file mode 100644 index 0000000..87093ab --- /dev/null +++ b/python-urlman.spec @@ -0,0 +1,180 @@ +%global _empty_manifest_terminate_build 0 +Name: python-urlman +Version: 2.0.1 +Release: 1 +Summary: Django URL pattern helpers +License: Apache Software License +URL: https://github.com/andrewgodwin/urlman +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a9/af/9973893f12e1ef71d5f42a049bad611a617a9349c8bb0b9b8f6003183565/urlman-2.0.1.tar.gz +BuildArch: noarch + + +%description +A nicer way to do URLs for Django models. +Replaces things like ``get_absolute_url`` with a ``.urls`` attribute that +can reference other URLs and build sensible trees of things, and can +then be accessed using ``instance.urls.name``. +This is so you can have URLs on your model instances directly (rather than reversing +through the url lookup functions, which is not only slow but often hard to supply +arguments to). You can just throw ``{{ instance.urls.view }}`` into a template to get +a link. +It also lets you use Python string formatting syntax to place arguments into URLs from +the model instance itself or from other URLs in the same set. +Example: + import urlman + class Group(models.Model): + class urls(urlman.Urls): + view = "/{self.slug}/" + users = "{view}users/" + admin = "{view}admin/" + def my_view(request): + group = ... + return redirect(group.urls.view) +It's suggested that you use "view" as the equivalent name for +``get_absolute_url``, and have a function like this on your model: + def get_absolute_url(self): + return self.urls.view +To build a full URL use the ``full`` method like this: + def my_view(request): + group = ... + return redirect(group.urls.admin.full(scheme='https')) +You can implement the `get_scheme(url)` and `get_hostname(url)` methods on your +`Url` class to change your default theme and hostname from the urlman defaults +of `'http'` and `'localhost'`, respectively. +If you use Django REST Framework, you can use ``urlman.UrlManField`` to provide +an object with a set of URLs. It is used like this (only the ``urls`` parameter +is required): + from urlman.serializers import UrlManField + class MySerializer(ModelSerializer): + urls = UrlManField(urls=['view', 'edit'], attribute='urls', full=True) + +%package -n python3-urlman +Summary: Django URL pattern helpers +Provides: python-urlman +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-urlman +A nicer way to do URLs for Django models. +Replaces things like ``get_absolute_url`` with a ``.urls`` attribute that +can reference other URLs and build sensible trees of things, and can +then be accessed using ``instance.urls.name``. +This is so you can have URLs on your model instances directly (rather than reversing +through the url lookup functions, which is not only slow but often hard to supply +arguments to). You can just throw ``{{ instance.urls.view }}`` into a template to get +a link. +It also lets you use Python string formatting syntax to place arguments into URLs from +the model instance itself or from other URLs in the same set. +Example: + import urlman + class Group(models.Model): + class urls(urlman.Urls): + view = "/{self.slug}/" + users = "{view}users/" + admin = "{view}admin/" + def my_view(request): + group = ... + return redirect(group.urls.view) +It's suggested that you use "view" as the equivalent name for +``get_absolute_url``, and have a function like this on your model: + def get_absolute_url(self): + return self.urls.view +To build a full URL use the ``full`` method like this: + def my_view(request): + group = ... + return redirect(group.urls.admin.full(scheme='https')) +You can implement the `get_scheme(url)` and `get_hostname(url)` methods on your +`Url` class to change your default theme and hostname from the urlman defaults +of `'http'` and `'localhost'`, respectively. +If you use Django REST Framework, you can use ``urlman.UrlManField`` to provide +an object with a set of URLs. It is used like this (only the ``urls`` parameter +is required): + from urlman.serializers import UrlManField + class MySerializer(ModelSerializer): + urls = UrlManField(urls=['view', 'edit'], attribute='urls', full=True) + +%package help +Summary: Development documents and examples for urlman +Provides: python3-urlman-doc +%description help +A nicer way to do URLs for Django models. +Replaces things like ``get_absolute_url`` with a ``.urls`` attribute that +can reference other URLs and build sensible trees of things, and can +then be accessed using ``instance.urls.name``. +This is so you can have URLs on your model instances directly (rather than reversing +through the url lookup functions, which is not only slow but often hard to supply +arguments to). You can just throw ``{{ instance.urls.view }}`` into a template to get +a link. +It also lets you use Python string formatting syntax to place arguments into URLs from +the model instance itself or from other URLs in the same set. +Example: + import urlman + class Group(models.Model): + class urls(urlman.Urls): + view = "/{self.slug}/" + users = "{view}users/" + admin = "{view}admin/" + def my_view(request): + group = ... + return redirect(group.urls.view) +It's suggested that you use "view" as the equivalent name for +``get_absolute_url``, and have a function like this on your model: + def get_absolute_url(self): + return self.urls.view +To build a full URL use the ``full`` method like this: + def my_view(request): + group = ... + return redirect(group.urls.admin.full(scheme='https')) +You can implement the `get_scheme(url)` and `get_hostname(url)` methods on your +`Url` class to change your default theme and hostname from the urlman defaults +of `'http'` and `'localhost'`, respectively. +If you use Django REST Framework, you can use ``urlman.UrlManField`` to provide +an object with a set of URLs. It is used like this (only the ``urls`` parameter +is required): + from urlman.serializers import UrlManField + class MySerializer(ModelSerializer): + urls = UrlManField(urls=['view', 'edit'], attribute='urls', full=True) + +%prep +%autosetup -n urlman-2.0.1 + +%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-urlman -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot - 2.0.1-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..955a9a6 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +d0385986b25105a45df622ad84e23520 urlman-2.0.1.tar.gz -- cgit v1.2.3