Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 82206fe

Browse files
author
Tomáš Daniel
committedMar 27, 2024·
chore: Django bump to <=5.0
1 parent 6f6821e commit 82206fe

17 files changed

+75
-76
lines changed
 

‎example/dj/apps/app/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django.db import models
22
from django.db.models import Count
3-
from django.utils.translation import ugettext_lazy as _
3+
from django.utils.translation import gettext_lazy as _
44

55
from pyston.utils.decorators import order_by, filter_class, filter_by, allow_tags, sorter_class
66
from pyston.filters.filters import IntegerFilterMixin

‎example/dj/apps/app/tests/fields.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from django.conf import settings
55
from django.test.utils import override_settings
6-
from django.utils.translation import ugettext
6+
from django.utils.translation import gettext
77

88
from germanium.decorators import data_consumer
99
from germanium.tools.trivials import assert_in, assert_equal, assert_not_equal
@@ -440,7 +440,7 @@ def test_should_raise_bad_request_with_invalid_filename(self, number, data):
440440
assert_in('contract', errors)
441441
assert_equal(
442442
errors['contract'],
443-
ugettext('Content type cannot be evaluated from input data please send it')
443+
gettext('Content type cannot be evaluated from input data please send it')
444444
)
445445

446446
@data_consumer('get_users_data')
@@ -454,7 +454,7 @@ def test_should_raise_bad_request_if_file_content_is_not_in_base64(self, number,
454454
assert_http_bad_request(resp)
455455
errors = self.deserialize(resp).get('messages', {}).get('errors')
456456
assert_in('contract', errors)
457-
assert_equal(errors['contract']['content'], ugettext('File content must be in base64 format'))
457+
assert_equal(errors['contract']['content'], gettext('File content must be in base64 format'))
458458

459459
@data_consumer('get_users_data')
460460
def test_should_raise_bad_request_if_url_is_not_valid(self, number, data):
@@ -466,7 +466,7 @@ def test_should_raise_bad_request_if_url_is_not_valid(self, number, data):
466466
assert_http_bad_request(resp)
467467
errors = self.deserialize(resp).get('messages', {}).get('errors')
468468
assert_in('contract', errors)
469-
assert_equal(errors['contract']['url'], ugettext('Enter a valid URL.'))
469+
assert_equal(errors['contract']['url'], gettext('Enter a valid URL.'))
470470

471471
@data_consumer('get_users_data')
472472
def test_should_raise_bad_request_if_required_items_are_not_provided(self, number, data):
@@ -477,7 +477,7 @@ def test_should_raise_bad_request_if_required_items_are_not_provided(self, numbe
477477
assert_http_bad_request(resp)
478478
errors = self.deserialize(resp).get('messages', {}).get('errors')
479479
assert_in('contract', errors)
480-
msg = ugettext('File data item must contains {} or {}').format(
480+
msg = gettext('File data item must contains {} or {}').format(
481481
', '.join(REQUIRED_ITEMS), ', '.join(REQUIRED_URL_ITEMS)
482482
)
483483
assert_equal(errors['contract'], msg)
@@ -493,7 +493,7 @@ def test_should_raise_bad_request_if_file_is_unreachable(self, number, data):
493493
assert_http_bad_request(resp)
494494
errors = self.deserialize(resp).get('messages', {}).get('errors')
495495
assert_in('contract', errors)
496-
assert_equal(errors['contract']['url'], ugettext('File is unreachable on the URL address'))
496+
assert_equal(errors['contract']['url'], gettext('File is unreachable on the URL address'))
497497

498498
@override_settings(PYSTON_FILE_SIZE_LIMIT=10)
499499
@data_consumer('get_users_data')
@@ -509,7 +509,7 @@ def test_should_raise_bad_request_if_response_is_too_large(self, number, data):
509509
assert_http_bad_request(resp)
510510
errors = self.deserialize(resp).get('messages', {}).get('errors')
511511
assert_in('contract', errors)
512-
msg = ugettext('Response too large, maximum size is {} bytes').format(pyston_settings.FILE_SIZE_LIMIT)
512+
msg = gettext('Response too large, maximum size is {} bytes').format(pyston_settings.FILE_SIZE_LIMIT)
513513
assert_equal(errors['contract']['url'], msg)
514514

515515
@data_consumer('get_users_data')

‎example/dj/settings/base.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import os
33

44
try:
5-
from django.utils.translation import ugettext_lazy as _
5+
from django.utils.translation import gettext_lazy as _
66
except ImportError:
77
def _(val): return val
88

‎pyston/contrib/dynamo/paginator.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import base64
22
import json
33

4-
from django.utils.translation import ugettext
4+
from django.utils.translation import gettext
55

66
from pyston.exception import RestException
77
from pyston.paginator import BasePaginator
@@ -33,11 +33,11 @@ def _get_base(self, request):
3333
elif base.isdigit():
3434
base_int = int(base)
3535
if base_int > self.max_base:
36-
raise RestException(ugettext('Base must lower or equal to {}').format(self.max_base))
36+
raise RestException(gettext('Base must lower or equal to {}').format(self.max_base))
3737
else:
3838
return base_int
3939
else:
40-
raise RestException(ugettext('Base must be natural number or empty'))
40+
raise RestException(gettext('Base must be natural number or empty'))
4141

4242
def _get_cursor(self, request):
4343
cursor = request._rest_context.get('cursor')
@@ -48,7 +48,7 @@ def _get_cursor(self, request):
4848
).decode('ascii')
4949
return json.loads(cursor)
5050
except json.JSONDecodeError:
51-
raise RestException(ugettext('Invalid next cursor value'))
51+
raise RestException(gettext('Invalid next cursor value'))
5252
else:
5353
return None
5454

‎pyston/data_processor.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from io import BytesIO
77

88
from django.forms.fields import FileField
9-
from django.utils.translation import ugettext_lazy as _, ugettext
9+
from django.utils.translation import gettext_lazy as _, gettext
1010
from django.core.files.uploadedfile import InMemoryUploadedFile
1111
from django.core.validators import URLValidator
1212
from django.core.exceptions import ValidationError
@@ -82,7 +82,7 @@ class FileDataPreprocessor(DataProcessor):
8282
def _validate_not_empty(self, data_item, key, item):
8383
if not data_item.get(item):
8484
error = self.errors.get(key, RestDictError())
85-
error.update(RestDictError({item: RestValidationError(ugettext('This field is required'))}))
85+
error.update(RestDictError({item: RestValidationError(gettext('This field is required'))}))
8686
self.errors[key] = error
8787

8888
def _get_content_type(self, content_type, filename, file_content):
@@ -106,11 +106,11 @@ def _process_file_data(self, data, files, key, data_item, file_content):
106106
content_type = self._get_content_type(content_type, filename, file_content)
107107
filename = self._get_filename(content_type, filename)
108108
if not content_type:
109-
self.errors[key] = RestValidationError(ugettext(
109+
self.errors[key] = RestValidationError(gettext(
110110
'Content type cannot be evaluated from input data please send it'
111111
))
112112
elif not filename:
113-
self.errors[key] = RestValidationError(ugettext(
113+
self.errors[key] = RestValidationError(gettext(
114114
'File name cannot be evaluated from input data please send it'
115115
))
116116
else:
@@ -128,7 +128,7 @@ def _process_file_data_field(self, data, files, key, data_item):
128128
self._process_file_data(data, files, key, data_item, file_content)
129129
except (TypeError, binascii.Error):
130130
self.errors[key] = RestDictError({'content': RestValidationError(
131-
ugettext('File content must be in base64 format')
131+
gettext('File content must be in base64 format')
132132
)})
133133

134134
def _process_file_data_url_field(self, data, files, key, data_item):
@@ -144,13 +144,13 @@ def _process_file_data_url_field(self, data, files, key, data_item):
144144
self._process_file_data(data, files, key, data_item, file_content)
145145
except RequestDataTooBig:
146146
self.errors[key] = RestDictError({'url': RestValidationError(
147-
ugettext('Response too large, maximum size is {} bytes').format(
147+
gettext('Response too large, maximum size is {} bytes').format(
148148
pyston_settings.FILE_SIZE_LIMIT
149149
))
150150
})
151151
except (RequestException, InvalidResponseStatusCode):
152152
self.errors[key] = RestDictError({'url': RestValidationError(
153-
ugettext('File is unreachable on the URL address')
153+
gettext('File is unreachable on the URL address')
154154
)})
155155
try:
156156
url_validator(url)
@@ -177,7 +177,7 @@ def _process_field(self, data, files, key, data_item):
177177
self._process_file_data_url_field(data, files, key, data_item)
178178
else:
179179
self.errors[key] = RestValidationError(
180-
ugettext('File data item must contains {} or {}').format(
180+
gettext('File data item must contains {} or {}').format(
181181
', '.join(REQUIRED_ITEMS), ', '.join(REQUIRED_URL_ITEMS)
182182
)
183183
)

‎pyston/exception.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from django.utils.translation import ugettext_lazy as _
1+
from django.utils.translation import gettext_lazy as _
22

33

44
class UnsupportedMediaTypeException(Exception):

‎pyston/filters/django_filters.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
TextField, CharField, IntegerField, FloatField, SlugField, EmailField, NullBooleanField, UUIDField, JSONField
44
)
55
from django.db.models.fields.related import ForeignKey, ManyToManyField, ForeignObjectRel
6-
from django.utils.translation import ugettext
6+
from django.utils.translation import gettext
77

88
from pyston.utils import LOOKUP_SEP
99

@@ -61,7 +61,7 @@ def _clean_list_values(self, filter, operator_slug, request, values):
6161
try:
6262
cleaned_values.append(filter.clean_value(value, operator_slug, request))
6363
except FilterValueError as ex:
64-
raise FilterValueError(ugettext('Invalid value inside list at position {}, {}').format(i, ex))
64+
raise FilterValueError(gettext('Invalid value inside list at position {}, {}').format(i, ex))
6565
i += 1
6666
return cleaned_values
6767

@@ -76,7 +76,7 @@ def __init__(self, orm_operator):
7676

7777
def get_q(self, filter, values, operator_slug, request):
7878
if not isinstance(values, list):
79-
raise FilterValueError(ugettext('Value must be list'))
79+
raise FilterValueError(gettext('Value must be list'))
8080
else:
8181
values = self._clean_list_values(filter, operator_slug, request, values)
8282
q = Q(**{
@@ -94,7 +94,7 @@ class RangeOperatorQuery(ListOperatorMixin, OperatorQuery):
9494

9595
def get_q(self, filter, values, operator_slug, request):
9696
if not isinstance(values, list) or not len(values) != 2:
97-
raise FilterValueError(ugettext('Value must be list with two values'))
97+
raise FilterValueError(gettext('Value must be list with two values'))
9898
else:
9999
values = self._clean_list_values(filter, operator_slug, request, values)
100100
return Q(**{'{}__range'.format(filter.get_full_filter_key()): values})
@@ -107,7 +107,7 @@ class AllListOperatorQuery(ListOperatorMixin, OperatorQuery):
107107

108108
def get_q(self, filter, values, operator_slug, request):
109109
if not isinstance(values, list):
110-
raise FilterValueError(ugettext('Value must be list'))
110+
raise FilterValueError(gettext('Value must be list'))
111111
else:
112112
values = self._clean_list_values(filter, operator_slug, request, values)
113113

@@ -309,7 +309,7 @@ def clean_value(self, value, operator_slug, request):
309309
try:
310310
return self.get_last_rel_field(self.field).get_prep_value(value)
311311
except ValueError:
312-
raise FilterValueError(ugettext('Object with this PK cannot be found'))
312+
raise FilterValueError(gettext('Object with this PK cannot be found'))
313313

314314

315315
class ManyToManyFieldFilter(RelatedFieldFilter):
@@ -330,7 +330,7 @@ def clean_value(self, value, operator_slug, request):
330330
self.field.related_model._meta.get_field(self.field.related_model._meta.pk.name)
331331
).get_prep_value(value)
332332
except ValueError:
333-
raise FilterValueError(ugettext('Object with this PK cannot be found'))
333+
raise FilterValueError(gettext('Object with this PK cannot be found'))
334334

335335

336336
class ForeignObjectRelFilter(RelatedFieldFilter):
@@ -351,7 +351,7 @@ def clean_value(self, value, operator_slug, request):
351351
self.field.related_model._meta.get_field(self.field.related_model._meta.pk.name)
352352
).get_prep_value(value)
353353
except ValueError:
354-
raise FilterValueError(ugettext('Object with this PK cannot be found'))
354+
raise FilterValueError(gettext('Object with this PK cannot be found'))
355355

356356

357357
class SimpleFilterMixin:

‎pyston/filters/filters.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
from django.core.validators import validate_ipv4_address, validate_ipv46_address
44
from django.core.exceptions import ValidationError
5-
from django.utils.translation import ugettext
6-
from django.utils.translation import ugettext_lazy as _
5+
from django.utils.translation import gettext
6+
from django.utils.translation import gettext_lazy as _
77
from django.utils.timezone import make_aware
88

99
from dateutil.parser import DEFAULTPARSER
@@ -160,7 +160,7 @@ def clean_value(self, value, operator_slug, request):
160160
elif value in {'0', '1'}:
161161
return value == '1'
162162
else:
163-
raise FilterValueError(ugettext('Value must be boolean'))
163+
raise FilterValueError(gettext('Value must be boolean'))
164164

165165

166166
class NullBooleanFilterMixin(BooleanFilterMixin):
@@ -192,7 +192,7 @@ def clean_value(self, value, operator_slug, request):
192192
try:
193193
return int(value)
194194
except (ValueError, TypeError):
195-
raise FilterValueError(ugettext('Value must be integer'))
195+
raise FilterValueError(gettext('Value must be integer'))
196196

197197

198198
class FloatFilterMixin:
@@ -203,7 +203,7 @@ def clean_value(self, value, operator_slug, request):
203203
try:
204204
return float(value)
205205
except (ValueError, TypeError):
206-
raise FilterValueError(ugettext('Value must be float'))
206+
raise FilterValueError(gettext('Value must be float'))
207207

208208

209209
class DecimalFilterMixin:
@@ -214,7 +214,7 @@ def clean_value(self, value, operator_slug, request):
214214
try:
215215
return Decimal(value)
216216
except InvalidOperation:
217-
raise FilterValueError(ugettext('Value must be decimal'))
217+
raise FilterValueError(gettext('Value must be decimal'))
218218

219219

220220
class IPAddressFilterMixin:
@@ -227,7 +227,7 @@ def clean_value(self, value, operator_slug, request):
227227
try:
228228
validate_ipv4_address(value)
229229
except ValidationError:
230-
raise FilterValueError(ugettext('Value must be in format IPv4.'))
230+
raise FilterValueError(gettext('Value must be in format IPv4.'))
231231
return value
232232

233233

@@ -241,7 +241,7 @@ def clean_value(self, value, operator_slug, request):
241241
try:
242242
validate_ipv46_address(value)
243243
except ValidationError:
244-
raise FilterValueError(ugettext('Value must be in format IPv4 or IPv6.'))
244+
raise FilterValueError(gettext('Value must be in format IPv4 or IPv6.'))
245245
return value
246246

247247

@@ -256,22 +256,22 @@ def _clean_datetime_to_parts(self, value):
256256
value = value[0] if isinstance(value, tuple) else value
257257

258258
if value is None:
259-
raise FilterValueError(ugettext('Value cannot be parsed to partial datetime'))
259+
raise FilterValueError(gettext('Value cannot be parsed to partial datetime'))
260260
else:
261261
return value
262262

263263
def _clean_integer(self, value):
264264
try:
265265
return int(value)
266266
except ValueError:
267-
raise FilterValueError(ugettext('Value must be integer'))
267+
raise FilterValueError(gettext('Value must be integer'))
268268

269269
def _clean_datetime(self, value):
270270
try:
271271
datetime_value = DEFAULTPARSER.parse(value, dayfirst='-' not in value)
272272
return make_aware(datetime_value, is_dst=True) if datetime_value.tzinfo is None else datetime_value
273273
except ValueError:
274-
raise FilterValueError(ugettext('Value must be in format ISO 8601.'))
274+
raise FilterValueError(gettext('Value must be in format ISO 8601.'))
275275

276276
def clean_value(self, value, operator_slug, request):
277277
suffix = self.identifiers_suffix[0] if self.identifiers_suffix else None

‎pyston/filters/managers.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from django.db.models import Q
22
from django.core.exceptions import FieldDoesNotExist
33
from django.utils.safestring import mark_safe
4-
from django.utils.translation import ugettext
4+
from django.utils.translation import gettext
55

66
from pyston.exception import RestException
77
from pyston.utils import rfs, LOOKUP_SEP
@@ -260,13 +260,13 @@ class BaseParserModelFilterManager(BaseModelFilterManager):
260260
parsers = [DefaultFilterParser(), QueryStringFilterParser()]
261261

262262
def _logical_conditions_and(self, condition_a, condition_b):
263-
raise RestException(ugettext('More filter terms combination are not supported'))
263+
raise RestException(gettext('More filter terms combination are not supported'))
264264

265265
def _logical_conditions_or(self, condition_a, condition_b):
266-
raise RestException(ugettext('More filter terms combination are not supported'))
266+
raise RestException(gettext('More filter terms combination are not supported'))
267267

268268
def _logical_conditions_negation(self, condition):
269-
raise RestException(ugettext('Filter term negation are not supported'))
269+
raise RestException(gettext('Filter term negation are not supported'))
270270

271271
def _convert_logical_conditions(self, condition, resource, request):
272272
"""
@@ -293,15 +293,15 @@ def _convert_logical_conditions(self, condition, resource, request):
293293
)
294294
except FilterIdentifierError:
295295
raise RestException(
296-
mark_safe(ugettext('Invalid identifier of condition "{}"').format(condition.source))
296+
mark_safe(gettext('Invalid identifier of condition "{}"').format(condition.source))
297297
)
298298
except FilterValueError as ex:
299299
raise RestException(
300-
mark_safe(ugettext('Invalid value of condition "{}". {}').format(condition.source, ex))
300+
mark_safe(gettext('Invalid value of condition "{}". {}').format(condition.source, ex))
301301
)
302302
except OperatorFilterError:
303303
raise RestException(
304-
mark_safe(ugettext('Invalid operator of condition "{}"').format(condition.source))
304+
mark_safe(gettext('Invalid operator of condition "{}"').format(condition.source))
305305
)
306306

307307
def _is_required_distinct(self, qs, q):

‎pyston/filters/parser.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import pyparsing as pp
44

55
from django.utils.safestring import mark_safe
6-
from django.utils.translation import ugettext
6+
from django.utils.translation import gettext
77

88
from .utils import LogicalOperatorSlug, OperatorSlug
99

@@ -181,7 +181,7 @@ def parse(self, request):
181181
)
182182
except pp.ParseException:
183183
raise FilterParserError(
184-
mark_safe(ugettext('Invalid filter value "{}"').format(input))
184+
mark_safe(gettext('Invalid filter value "{}"').format(input))
185185
)
186186

187187

‎pyston/forms/__init__.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from django.core.exceptions import NON_FIELD_ERRORS, ValidationError
88
from django.http.response import Http404
99
from django.forms.models import ModelFormMetaclass, modelform_factory
10-
from django.utils.translation import ugettext
10+
from django.utils.translation import gettext
1111
from django.utils.encoding import force_text, force_str
1212

1313
from chamber.shortcuts import get_object_or_none
@@ -189,7 +189,7 @@ def _flat_object_to_pk(self, pk_field_name, data):
189189
return data[pk_field_name]
190190
except KeyError:
191191
raise RestValidationError(
192-
ugettext('Data must contain primary key: {}').format(pk_field_name), code='invalid_structure'
192+
gettext('Data must contain primary key: {}').format(pk_field_name), code='invalid_structure'
193193
)
194194
else:
195195
return data
@@ -202,11 +202,11 @@ def _delete_related_object(self, resource, data, via):
202202
except RestException as ex:
203203
raise RestValidationError(ex.message)
204204
except Http404:
205-
raise RestValidationError(ugettext('Object does not exist'), code='invalid_structure')
205+
raise RestValidationError(gettext('Object does not exist'), code='invalid_structure')
206206

207207
def _create_or_update_related_object(self, resource, data, via, partial_update):
208208
if not isinstance(data, dict):
209-
raise RestValidationError(ugettext('Data must be object'), code='invalid_structure')
209+
raise RestValidationError(gettext('Data must be object'), code='invalid_structure')
210210

211211
try:
212212
return resource.create_or_update(resource.update_data(data), via, partial_update)
@@ -276,7 +276,7 @@ def clean(self, data, request, parent_inst):
276276

277277
cleaned_data = copy.deepcopy(data)
278278
if not self._is_allowed_foreign_key and not isinstance(data, dict):
279-
raise RestValidationError(ugettext('Invalid format'), code='invalid_structure')
279+
raise RestValidationError(gettext('Invalid format'), code='invalid_structure')
280280

281281
resource = self._get_resource(self._get_model(parent_inst), request)
282282
if not self._is_allowed_foreign_key and resource.pk_field_name in data:
@@ -288,7 +288,7 @@ class MultipleRelatedfieldValidationMixin(SingleRelatedfieldValidationMixin):
288288

289289
def clean(self, data, request, parent_inst):
290290
if not isinstance(data, (tuple, list)):
291-
raise RestValidationError(ugettext('Data must be a collection'), code='invalid_structure')
291+
raise RestValidationError(gettext('Data must be a collection'), code='invalid_structure')
292292

293293
errors = RestListError()
294294

@@ -300,7 +300,7 @@ def clean(self, data, request, parent_inst):
300300
if obj_data is None:
301301
errors.append(
302302
RestDictIndexError(
303-
i, {'error': RestValidationError(ugettext('Invalid format'), code='invalid_structure')}
303+
i, {'error': RestValidationError(gettext('Invalid format'), code='invalid_structure')}
304304
)
305305
)
306306
except RestError as ex:
@@ -321,7 +321,7 @@ def clean(self, data, request, parent_inst):
321321

322322
if 'set' in data and {'remove', 'add'} & set(data.keys()):
323323
raise RestValidationError(
324-
ugettext('set cannot be together with add or remove'), code='invalid_structure'
324+
gettext('set cannot be together with add or remove'), code='invalid_structure'
325325
)
326326

327327
errors = RestDictError()
@@ -370,7 +370,7 @@ def _remove_related_objects(self, resource, parent_inst, via, data, values):
370370
if pk in result:
371371
result.remove(pk)
372372
else:
373-
errors.append({'error': ugettext('Object does not exist in selected data'), '_index': i})
373+
errors.append({'error': gettext('Object does not exist in selected data'), '_index': i})
374374
except RestDictError as ex:
375375
errors.append(RestDictIndexError(i, ex))
376376
except RestError as ex:

‎pyston/forms/postgres.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from django.core.exceptions import ValidationError
22
from django.contrib.postgres.utils import prefix_validation_error
33
from django.contrib.postgres.forms.array import SimpleArrayField
4-
from django.utils.translation import ugettext
4+
from django.utils.translation import gettext
55

66

77
class RestSimpleArrayField(SimpleArrayField):
@@ -29,7 +29,7 @@ def to_python(self, value):
2929
if errors:
3030
raise ValidationError(errors)
3131
else:
32-
raise ValidationError(ugettext('Enter a list.'))
32+
raise ValidationError(gettext('Enter a list.'))
3333
return values
3434

3535
def clean(self, value):

‎pyston/order/managers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django.utils.safestring import mark_safe
2-
from django.utils.translation import ugettext
2+
from django.utils.translation import gettext
33

44
from pyston.exception import RestException
55
from pyston.utils import rfs, LOOKUP_SEP
@@ -177,7 +177,7 @@ def _get_sorters(self, parsed_order_terms, resource, request):
177177
sorters.append(self.get_sorter(ordering_term.identifiers, ordering_term.direction, resource, request))
178178
except OrderIdentifierError:
179179
raise RestException(
180-
mark_safe(ugettext('Invalid identifier of ordering "{}"').format(ordering_term.source))
180+
mark_safe(gettext('Invalid identifier of ordering "{}"').format(ordering_term.source))
181181
)
182182
return sorters
183183

‎pyston/paginator.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from django.db.models import Q
77
from django.db.models.expressions import OrderBy
8-
from django.utils.translation import ugettext
8+
from django.utils.translation import gettext
99

1010
from .forms import RestValidationError
1111
from .exception import RestException
@@ -51,11 +51,11 @@ def _get_offset(self, qs, request):
5151
if offset.isdigit():
5252
offset_int = int(offset)
5353
if offset_int > self.max_offset:
54-
raise RestException(ugettext('Offset must be lower or equal to {}').format(self.max_offset))
54+
raise RestException(gettext('Offset must be lower or equal to {}').format(self.max_offset))
5555
else:
5656
return offset_int
5757
else:
58-
raise RestException(ugettext('Offset must be natural number'))
58+
raise RestException(gettext('Offset must be natural number'))
5959

6060
def _get_base(self, qs, request):
6161
base = request._rest_context.get('base')
@@ -64,11 +64,11 @@ def _get_base(self, qs, request):
6464
elif base.isdigit():
6565
base_int = int(base)
6666
if base_int > self.max_base:
67-
raise RestException(ugettext('Base must lower or equal to {}').format(self.max_base))
67+
raise RestException(gettext('Base must lower or equal to {}').format(self.max_base))
6868
else:
6969
return base_int
7070
else:
71-
raise RestException(ugettext('Base must be natural number or empty'))
71+
raise RestException(gettext('Base must be natural number or empty'))
7272

7373
def _get_next_offset(self, iterable, offset, base):
7474
return offset + base if len(iterable) > base else None
@@ -201,7 +201,7 @@ def _get_paged_qs(self, qs, ordering, cursor, base):
201201
if current_row:
202202
qs = qs.filter(self._get_page_filter_kwargs(current_row))
203203
else:
204-
raise RestException(RestValidationError(ugettext('Cursor object was not found')))
204+
raise RestException(RestValidationError(gettext('Cursor object was not found')))
205205
return self._get_page(qs, base)
206206

207207
def _get_base(self, request):
@@ -211,11 +211,11 @@ def _get_base(self, request):
211211
elif base.isdigit():
212212
base_int = int(base)
213213
if base_int > self.max_base:
214-
raise RestException(ugettext('Base must lower or equal to {}').format(self.max_base))
214+
raise RestException(gettext('Base must lower or equal to {}').format(self.max_base))
215215
else:
216216
return base_int
217217
else:
218-
raise RestException(ugettext('Base must be natural number or empty'))
218+
raise RestException(gettext('Base must be natural number or empty'))
219219

220220
def _get_cursor(self, request):
221221
return request._rest_context.get('cursor')

‎pyston/resource.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from django.db.models.fields import DateTimeField
1717
from django.http.response import Http404
1818
from django.core.exceptions import ObjectDoesNotExist
19-
from django.utils.translation import ugettext_lazy as _
19+
from django.utils.translation import gettext_lazy as _
2020
from django.utils.module_loading import import_string
2121

2222
from functools import update_wrapper

‎pyston/serializer.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from django.utils import formats, timezone
1414
from django.utils.encoding import force_text
1515
from django.utils.html import conditional_escape
16-
from django.utils.translation import ugettext
16+
from django.utils.translation import gettext
1717

1818
from chamber.utils import get_class_method
1919

@@ -608,7 +608,7 @@ def _get_raw_value(self, data):
608608
class BoolSerializer(BaseRawVerboseValueSerializer):
609609

610610
def _get_verbose_value(self, data, **kwargs):
611-
return ugettext('Yes') if data else ugettext('No')
611+
return gettext('Yes') if data else gettext('No')
612612

613613

614614
@register(dict)

‎setup.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@
2424
'Topic :: Internet :: WWW/HTTP',
2525
],
2626
install_requires=[
27-
'django>=2.2, <4.0',
27+
'django>=2.2, <5.0',
2828
'defusedxml>=0.6.0',
2929
'pyparsing==2.4.7',
3030
'python-mimeparse>=1.6.0',
31-
'skip-django-chamber>=0.6.17.2',
3231
'python-magic>=0.4.27',
3332
],
3433
zip_safe=False

0 commit comments

Comments
 (0)
Please sign in to comment.