Commit Graph

8002 Commits

Author SHA1 Message Date
Ran Benita
1673be2302 Inline _readable_fields and _writable_fields
This is slightly faster and easier to follow.
2019-05-09 10:16:42 +03:00
Ran Benita
849136a684 Don't cache _readable_fields and _writable_fields
It might be useful for a serializer with many many fields which uses
read_only and write_only on a large percentage of the fields. But the
memory usage and statefulness it adds are not worth it for the common
case.
2019-05-09 10:16:42 +03:00
Ran Benita
21dc57b46c Replace usage of BindingDict and remove it
BindingDict ensures that .bind() is called on each field. However this
is easily ensured without it.

One thing that BindingDict might have helped with is to ensure .bind()
is called even if a field is added after the fact to the dict,
externally. However such use is already broken since _readable_fields
and _writable fields use the fields and are cached. Doing so sounds like
a bad idea, anyway.
2019-05-09 10:16:42 +03:00
Ran Benita
db81a1735e Simplify Serializer.fields with @cached_property 2019-05-09 10:16:42 +03:00
Ran Benita
5acdf51c7d Simplify is_simple_callable() and make it faster and more general
This function shows up in some profiles.

callable() is a fast builtin function. It covers the existing checks and
all others as well. inspect.signature() accepts any callable.
2019-05-09 10:16:42 +03:00
Tim Gates
564faddb0f Make Markdown 2.6 the minimum compatible version (#6576) 2019-05-08 19:34:38 -07:00
Xavier Ordoquy
2e7ab9d6c6
Merge pull request #6654 from jorrit-wehelp/patch-1
Fix test with STRICT_JSON setting
2019-05-08 18:14:27 +02:00
Jorrit
3a21b390ff
Fix test with STRICT_JSON setting
Test is not overriding the intended setting, should be nested inside settings.REST_FRAMEWORK
2019-05-08 16:48:45 +02:00
Andreu Vallbona Plazas
be5a9f78f3 Added note on serializing extra fields from Through Model (#6652)
* adding small clarification on ManyToManyFields with a Through Model

As pointed here: https://github.com/encode/django-rest-framework/pull/6585#issuecomment-490145334 I suggest to add the small clarification to work with **ManyToManyFields with a Through Model**.

* Remove blank line.
2019-05-07 20:01:24 +02:00
Serkan Hosca
680ed8aa8b Add django-rest-witchcraft to third party packages (#6587) 2019-05-06 16:19:51 -07:00
Asif Saif Uddin
50a24d6d7f Drop Python 3.4 support (#6620) 2019-05-06 11:35:58 -07:00
Aart Goossens
0f819d844d Remove recommendation for DRF Docs (#6580)
Since DRF Docs is not compatible with the latest version of DRF (or Django?; related issue: https://github.com/manosim/django-rest-framework-docs/issues/180) and the latest release is almost 3 years ago I suggest to remove the recommendation for this package.
2019-05-03 15:26:06 -07:00
Jimmy Merrild Krag
14fad0d690 Fix capitalization, markdown syntax link in docs (#6621)
The `Pygments` and `Markdown` python packages have first letter capital.
Fixed link to markdown syntax to go directly to the syntax page.
2019-05-02 18:17:33 -07:00
Jon Dufresne
1e519486e1 Fixup isort command/config (#6639) 2019-05-01 17:42:10 -07:00
Afnarel
67d2eabd6c Fix username in template for custom user models (#6612) 2019-05-01 17:23:23 -07:00
Jon Dufresne
f669395dd8 Fix BytesWarning in test_schemas.py (#6638) 2019-05-01 16:47:01 -07:00
Jon Dufresne
e16273a658 Simplify import_from_string() with Django's import_string() (#6617) 2019-05-01 15:32:28 -07:00
vu3jej
1c976f2ac8 Fix typo in docs (#6628) 2019-05-01 15:24:38 -07:00
Jon Dufresne
059947028b Update docs on django-oauth-toolkit (#6618)
Since django-oauth-toolkit 1.2.0 (2018-06-03), the package requires
Python 3.4+.

https://github.com/jazzband/django-oauth-toolkit/blob/master/CHANGELOG.md#120-2018-06-03
2019-05-01 07:52:26 +02:00
Jon Dufresne
5e1619bc9e Remove unnecessary assignments immediately before a return statement (#6619)
Cleans up the pattern:

    ...
    myvar = <expression>
    return myvar

To:

    ...
    return <expression>
2019-05-01 07:51:54 +02:00
Jon Dufresne
565794bedc Replace virtualenv references with venv in the docs (#6636)
On Python 3, creating virtual environments is available through the
stdlib module venv.

https://docs.python.org/3/library/venv.html
2019-05-01 07:51:02 +02:00
Jon Dufresne
8687f6135f Remove references to Python 2 from the docs (#6635) 2019-05-01 07:50:28 +02:00
Jon Dufresne
3f19e66d9f Replace all usage ugettext functions with the non-u versions (#6634)
On Python 3, the ugettext functions are a simple aliases of their non-u
counterparts (the 'u' represents Python 2 unicode type). Starting with
Django 3.0, the u versions will be deprecated.

https://docs.djangoproject.com/en/dev/releases/3.0/#id2

> django.utils.translation.ugettext(), ugettext_lazy(), ugettext_noop(),
> ungettext(), and ungettext_lazy() are deprecated in favor of the
> functions that they’re aliases for:
> django.utils.translation.gettext(), gettext_lazy(), gettext_noop(),
> ngettext(), and ngettext_lazy().
2019-05-01 07:49:54 +02:00
Jon Dufresne
513a49d63b Drop default 'utf-8' to .encode()/.decode() (#6633)
A Python 3 cleanup that allows for less noise in the code.

https://docs.python.org/3/library/stdtypes.html#bytes.decode
https://docs.python.org/3/library/stdtypes.html#str.encode
2019-05-01 07:49:16 +02:00
Jon Dufresne
734ca7ca8c Remove unneeded repo() test (#6632) 2019-05-01 07:46:30 +02:00
Jon Dufresne
b4e80ac721 Remove unnecessary coerce to str() in test_decorators.py (#6637)
Was added only for Python 2 compatibility.
2019-05-01 07:45:16 +02:00
Jon Dufresne
ff86f09f74 Remove unnecessary compatibility shims from rest_framework/compat.py (#6631)
For Python 3, collections.abc.Mapping and collections.abc.MutableMapping
are always available from the stdlib.
2019-05-01 07:44:33 +02:00
Carlton Gibson
0407a0df8a
Dropped Python 2 compatibility. (#6615)
Thanks to Jon Dufresne (@jdufresne) for review.

Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
Co-authored-by: Rizwan Mansuri <Rizwan@webbyfox.com>
2019-04-30 17:53:44 +02:00
Xavier Ordoquy
5c992baf32
Merge pull request #6627 from vu3jej/docs
Correct misspelled class name in validators docs
2019-04-30 14:55:27 +02:00
Jithesh Eriyakkadan Janardhanan
908236a576 Correct misspelled class name 2019-04-30 18:01:17 +05:30
Jon Dufresne
1a0a8dde00 Correct misspelled module 'typing' (#6616)
https://docs.python.org/3/library/typing.html
2019-04-30 09:44:01 +01:00
Carlton Gibson
7f16ed7727 Correct version number in release notes. 2019-04-29 16:35:17 +02:00
Carlton Gibson
83d09c7bc5
Update version and release notes for v3.9.3. 2019-04-29 16:30:44 +02:00
Carlton Gibson
bf9859de51
Adjust django-guardian check for PY2 compatible version. (#6613) 2019-04-29 16:08:39 +02:00
Xavier Ordoquy
59a5a5a868
Merge pull request #6611 from dsanders11/patch-1
Fix typo in docs
2019-04-27 22:04:07 +02:00
David Sanders
95e28b2252
Fix typo in docs 2019-04-27 12:07:49 -07:00
Dmitry Alimov
1ac0f63aa9 Fix private attributes ignore in documentation (#6601) 2019-04-21 17:27:13 +01:00
Xavier Ordoquy
db65282163
Merge pull request #6588 from rawteech/master
Add some words about `extra_kwargs` and explicitly defined fields.
2019-04-15 02:31:07 +02:00
Billy Rotich
f8c4e5079e Minor documentation fixes (#6581) 2019-04-13 15:02:19 +02:00
Asif Saif Uddin
29cbe574a3 Fix DeprecationWarning in tests (#6551) 2019-04-05 14:27:07 -07:00
jozo
cceb416098 Link DRF Condition (cache headers) third party package. (#6557) 2019-04-04 11:31:08 +02:00
Carlton Gibson
b1122a441a
Update tox to use Django 2.2 final. (#6556) 2019-04-01 16:30:26 +02:00
Matt Hegarty
f34a0a4e6a Minor documentation fixes (#6543) 2019-03-28 23:32:25 -07:00
Asif Saif Uddin
13b9b0fb98 Upgraded to Django 2.2rc1 on Tox (#6544) 2019-03-28 21:19:06 +01:00
Jabi
ac19c69539 Corrected typo in permissions docs. (#6540) 2019-03-28 11:45:13 +01:00
Turfa Auliarachman
d784e42207 Fix basename deprecation warnings in tests (#6529) 2019-03-25 10:42:27 -07:00
Patrickcai
b25d245b89 Merge multiple isinstance() calls to one (#6513)
* Merge multiple isinstance() calls to one

See https://docs.python.org/3/library/functions.html#isinstance

* Fix `)` mismatch

Fix `)` mismatch
2019-03-22 12:29:45 +00:00
Ryan Siemens
d2d1888217 Document DateTimeField default_timezone argument (#6469) 2019-03-12 21:15:12 -07:00
Matt Hegarty
6f24c21cfb Fixed typo: /Janurary/January/ (#6506) 2019-03-12 12:46:02 +01:00
Tom Christie
9bfb58746e
Update README.md 2019-03-07 11:02:43 +00:00