summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <copr-devel@lists.fedorahosted.org>2023-02-24 07:35:41 +0000
committerCoprDistGit <copr-devel@lists.fedorahosted.org>2023-02-24 07:35:41 +0000
commited971796fe32d08b446a02d89bdd308d1ccc6b9a (patch)
tree494253ab0bdabc94211b3bce639247afb7e89053
parentc5c26036c2566fe4fc5e129a482e9eb313cef5cb (diff)
automatic import of python3-django-uuslugopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-django-uuslug.spec780
-rw-r--r--sources1
3 files changed, 782 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..c10325a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/django-uuslug-2.0.0.tar.gz
diff --git a/python-django-uuslug.spec b/python-django-uuslug.spec
new file mode 100644
index 0000000..26bb78a
--- /dev/null
+++ b/python-django-uuslug.spec
@@ -0,0 +1,780 @@
+%global _empty_manifest_terminate_build 0
+Name: python-django-uuslug
+Version: 2.0.0
+Release: 1
+Summary: A Django slugify application that also handles Unicode
+License: MIT
+URL: https://github.com/un33k/django-uuslug
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/20/7d/2be294809b7236a067f11947e7d4a3cf897ea65153fe95be3102d80894e6/django-uuslug-2.0.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-slugify
+
+%description
+# Django Uuslug
+
+**A Django slugify application that guarantees `Uniqueness` and handles `Unicode`**
+
+[![status-image]][status-link]
+[![version-image]][version-link]
+[![coverage-image]][coverage-link]
+
+# Overview
+
+In short: UUSlug == (`U`nique + `U`nicode) Slug
+
+# How to install
+
+ 1. easy_install django-uuslug
+ 2. pip install django-uuslug
+ 3. git clone http://github.com/un33k/django-uuslug
+ a. cd django-uuslug
+ b. run python setup.py
+ 4. wget https://github.com/un33k/django-uuslug/zipball/master
+ a. unzip the downloaded file
+ b. cd into django-uuslug-* directory
+ c. run python setup.py
+ 5. pip install -e git+https://github.com/un33k/django-uuslug#egg=django-uuslug
+
+# How to use
+
+```python
+
+ ####### Unicode Test #######
+
+ from uuslug import slugify
+
+ txt = "This is a test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "___This is a test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "___This is a test___"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "This -- is a ## test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = '影師嗎'
+ r = slugify(txt)
+ self.assertEqual(r, "ying-shi-ma")
+
+ txt = 'C\'est déjà l\'été.'
+ r = slugify(txt)
+ self.assertEqual(r, "c-est-deja-l-ete")
+
+ txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
+ r = slugify(txt)
+ self.assertEqual(r, "nin-hao-wo-shi-zhong-guo-ren")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'Компьютер'
+ r = slugify(txt)
+ self.assertEqual(r, "kompiuter")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=9)
+ self.assertEqual(r, "jaja-lol")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=15)
+ self.assertEqual(r, "jaja-lol-mememe")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=50)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=15, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=17, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=18, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=19, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=20, word_boundary=True, separator=".")
+ self.assertEqual(r, "jaja.lol.mememeoo.a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=20, word_boundary=True, separator="ZZZZZZ")
+ self.assertEqual(r, "jajaZZZZZZlolZZZZZZmememeooZZZZZZa")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=13, word_boundary=True, save_order=True)
+ self.assertEqual(r, "one-two-three")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=13, word_boundary=True, save_order=False)
+ self.assertEqual(r, "one-two-three")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=12, word_boundary=True, save_order=False)
+ self.assertEqual(r, "one-two-four")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=12, word_boundary=True, save_order=True)
+ self.assertEqual(r, "one-two")
+
+ txt = 'this has a stopword'
+ r = slugify(txt, stopwords=['stopword'])
+ self.assertEqual(r, 'this-has-a')
+
+ txt = 'the quick brown fox jumps over the lazy dog'
+ r = slugify(txt, stopwords=['the'])
+ self.assertEqual(r, 'quick-brown-fox-jumps-over-lazy-dog')
+
+ txt = 'Foo A FOO B foo C'
+ r = slugify(txt, stopwords=['foo'])
+ self.assertEqual(r, 'a-b-c')
+
+ txt = 'Foo A FOO B foo C'
+ r = slugify(txt, stopwords=['FOO'])
+ self.assertEqual(r, 'a-b-c')
+
+ txt = 'the quick brown fox jumps over the lazy dog in a hurry'
+ r = slugify(txt, stopwords=['the', 'in', 'a', 'hurry'])
+ self.assertEqual(r, 'quick-brown-fox-jumps-over-lazy-dog')
+
+
+ ####### Uniqueness Test #######
+
+ from django.db import models
+ from uuslug import uuslug
+
+ # Override your object's save method with something like this (models.py)
+ class CoolSlug(models.Model):
+ name = models.CharField(max_length=100)
+ slug = models.CharField(max_length=200)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self)
+ super(CoolSlug, self).save(*args, **kwargs)
+
+ # Note: You can also specify the start number.
+ # Example:
+ self.slug = uuslug(self.name, instance=self, start_no=2)
+ # the second slug should start with "-2" instead of "-1"
+
+ name = "john"
+ c = CoolSlug.objects.create(name=name)
+ c.save()
+ print(c.slug) # => "john"
+
+ c1 = CoolSlug.objects.create(name=name)
+ c1.save()
+ print(c1.slug) # => "john-1"
+
+ c2 = CoolSlug.objects.create(name=name)
+ c2.save()
+ print(c2.slug) # => "john-2"
+
+
+ # If you need truncation of your slug to exact length, here is an example
+ class SmartTruncatedSlug(models.Model):
+ name = models.CharField(max_length=19)
+ slug = models.CharField(max_length=10)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self, max_length=10)
+ super(SmartTruncatedSlug, self).save(*args, **kwargs)
+
+ # If you need automatic truncation of your slug, here is an example
+ class AutoTruncatedSlug(models.Model):
+ name = models.CharField(max_length=19)
+ slug = models.CharField(max_length=19)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self)
+ super(SmartTruncatedSlug, self).save(*args, **kwargs)
+```
+
+# Running the tests
+
+To run the tests against the current environment:
+
+ python manage.py test
+
+# License
+
+Released under a ([BSD](LICENSE.md)) license.
+
+# Version
+
+X.Y.Z Version
+
+ `MAJOR` version -- when you make incompatible API changes,
+ `MINOR` version -- when you add functionality in a backwards-compatible manner, and
+ `PATCH` version -- when you make backwards-compatible bug fixes.
+
+[status-image]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml/badge.svg
+[status-link]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml
+[status-image]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml/badge.svg
+[version-image]: https://img.shields.io/pypi/v/django-uuslug.svg
+[version-link]: https://pypi.python.org/pypi/django-uuslug
+[coverage-image]: https://coveralls.io/repos/un33k/django-uuslug/badge.svg
+[coverage-link]: https://coveralls.io/r/un33k/django-uuslug
+[download-image]: https://img.shields.io/pypi/dm/django-uuslug.svg
+[download-link]: https://pypi.python.org/pypi/django-uuslug
+
+# Sponsors
+
+[Neekware Inc.](https://github.com/neekware)
+
+
+
+
+%package -n python3-django-uuslug
+Summary: A Django slugify application that also handles Unicode
+Provides: python-django-uuslug
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+%description -n python3-django-uuslug
+# Django Uuslug
+
+**A Django slugify application that guarantees `Uniqueness` and handles `Unicode`**
+
+[![status-image]][status-link]
+[![version-image]][version-link]
+[![coverage-image]][coverage-link]
+
+# Overview
+
+In short: UUSlug == (`U`nique + `U`nicode) Slug
+
+# How to install
+
+ 1. easy_install django-uuslug
+ 2. pip install django-uuslug
+ 3. git clone http://github.com/un33k/django-uuslug
+ a. cd django-uuslug
+ b. run python setup.py
+ 4. wget https://github.com/un33k/django-uuslug/zipball/master
+ a. unzip the downloaded file
+ b. cd into django-uuslug-* directory
+ c. run python setup.py
+ 5. pip install -e git+https://github.com/un33k/django-uuslug#egg=django-uuslug
+
+# How to use
+
+```python
+
+ ####### Unicode Test #######
+
+ from uuslug import slugify
+
+ txt = "This is a test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "___This is a test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "___This is a test___"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "This -- is a ## test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = '影師嗎'
+ r = slugify(txt)
+ self.assertEqual(r, "ying-shi-ma")
+
+ txt = 'C\'est déjà l\'été.'
+ r = slugify(txt)
+ self.assertEqual(r, "c-est-deja-l-ete")
+
+ txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
+ r = slugify(txt)
+ self.assertEqual(r, "nin-hao-wo-shi-zhong-guo-ren")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'Компьютер'
+ r = slugify(txt)
+ self.assertEqual(r, "kompiuter")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=9)
+ self.assertEqual(r, "jaja-lol")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=15)
+ self.assertEqual(r, "jaja-lol-mememe")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=50)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=15, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=17, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=18, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=19, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=20, word_boundary=True, separator=".")
+ self.assertEqual(r, "jaja.lol.mememeoo.a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=20, word_boundary=True, separator="ZZZZZZ")
+ self.assertEqual(r, "jajaZZZZZZlolZZZZZZmememeooZZZZZZa")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=13, word_boundary=True, save_order=True)
+ self.assertEqual(r, "one-two-three")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=13, word_boundary=True, save_order=False)
+ self.assertEqual(r, "one-two-three")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=12, word_boundary=True, save_order=False)
+ self.assertEqual(r, "one-two-four")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=12, word_boundary=True, save_order=True)
+ self.assertEqual(r, "one-two")
+
+ txt = 'this has a stopword'
+ r = slugify(txt, stopwords=['stopword'])
+ self.assertEqual(r, 'this-has-a')
+
+ txt = 'the quick brown fox jumps over the lazy dog'
+ r = slugify(txt, stopwords=['the'])
+ self.assertEqual(r, 'quick-brown-fox-jumps-over-lazy-dog')
+
+ txt = 'Foo A FOO B foo C'
+ r = slugify(txt, stopwords=['foo'])
+ self.assertEqual(r, 'a-b-c')
+
+ txt = 'Foo A FOO B foo C'
+ r = slugify(txt, stopwords=['FOO'])
+ self.assertEqual(r, 'a-b-c')
+
+ txt = 'the quick brown fox jumps over the lazy dog in a hurry'
+ r = slugify(txt, stopwords=['the', 'in', 'a', 'hurry'])
+ self.assertEqual(r, 'quick-brown-fox-jumps-over-lazy-dog')
+
+
+ ####### Uniqueness Test #######
+
+ from django.db import models
+ from uuslug import uuslug
+
+ # Override your object's save method with something like this (models.py)
+ class CoolSlug(models.Model):
+ name = models.CharField(max_length=100)
+ slug = models.CharField(max_length=200)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self)
+ super(CoolSlug, self).save(*args, **kwargs)
+
+ # Note: You can also specify the start number.
+ # Example:
+ self.slug = uuslug(self.name, instance=self, start_no=2)
+ # the second slug should start with "-2" instead of "-1"
+
+ name = "john"
+ c = CoolSlug.objects.create(name=name)
+ c.save()
+ print(c.slug) # => "john"
+
+ c1 = CoolSlug.objects.create(name=name)
+ c1.save()
+ print(c1.slug) # => "john-1"
+
+ c2 = CoolSlug.objects.create(name=name)
+ c2.save()
+ print(c2.slug) # => "john-2"
+
+
+ # If you need truncation of your slug to exact length, here is an example
+ class SmartTruncatedSlug(models.Model):
+ name = models.CharField(max_length=19)
+ slug = models.CharField(max_length=10)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self, max_length=10)
+ super(SmartTruncatedSlug, self).save(*args, **kwargs)
+
+ # If you need automatic truncation of your slug, here is an example
+ class AutoTruncatedSlug(models.Model):
+ name = models.CharField(max_length=19)
+ slug = models.CharField(max_length=19)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self)
+ super(SmartTruncatedSlug, self).save(*args, **kwargs)
+```
+
+# Running the tests
+
+To run the tests against the current environment:
+
+ python manage.py test
+
+# License
+
+Released under a ([BSD](LICENSE.md)) license.
+
+# Version
+
+X.Y.Z Version
+
+ `MAJOR` version -- when you make incompatible API changes,
+ `MINOR` version -- when you add functionality in a backwards-compatible manner, and
+ `PATCH` version -- when you make backwards-compatible bug fixes.
+
+[status-image]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml/badge.svg
+[status-link]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml
+[status-image]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml/badge.svg
+[version-image]: https://img.shields.io/pypi/v/django-uuslug.svg
+[version-link]: https://pypi.python.org/pypi/django-uuslug
+[coverage-image]: https://coveralls.io/repos/un33k/django-uuslug/badge.svg
+[coverage-link]: https://coveralls.io/r/un33k/django-uuslug
+[download-image]: https://img.shields.io/pypi/dm/django-uuslug.svg
+[download-link]: https://pypi.python.org/pypi/django-uuslug
+
+# Sponsors
+
+[Neekware Inc.](https://github.com/neekware)
+
+
+
+
+%package help
+Summary: Development documents and examples for django-uuslug
+Provides: python3-django-uuslug-doc
+%description help
+# Django Uuslug
+
+**A Django slugify application that guarantees `Uniqueness` and handles `Unicode`**
+
+[![status-image]][status-link]
+[![version-image]][version-link]
+[![coverage-image]][coverage-link]
+
+# Overview
+
+In short: UUSlug == (`U`nique + `U`nicode) Slug
+
+# How to install
+
+ 1. easy_install django-uuslug
+ 2. pip install django-uuslug
+ 3. git clone http://github.com/un33k/django-uuslug
+ a. cd django-uuslug
+ b. run python setup.py
+ 4. wget https://github.com/un33k/django-uuslug/zipball/master
+ a. unzip the downloaded file
+ b. cd into django-uuslug-* directory
+ c. run python setup.py
+ 5. pip install -e git+https://github.com/un33k/django-uuslug#egg=django-uuslug
+
+# How to use
+
+```python
+
+ ####### Unicode Test #######
+
+ from uuslug import slugify
+
+ txt = "This is a test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "___This is a test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "___This is a test___"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = "This -- is a ## test ---"
+ r = slugify(txt)
+ self.assertEqual(r, "this-is-a-test")
+
+ txt = '影師嗎'
+ r = slugify(txt)
+ self.assertEqual(r, "ying-shi-ma")
+
+ txt = 'C\'est déjà l\'été.'
+ r = slugify(txt)
+ self.assertEqual(r, "c-est-deja-l-ete")
+
+ txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
+ r = slugify(txt)
+ self.assertEqual(r, "nin-hao-wo-shi-zhong-guo-ren")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'Компьютер'
+ r = slugify(txt)
+ self.assertEqual(r, "kompiuter")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=9)
+ self.assertEqual(r, "jaja-lol")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=15)
+ self.assertEqual(r, "jaja-lol-mememe")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=50)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=15, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=17, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=18, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=19, word_boundary=True)
+ self.assertEqual(r, "jaja-lol-mememeoo-a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=20, word_boundary=True, separator=".")
+ self.assertEqual(r, "jaja.lol.mememeoo.a")
+
+ txt = 'jaja---lol-méméméoo--a'
+ r = slugify(txt, max_length=20, word_boundary=True, separator="ZZZZZZ")
+ self.assertEqual(r, "jajaZZZZZZlolZZZZZZmememeooZZZZZZa")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=13, word_boundary=True, save_order=True)
+ self.assertEqual(r, "one-two-three")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=13, word_boundary=True, save_order=False)
+ self.assertEqual(r, "one-two-three")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=12, word_boundary=True, save_order=False)
+ self.assertEqual(r, "one-two-four")
+
+ txt = 'one two three four five'
+ r = slugify(txt, max_length=12, word_boundary=True, save_order=True)
+ self.assertEqual(r, "one-two")
+
+ txt = 'this has a stopword'
+ r = slugify(txt, stopwords=['stopword'])
+ self.assertEqual(r, 'this-has-a')
+
+ txt = 'the quick brown fox jumps over the lazy dog'
+ r = slugify(txt, stopwords=['the'])
+ self.assertEqual(r, 'quick-brown-fox-jumps-over-lazy-dog')
+
+ txt = 'Foo A FOO B foo C'
+ r = slugify(txt, stopwords=['foo'])
+ self.assertEqual(r, 'a-b-c')
+
+ txt = 'Foo A FOO B foo C'
+ r = slugify(txt, stopwords=['FOO'])
+ self.assertEqual(r, 'a-b-c')
+
+ txt = 'the quick brown fox jumps over the lazy dog in a hurry'
+ r = slugify(txt, stopwords=['the', 'in', 'a', 'hurry'])
+ self.assertEqual(r, 'quick-brown-fox-jumps-over-lazy-dog')
+
+
+ ####### Uniqueness Test #######
+
+ from django.db import models
+ from uuslug import uuslug
+
+ # Override your object's save method with something like this (models.py)
+ class CoolSlug(models.Model):
+ name = models.CharField(max_length=100)
+ slug = models.CharField(max_length=200)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self)
+ super(CoolSlug, self).save(*args, **kwargs)
+
+ # Note: You can also specify the start number.
+ # Example:
+ self.slug = uuslug(self.name, instance=self, start_no=2)
+ # the second slug should start with "-2" instead of "-1"
+
+ name = "john"
+ c = CoolSlug.objects.create(name=name)
+ c.save()
+ print(c.slug) # => "john"
+
+ c1 = CoolSlug.objects.create(name=name)
+ c1.save()
+ print(c1.slug) # => "john-1"
+
+ c2 = CoolSlug.objects.create(name=name)
+ c2.save()
+ print(c2.slug) # => "john-2"
+
+
+ # If you need truncation of your slug to exact length, here is an example
+ class SmartTruncatedSlug(models.Model):
+ name = models.CharField(max_length=19)
+ slug = models.CharField(max_length=10)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self, max_length=10)
+ super(SmartTruncatedSlug, self).save(*args, **kwargs)
+
+ # If you need automatic truncation of your slug, here is an example
+ class AutoTruncatedSlug(models.Model):
+ name = models.CharField(max_length=19)
+ slug = models.CharField(max_length=19)
+
+ def __unicode__(self):
+ return self.name
+
+ def save(self, *args, **kwargs):
+ self.slug = uuslug(self.name, instance=self)
+ super(SmartTruncatedSlug, self).save(*args, **kwargs)
+```
+
+# Running the tests
+
+To run the tests against the current environment:
+
+ python manage.py test
+
+# License
+
+Released under a ([BSD](LICENSE.md)) license.
+
+# Version
+
+X.Y.Z Version
+
+ `MAJOR` version -- when you make incompatible API changes,
+ `MINOR` version -- when you add functionality in a backwards-compatible manner, and
+ `PATCH` version -- when you make backwards-compatible bug fixes.
+
+[status-image]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml/badge.svg
+[status-link]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml
+[status-image]: https://github.com/un33k/django-uuslug/actions/workflows/main.yml/badge.svg
+[version-image]: https://img.shields.io/pypi/v/django-uuslug.svg
+[version-link]: https://pypi.python.org/pypi/django-uuslug
+[coverage-image]: https://coveralls.io/repos/un33k/django-uuslug/badge.svg
+[coverage-link]: https://coveralls.io/r/un33k/django-uuslug
+[download-image]: https://img.shields.io/pypi/dm/django-uuslug.svg
+[download-link]: https://pypi.python.org/pypi/django-uuslug
+
+# Sponsors
+
+[Neekware Inc.](https://github.com/neekware)
+
+
+
+
+%prep
+%autosetup -n django-uuslug-2.0.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-uuslug -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri Feb 24 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..5597d9e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+4200434ceb6a6eb54a3239460d971401 django-uuslug-2.0.0.tar.gz