Federico Caselli <[email protected]> writes:
> On Thursday, 1 December 2022 at 22:50:11 UTC+1 [email protected] wrote:
>
>> "Mike Bayer" <[email protected]> writes:
>> >
>> > well ".isempty" is not the kind of naming convention we like to use
>> > these days, so that should likely be an alias. ".empty" might be
>> > named ".is_empty". Did I get ".empty" from asyncpg's API ?
>>
>> I agree with "is_empty", but both asyncpg [...] and psycopg [...] and
>> psycopg2 [...] call it "isempty", as a @property.
>>
> Postgresql does use isempty for the function that test if a range is empty
> https://www.postgresql.org/docs/current/functions-range.html#RANGE-OPERATORS-TABLE
It seems that, given we are aiming to reduce a (PG expert) dev's suprise
when using the class, "isempty" wins.
As I cannot really find a decisive advantage between renaming the
existing attribute vs providing a compatibility property over it, can
you help me please, even by tossing your own coin?
Facts: a property is surely easier, but OTOH that dual way will have to
stay there forever. Renaming is not a big deal, there are actually just
a dozen places in the source tree where it used:
$ git grep empty=
lib/sqlalchemy/dialects/postgresql/asyncpg.py:
empty=value.empty,
lib/sqlalchemy/dialects/postgresql/asyncpg.py:
empty=empty,
lib/sqlalchemy/dialects/postgresql/asyncpg.py:
empty=value.empty,
lib/sqlalchemy/dialects/postgresql/asyncpg.py:
empty=empty,
lib/sqlalchemy/dialects/postgresql/psycopg.py: empty=not
value._bounds,
lib/sqlalchemy/dialects/postgresql/psycopg.py:
empty=not elem._bounds,
lib/sqlalchemy/dialects/postgresql/psycopg2.py:
empty=not value._bounds,
lib/sqlalchemy/dialects/postgresql/ranges.py: self, lower=None,
upper=None, *, bounds="[)", empty=False
lib/sqlalchemy/dialects/postgresql/ranges.py: return Range(None,
None, empty=True)
lib/sqlalchemy/dialects/postgresql/ranges.py: return
Range(None, None, empty=True)
lib/sqlalchemy/dialects/postgresql/ranges.py: return
Range(None, None, empty=True)
test/dialect/postgresql/test_types.py: lambda **kw:
Range(empty=True),
test/dialect/postgresql/test_types.py: lambda l, r:
Range(empty=True),
test/dialect/postgresql/test_types.py: lambda r, e:
Range(empty=True),
test/dialect/postgresql/test_types.py:
is_false(bool(Range(empty=True)))
test/dialect/postgresql/test_types.py: eq_(data,
[(self._data_obj().__class__(empty=True),)])
test/dialect/postgresql/test_types.py: eq_(data,
[(self._data_obj().__class__(empty=True),)])
thanks&bye, lele.
--
nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri
real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia.
[email protected] | -- Fortunato Depero, 1929.
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sqlalchemy/871qpfqeu8.fsf%40metapensiero.it.