{ "info": { "author": "Tim Heap", "author_email": "tim@timheap.me", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "==============================================\ndjango-pronouns - Correctly address your users\n==============================================\n\nPronouns are tricky. Writing correspondence or copy with your users preferred pronoun in mind is even harder.\nWanting to break out of the gender binary damn near impossible - until now. ``django-pronouns`` is here to help!\n\nWhen a user is signing up, they can select their preferred pronouns (usually disguised as a gender option).\nThe usual suspects (s/he) are there, as well as more neutral ones (they, it, xir, etc). Using them in your\ncopy is as simple as working out which form you need, and ``django-pronouns`` will do the rest. Observe:\n\n.. code:: python\n\n\t>>> \"{{ user.pronoun.subject|title }} is awesome.\"\n\t\"She is awesome.\"\n\n\t>>> \"It is {{ user.name|pluralize }} birthday today. Go wish {{ user.pronoun.object }} a happy birthday!\"\n\t\"It is Tims birthday today. Go wish him happy birthday!\"\n\n\t>>> \"{{ user.name }} looked at {{ user.pronoun.reflexive }} in the mirror.\"\n\t\"Alex looked at himself in the mirror.\"\n\n\t>>> \"{{ user.pronoun.possessive_determiner|title }} stuff is on the table.\"\n\t\"Her stuff is on the table.\"\n\n\t>>> \"This guitar is {{ user.pronoun.possessive_pronoun }}.\"\n\t\"This guitar is hers.\"\n\nIf working out which form is too annoying, we can help there as well. Each of the five forms has a number of\naliases, consisting of the feminine and masculine forms joined with an underscore, as well as the (new) Spivak\nforms:\n\n* **Subject**: ``he_she``, ``shen_he``, ``ey``\n* **Object**: ``him_her``, ``her_him``, ``em``\n* **Reflexive**: ``himself_herself``, ``herself_himself``, ``emself``\n* **Possessive determiner**: ``his_her``, ``her_his``, ``eir``\n* **Possessive pronoun**: ``his_hers``, ``hers_his``, ``eirs``\n\nThe female and male pronouns are combined, as by themselves they are ambiguous. ``his`` may refer to either the\npossessive determiner, or the possessive pronoun, while ``her`` may refer to a possessive determiner or an\nobjective form. Spivak was chosen as it is one of the only forms that is unambiguous across all five forms.\n\nInstalling\n==========\n\nInstall via pip:\n\n.. code:: sh\n\n\t$ pip install django-pronouns\n\nAdd it to your ``INSTALLED_APPS`` in Django:\n\n.. code:: python\n\n\tINSTALLED_APPS = (\n\t\t# ...\n\t\t\"django_pronouns\",\n\t\t# ...\n\t)\n\nAnd finally, add the default pronoun set, if you want:\n\n.. code:: sh\n\n\t$ python manage.py loaddata pronouns\n\nYou can edit these pronouns, add more, or remove some later, via the administration area.\n\nUsing\n=====\n\nSimply add a ``ForeignKey`` link to the Pronoun model to add pronouns to any model. Pronouns work very well when coupled with a UserProfile:\n\n.. code:: python\n\n\tfrom django.db import models\n\tfrom django.contrib.auth.models import User\n\n\tfrom django_pronouns.models import Pronoun\n\n\tclass UserProfile(models.Model):\n\t\tuser = models.OneToOneField(User)\n\n\t\tname = models.CharField(max_length=255)\n\t\tdob = models.DateField()\n\t\tpronoun = models.ForeignKey(Pronoun)\n\nUse them like you would any other ForeignKey in forms.\n\nIn your templates, you can request any of the pronoun forms:\n\n.. code:: html+django\n\n\t{{ user.pronoun.subject|title }} is awesome.\n\n\tIt is {{ user.name|pluralize }} birthday today. Go wish {{ user.pronoun.object }} happy birthday!\n\n\t{{ user.name }} looked at {{ user.pronoun.reflexive }} in the mirror.\n\n\t{{ user.pronoun.possessive_determiner|title }} stuff is on the table.\n\n\tThis guitar is {{ user.pronoun.possessive_pronoun }}.\n\nA bunch of shortcut have also been provided, as working out which form to use is annoying. Each of the five forms has a\nnumber of aliases, consisting of the feminine and masculine forms joined with an underscore, as well as the Spivak\nforms:\n\n* **Subject**: ``he_she``, ``she_he``, ``ey``\n* **Object**: ``him_her``, ``her_him``, ``em``\n* **Reflexive**: ``himself_herself``, ``herself_himself``, ``emself``\n* **Possessive determiner**: ``his_her``, ``her_his``, ``eir``\n* **Possessive pronoun**: ``his_hers``, ``hers_his``, ``eirs``\n\nUsing them is the same as using the names forms:\n\n.. code:: html+django\n\n\t{{ user.pronoun.she_he|title }} is awesome.\n\n\tIt is {{ user.name|pluralize }} birthday today. Go wish {{ user.pronoun.him_her }} a happy birthday!\n\n\t{{ user.name }} looked at {{ user.pronoun.emself }} in the mirror.\n\n\t{{ user.pronoun.his_her|title }} stuff is on the table.\n\n\tThis guitar is {{ user.pronoun.hers_his }}.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/tim_heap/django-pronouns", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "django-pronouns", "package_url": "https://pypi.org/project/django-pronouns/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-pronouns/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/tim_heap/django-pronouns" }, "release_url": "https://pypi.org/project/django-pronouns/0.3.0/", "requires_dist": null, "requires_python": null, "summary": "Generic pronoun handling for Django applications", "version": "0.3.0" }, "last_serial": 1240805, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d7421e15d92fe4bf2513e4f664baa222", "sha256": "0ac68d8e003252af1b9e3a07ebfb1d875c2728a46646168a72c96060b63743c9" }, "downloads": -1, "filename": "django-pronouns-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d7421e15d92fe4bf2513e4f664baa222", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1488, "upload_time": "2012-08-03T07:08:45", "url": "https://files.pythonhosted.org/packages/87/07/8fc5cccdf0fd57acb42b697c0298be3b03d73c573dee4a2075359a714464/django-pronouns-0.1.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "4ad443d6f15715a39d43751e2fb1c0c4", "sha256": "afdb0dd7cda80ac7ba3fec53cf472f97242f5692620036cc04f4ae8e14ed47d4" }, "downloads": -1, "filename": "django-pronouns-0.3.0.tar.gz", "has_sig": false, "md5_digest": "4ad443d6f15715a39d43751e2fb1c0c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3676, "upload_time": "2014-09-28T21:26:36", "url": "https://files.pythonhosted.org/packages/c1/b4/b425f6db18cd088e7b3a8caa8c2fe556067a20b8e982d3246dac603b33cb/django-pronouns-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4ad443d6f15715a39d43751e2fb1c0c4", "sha256": "afdb0dd7cda80ac7ba3fec53cf472f97242f5692620036cc04f4ae8e14ed47d4" }, "downloads": -1, "filename": "django-pronouns-0.3.0.tar.gz", "has_sig": false, "md5_digest": "4ad443d6f15715a39d43751e2fb1c0c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3676, "upload_time": "2014-09-28T21:26:36", "url": "https://files.pythonhosted.org/packages/c1/b4/b425f6db18cd088e7b3a8caa8c2fe556067a20b8e982d3246dac603b33cb/django-pronouns-0.3.0.tar.gz" } ] }