Browse Source

Refs #23919 -- Stopped inheriting from object to define new style classes.

Tests and docs complement to cecc079168e8669138728d31611ff3a1e7eb3a9f.
Mariusz Felisiak 7 years ago
parent
commit
081e787160

+ 1 - 1
docs/howto/custom-model-fields.txt

@@ -36,7 +36,7 @@ You only need to know that 52 cards are dealt out equally to four players, who
 are traditionally called *north*, *east*, *south* and *west*.  Our class looks
 something like this::
 
-    class Hand(object):
+    class Hand:
         """A hand of cards (bridge style)"""
 
         def __init__(self, north, east, south, west):

+ 1 - 1
docs/howto/outputting-csv.txt

@@ -71,7 +71,7 @@ the assembly and transmission of a large CSV file::
 
     from django.http import StreamingHttpResponse
 
-    class Echo(object):
+    class Echo:
         """An object that implements just the write method of the file-like
         interface.
         """

+ 1 - 1
docs/howto/writing-migrations.txt

@@ -42,7 +42,7 @@ method of database routers as ``**hints``:
 .. snippet::
     :filename: myapp/dbrouters.py
 
-    class MyRouter(object):
+    class MyRouter:
 
         def allow_migrate(self, db, app_label, model_name=None, **hints):
             if 'target_db' in hints:

+ 1 - 1
docs/internals/contributing/writing-code/coding-style.txt

@@ -151,7 +151,7 @@ Imports
       CONSTANT = 'foo'
 
 
-      class Example(object):
+      class Example:
           # ...
 
 * Use convenience imports whenever available. For example, do this::

+ 3 - 3
docs/intro/contributing.txt

@@ -427,7 +427,7 @@ Navigate to the ``django/django/forms/`` folder and open the ``forms.py`` file.
 Find the ``BaseForm`` class on line 72 and add the ``prefix`` class attribute
 right after the ``field_order`` attribute::
 
-    class BaseForm(object):
+    class BaseForm:
         # This is the main implementation of all the Form logic. Note that this
         # class is different than Form. See the comments by the Form class for
         # more information. Any improvements to the form API should be made to
@@ -529,7 +529,7 @@ Use the arrow keys to move up and down.
     index 509709f..d1370de 100644
     --- a/django/forms/forms.py
     +++ b/django/forms/forms.py
-    @@ -75,6 +75,7 @@ class BaseForm(object):
+    @@ -75,6 +75,7 @@ class BaseForm:
          # information. Any improvements to the form API should be made to *this*
          # class, not to the Form class.
          field_order = None
@@ -537,7 +537,7 @@ Use the arrow keys to move up and down.
 
          def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
                       initial=None, error_class=ErrorList, label_suffix=None,
-    @@ -83,7 +84,8 @@ class BaseForm(object):
+    @@ -83,7 +84,8 @@ class BaseForm:
              self.data = data or {}
              self.files = files or {}
              self.auto_id = auto_id

+ 4 - 4
docs/topics/auth/customizing.txt

@@ -100,14 +100,14 @@ and returns a user object.
 The ``authenticate`` method takes a ``request`` argument and credentials as
 keyword arguments. Most of the time, it'll just look like this::
 
-    class MyBackend(object):
+    class MyBackend:
         def authenticate(self, request, username=None, password=None):
             # Check the username/password and return a user.
             ...
 
 But it could also authenticate a token, like so::
 
-    class MyBackend(object):
+    class MyBackend:
         def authenticate(self, request, token=None):
             # Check the token and return a user.
             ...
@@ -135,7 +135,7 @@ object the first time a user authenticates::
     from django.contrib.auth.hashers import check_password
     from django.contrib.auth.models import User
 
-    class SettingsBackend(object):
+    class SettingsBackend:
         """
         Authenticate against the settings ADMIN_LOGIN and ADMIN_PASSWORD.
 
@@ -198,7 +198,7 @@ will immediately fail and Django won't check the backends that follow.
 The simple backend above could implement permissions for the magic admin
 fairly simply::
 
-    class SettingsBackend(object):
+    class SettingsBackend:
         ...
         def has_perm(self, user_obj, perm, obj=None):
             return user_obj.username == settings.ADMIN_LOGIN

+ 1 - 1
docs/topics/auth/passwords.txt

@@ -648,7 +648,7 @@ Here's a basic example of a validator, with one optional setting::
     from django.core.exceptions import ValidationError
     from django.utils.translation import gettext as _
 
-    class MinimumLengthValidator(object):
+    class MinimumLengthValidator:
         def __init__(self, min_length=8):
             self.min_length = min_length
 

+ 1 - 1
docs/topics/cache.txt

@@ -238,7 +238,7 @@ operations to ``cache_replica``, and all write operations to
 ``cache_primary``. The cache table will only be synchronized onto
 ``cache_primary``::
 
-    class CacheRouter(object):
+    class CacheRouter:
         """A router to control all database cache operations"""
 
         def db_for_read(self, model, **hints):

+ 1 - 1
docs/topics/class-based-views/generic-editing.txt

@@ -233,7 +233,7 @@ works for AJAX requests as well as 'normal' form POSTs::
     from django.views.generic.edit import CreateView
     from myapp.models import Author
 
-    class AjaxableResponseMixin(object):
+    class AjaxableResponseMixin:
         """
         Mixin to add AJAX support to a form.
         Must be used with an object-based FormView (e.g. CreateView)

+ 1 - 1
docs/topics/class-based-views/mixins.txt

@@ -603,7 +603,7 @@ For example, a simple JSON mixin might look something like this::
 
     from django.http import JsonResponse
 
-    class JSONResponseMixin(object):
+    class JSONResponseMixin:
         """
         A mixin that can be used to render a JSON response.
         """

+ 2 - 2
docs/topics/db/multi-db.txt

@@ -295,7 +295,7 @@ databases::
 Now we'll need to handle routing. First we want a router that knows to
 send queries for the ``auth`` app to ``auth_db``::
 
-    class AuthRouter(object):
+    class AuthRouter:
         """
         A router to control all database operations on models in the
         auth application.
@@ -340,7 +340,7 @@ from::
 
     import random
 
-    class PrimaryReplicaRouter(object):
+    class PrimaryReplicaRouter:
         def db_for_read(self, model, **hints):
             """
             Reads go to a randomly-chosen replica.

+ 1 - 1
docs/topics/http/middleware.txt

@@ -43,7 +43,7 @@ A middleware can be written as a function that looks like this::
 
 Or it can be written as a class whose instances are callable, like this::
 
-    class SimpleMiddleware(object):
+    class SimpleMiddleware:
         def __init__(self, get_response):
             self.get_response = get_response
             # One-time configuration and initialization.

+ 1 - 1
docs/topics/migrations.txt

@@ -717,7 +717,7 @@ serializable, you can use the ``@deconstructible`` class decorator from
     from django.utils.deconstruct import deconstructible
 
     @deconstructible
-    class MyCustomClass(object):
+    class MyCustomClass:
 
         def __init__(self, foo=1):
             self.foo = foo

+ 1 - 1
docs/topics/signals.txt

@@ -243,7 +243,7 @@ arguments as you like.
 
 For example, here's how sending our ``pizza_done`` signal might look::
 
-    class PizzaStore(object):
+    class PizzaStore:
         ...
 
         def send_pizza(self, toppings, size):

+ 1 - 1
docs/topics/templates.txt

@@ -531,7 +531,7 @@ fictional ``foobar`` template library::
                 raise TemplateSyntaxError(exc.args)
 
 
-    class Template(object):
+    class Template:
 
         def __init__(self, template):
             self.template = template

+ 1 - 1
tests/backends/test_ddl_references.py

@@ -122,7 +122,7 @@ class ForeignKeyNameTests(IndexNameTests):
         )
 
 
-class MockReference(object):
+class MockReference:
     def __init__(self, representation, referenced_tables, referenced_columns):
         self.representation = representation
         self.referenced_tables = referenced_tables

+ 1 - 1
tests/migrations/test_writer.py

@@ -40,7 +40,7 @@ class Money(decimal.Decimal):
         )
 
 
-class TestModel1(object):
+class TestModel1:
     def upload_to(self):
         return '/somewhere/dynamic/'
     thing = models.FileField(upload_to=upload_to)

+ 1 - 1
tests/model_meta/models.py

@@ -9,7 +9,7 @@ class Relation(models.Model):
     pass
 
 
-class InstanceOnlyDescriptor(object):
+class InstanceOnlyDescriptor:
     def __get__(self, instance, cls=None):
         if instance is None:
             raise AttributeError('Instance only')