Nick Pope
e042024b28
Allowed custom formatting of lazy() objects.
...
This allows for formatting of lazy objects which have a custom formatter
defined by overriding the default implementation from `object`.
2023-06-12 06:09:20 +02:00
Nick Pope
fd97b0471b
Allowed multiplication of lazy() objects with int return type.
2023-06-12 05:59:40 +02:00
Ran Benita
ae94077e7d
Made proxy class in lazy() prepare eagerly.
...
Previously, the proxy class was prepared lazily:
lazy_identity = lazy(identity, int)
lazy_identity(10) # prepared here
lazy_identity(10)
This has a slight advantage that if the lazy doesn't end up getting
used, the preparation work is skipped, however that's not very likely.
Besides this laziness, it is also inconsistent in that the methods which
are wrapped directly (__str__ etc.) are prepared already when __proxy__
is defined, and there is a weird half-initialized state.
This change it so that everything is prepared already on the first line
of the example above.
2023-06-12 05:45:44 +02:00
Nick Pope
e0e0204477
Added more tests for django.utils.functional.lazy().
2023-06-12 05:29:30 +02:00
Ran Benita
a57d5d9bbc
Made bytes and str return types no longer mutually exclusive in lazy().
...
They are no longer special cased.
2023-06-08 09:15:40 +02:00
Ran Benita
f5817c24f4
Refs #34445 -- Fixed string-casting of non-string lazy objects when value may be bytes.
...
If the result type is bytes, then calling bytes() on it does nothing.
If the result type is not bytes, we should not cast to bytes, just
because the return value may be bytes.
2023-06-08 06:38:11 +02:00
Mariusz Felisiak
fc9c90d9c4
Refs #34118 -- Fixed FunctionalTests.test_cached_property_reuse_different_names() on Python 3.12+.
...
Python 3.12+ no longer wraps exceptions in __set_name__, see
55c99d97e1
2023-05-23 12:56:33 +02:00
Ran Benita
066aabcb77
Fixed #34445 -- Fixed string-casting of non-string lazy objects.
...
This removes __text_cast() as it's the same as __cast().
_delegate_bytes and __delegate_text are mutually exclusive so the
`if self._delegate_bytes` branch in __cast() is unreachable.
Co-Authored-By: David Sanders <shang.xiao.sanders@gmail.com>
2023-03-30 11:42:10 +02:00
Mariusz Felisiak
5c10041f46
Refs #30127 -- Removed name argument for django.utils.functional.cached_property().
...
Per deprecation timeline.
2023-01-17 11:49:15 +01:00
django-bot
9c19aff7c7
Refs #33476 -- Reformatted code with Black.
2022-02-07 20:37:05 +01:00
mgaligniana
068b2c072b
Fixed #30127 -- Deprecated name argument of cached_property().
2021-12-16 18:52:27 +01:00
Hasan Ramezani
775b796d8d
Refs #32508 -- Raised ValueError instead of using "assert" in lazy().
2021-03-15 13:10:30 +01:00
Hasan Ramezani
577f2338f1
Fixed #32208 -- Allowed adding lazy() objects.
...
Co-authored-by: Claude Paroz <claude@2xlibre.net>
2020-12-21 09:24:41 +01:00
André Ericson
3120490912
Fixed #30876 -- Moved classproperty() decorator to the django.utils.functional.
2019-10-21 09:57:39 +02:00
Ran Benita
a2c31e12da
Fixed #30498 -- Fixed proxy class caching in lazy().
...
lazy() should prepare the proxy class only once (the first time it's
used) not on every call.
Regression in b4e76f30d1
.
2019-05-22 20:41:52 +02:00
Tim Graham
7e6b214ed3
Fixed #30116 -- Dropped support for Python 3.5.
2019-01-30 10:19:48 -05:00
Thomas Grainger
0607699902
Fixed #29478 -- Added support for mangled names to cached_property.
...
Co-Authored-By: Sergey Fedoseev <fedoseev.sergey@gmail.com>
2018-11-19 13:40:49 -05:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01:00
Claude Paroz
7b2f2e74ad
Refs #23919 -- Removed six.<various>_types usage
...
Thanks Tim Graham and Simon Charette for the reviews.
2017-01-18 20:18:46 +01:00
Claude Paroz
c716fe8782
Refs #23919 -- Removed six.PY2/PY3 usage
...
Thanks Tim Graham for the review.
2017-01-18 16:21:28 +01:00
Claude Paroz
d7b9aaa366
Refs #23919 -- Removed encoding preambles and future imports
2017-01-18 09:55:19 +01:00
Adam Chainz
71609a5b90
Fixed #27555 -- Removed django.utils.functional.lazy_property.
2016-11-29 19:01:12 -05:00
za
321e94fa41
Refs #27392 -- Removed "Tests that", "Ensures that", etc. from test docstrings.
2016-11-10 21:30:21 -05:00
Ville Skyttä
fa654da613
Removed usage of a few deprecated unittest assertions.
2016-06-14 09:03:12 -04:00
Chesco Igual
ffd18732f3
Fixed #24781 -- Fixed repr() for lazy objects.
2016-06-04 19:13:00 -04:00
Hasan
3d0dcd7f5a
Refs #26022 -- Used context manager version of assertRaises in tests.
2016-01-29 12:32:18 -05:00
Marten Kenbeek
290ff35e6c
Fixed #25000 -- Fixed cast to string for lazy objects.
...
Implemented __str__() to return the string-representation of the
proxied object, not the proxy itself, if the lazy object didn't have
a string-like object in its resultclasses.
2015-06-23 09:16:17 -04:00
Tim Graham
0ed7d15563
Sorted imports with isort; refs #23860 .
2015-02-06 08:16:28 -05:00
Gavin Wahl
b4e76f30d1
Fixed #23346 -- Fixed lazy() to lookup methods on the real object, not resultclasses.
...
Co-Authored-By: Rocky Meza <rmeza@fusionbox.com>
2014-12-26 11:30:34 -05:00
Berker Peksag
f7969b0920
Fixed #23620 -- Used more specific assertions in the Django test suite.
2014-11-03 11:56:37 -05:00
John-Scott Atlakson
dbf7a3df45
Fixed #23688 -- Updated cached_property to preserve docstring of original function
2014-10-20 17:59:07 -04:00
Curtis
71461b14ab
Fixed #22691 -- Added aliasing to cached_property.
2014-07-01 06:32:53 -04:00
Alasdair Nicol
c3aa2948c6
Fixed #21298 -- Fixed E301 pep8 warnings
2013-10-23 13:45:03 +01:00
Andrew Godwin
b1e0ec06f0
Merge branch 'master' into schema-alteration
2013-07-02 10:49:53 +01:00
Aymeric Augustin
cfcf4b3605
Stopped using django.utils.unittest in the test suite.
...
Refs #20680 .
2013-07-01 14:29:33 +02:00
Andrew Godwin
52d2a8b311
Add test for new __ne__ method on Promise.
2013-05-29 17:52:17 +01:00
Preston Timmons
612ef3e5c9
Modified utils_tests for unittest2 discovery.
2013-04-12 15:31:58 -06:00