Federico Caselli <cfederic...@gmail.com> writes:

> On Thursday, 1 December 2022 at 22:50:11 UTC+1 leleg...@gmail.com wrote:
>
>> "Mike Bayer" <mik...@zzzcomputing.com> 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.
l...@metapensiero.it  |                 -- 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 sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/871qpfqeu8.fsf%40metapensiero.it.

Reply via email to