summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2019-09-05 16:10:21 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-09-10 12:01:00 +0200
commitb47bb4c4a74f926111bdad4a6daae14ceed6f2dd (patch)
tree3acf489224640e3a24105ac7f9ee27f7b78e8a82
parent416c584cabd62a13985f1569ccf019c8b351f0a5 (diff)
downloaddjango-b47bb4c4a74f926111bdad4a6daae14ceed6f2dd.tar.gz
Refs #29598 -- Removed FloatRangeField per deprecation timeline.
-rw-r--r--django/contrib/postgres/fields/ranges.py17
-rw-r--r--django/contrib/postgres/forms/ranges.py16
-rw-r--r--docs/ref/checks.txt2
-rw-r--r--docs/ref/contrib/postgres/fields.txt13
-rw-r--r--docs/ref/contrib/postgres/forms.txt13
-rw-r--r--docs/releases/3.1.txt3
-rw-r--r--tests/postgres_tests/test_ranges.py14
7 files changed, 5 insertions, 73 deletions
diff --git a/django/contrib/postgres/fields/ranges.py b/django/contrib/postgres/fields/ranges.py
index a4fa20adf3..953d02ac65 100644
--- a/django/contrib/postgres/fields/ranges.py
+++ b/django/contrib/postgres/fields/ranges.py
@@ -11,7 +11,6 @@ from .utils import AttributeSetter
__all__ = [
'RangeField', 'IntegerRangeField', 'BigIntegerRangeField',
'DecimalRangeField', 'DateTimeRangeField', 'DateRangeField',
- 'FloatRangeField',
'RangeBoundary', 'RangeOperators',
]
@@ -135,22 +134,6 @@ class DecimalRangeField(RangeField):
return 'numrange'
-class FloatRangeField(RangeField):
- system_check_deprecated_details = {
- 'msg': (
- 'FloatRangeField is deprecated and will be removed in Django 3.1.'
- ),
- 'hint': 'Use DecimalRangeField instead.',
- 'id': 'fields.W902',
- }
- base_field = models.FloatField
- range_type = NumericRange
- form_field = forms.FloatRangeField
-
- def db_type(self, connection):
- return 'numrange'
-
-
class DateTimeRangeField(RangeField):
base_field = models.DateTimeField
range_type = DateTimeTZRange
diff --git a/django/contrib/postgres/forms/ranges.py b/django/contrib/postgres/forms/ranges.py
index c36bec8479..47a16a1bbd 100644
--- a/django/contrib/postgres/forms/ranges.py
+++ b/django/contrib/postgres/forms/ranges.py
@@ -1,16 +1,13 @@
-import warnings
-
from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange
from django import forms
from django.core import exceptions
from django.forms.widgets import MultiWidget
-from django.utils.deprecation import RemovedInDjango31Warning
from django.utils.translation import gettext_lazy as _
__all__ = [
'BaseRangeField', 'IntegerRangeField', 'DecimalRangeField',
- 'DateTimeRangeField', 'DateRangeField', 'FloatRangeField', 'RangeWidget',
+ 'DateTimeRangeField', 'DateRangeField', 'RangeWidget',
]
@@ -75,17 +72,6 @@ class DecimalRangeField(BaseRangeField):
range_type = NumericRange
-class FloatRangeField(DecimalRangeField):
- base_field = forms.FloatField
-
- def __init__(self, **kwargs):
- warnings.warn(
- 'FloatRangeField is deprecated in favor of DecimalRangeField.',
- RemovedInDjango31Warning, stacklevel=2,
- )
- super().__init__(**kwargs)
-
-
class DateTimeRangeField(BaseRangeField):
default_error_messages = {'invalid': _('Enter two valid date/times.')}
base_field = forms.DateTimeField
diff --git a/docs/ref/checks.txt b/docs/ref/checks.txt
index 1289ffe1ab..9bcba596fa 100644
--- a/docs/ref/checks.txt
+++ b/docs/ref/checks.txt
@@ -174,7 +174,7 @@ Model fields
* **fields.E901**: ``CommaSeparatedIntegerField`` is removed except for support
in historical migrations.
* **fields.W902**: ``FloatRangeField`` is deprecated and will be removed in
- Django 3.1.
+ Django 3.1. *This check appeared in Django 2.2 and 3.0*.
File fields
~~~~~~~~~~~
diff --git a/docs/ref/contrib/postgres/fields.txt b/docs/ref/contrib/postgres/fields.txt
index aa4d797162..27cf6469f1 100644
--- a/docs/ref/contrib/postgres/fields.txt
+++ b/docs/ref/contrib/postgres/fields.txt
@@ -661,19 +661,6 @@ excluded; that is, ``[)``.
the database and a :class:`~psycopg2:psycopg2.extras.NumericRange` in
Python.
-``FloatRangeField``
--------------------
-
-.. class:: FloatRangeField(**options)
-
- Stores a range of floating point values. Based on a
- :class:`~django.db.models.FloatField`. Represented by a ``numrange`` in the
- database and a :class:`~psycopg2:psycopg2.extras.NumericRange` in Python.
-
- .. deprecated:: 2.2
-
- Use :class:`DecimalRangeField` instead.
-
``DateTimeRangeField``
----------------------
diff --git a/docs/ref/contrib/postgres/forms.txt b/docs/ref/contrib/postgres/forms.txt
index 2f60c7e913..f559ac75cb 100644
--- a/docs/ref/contrib/postgres/forms.txt
+++ b/docs/ref/contrib/postgres/forms.txt
@@ -201,19 +201,6 @@ not greater than the upper bound. All of these fields use
:class:`~psycopg2:psycopg2.extras.NumericRange`. Default for
:class:`~django.contrib.postgres.fields.DecimalRangeField`.
-``FloatRangeField``
-~~~~~~~~~~~~~~~~~~~
-
-.. class:: FloatRangeField
-
- Based on :class:`~django.forms.FloatField` and translates its input into
- :class:`~psycopg2:psycopg2.extras.NumericRange`. Default for
- :class:`~django.contrib.postgres.fields.FloatRangeField`.
-
- .. deprecated:: 2.2
-
- Use :class:`DecimalRangeField` instead.
-
``DateTimeRangeField``
~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/releases/3.1.txt b/docs/releases/3.1.txt
index c0e48341c6..8fb764115e 100644
--- a/docs/releases/3.1.txt
+++ b/docs/releases/3.1.txt
@@ -230,4 +230,5 @@ in Django 3.1.
See :ref:`deprecated-features-2.2` for details on these changes, including how
to remove usage of these features.
-* ...
+* ``django.contrib.postgres.fields.FloatRangeField`` and
+ ``django.contrib.postgres.forms.FloatRangeField`` are removed.
diff --git a/tests/postgres_tests/test_ranges.py b/tests/postgres_tests/test_ranges.py
index 89f32ee77c..3e8fd355d3 100644
--- a/tests/postgres_tests/test_ranges.py
+++ b/tests/postgres_tests/test_ranges.py
@@ -5,9 +5,8 @@ from decimal import Decimal
from django import forms
from django.core import exceptions, serializers
from django.db.models import DateField, DateTimeField, F, Func, Value
-from django.test import ignore_warnings, override_settings
+from django.test import override_settings
from django.utils import timezone
-from django.utils.deprecation import RemovedInDjango31Warning
from . import PostgreSQLSimpleTestCase, PostgreSQLTestCase
from .models import RangeLookupsModel, RangesModel
@@ -445,22 +444,11 @@ class TestFormField(PostgreSQLSimpleTestCase):
value = field.clean(['1', '2'])
self.assertEqual(value, NumericRange(1, 2))
- @ignore_warnings(category=RemovedInDjango31Warning)
- def test_valid_floats(self):
- field = pg_forms.FloatRangeField()
- value = field.clean(['1.12345', '2.001'])
- self.assertEqual(value, NumericRange(1.12345, 2.001))
-
def test_valid_decimal(self):
field = pg_forms.DecimalRangeField()
value = field.clean(['1.12345', '2.001'])
self.assertEqual(value, NumericRange(Decimal('1.12345'), Decimal('2.001')))
- def test_float_range_field_deprecation(self):
- msg = 'FloatRangeField is deprecated in favor of DecimalRangeField.'
- with self.assertRaisesMessage(RemovedInDjango31Warning, msg):
- pg_forms.FloatRangeField()
-
def test_valid_timestamps(self):
field = pg_forms.DateTimeRangeField()
value = field.clean(['01/01/2014 00:00:00', '02/02/2014 12:12:12'])