-
-
Couldn't load subscription status.
- Fork 783
✨ Increase number_of_types to 5 to support longer select queries
#1333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
✨ Increase number_of_types to 5 to support longer select queries
#1333
Conversation
|
|
||
| _T3 = TypeVar("_T3") | ||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything in this file is autogenerated by running the script (*_*)
number_of_types to 5 to support longer select queries
|
Just as an idea: See example for 5 parameters in the details: @overload
def select( # type: ignore
__ent0: _TCCA[_T0],
__ent1: _TCCA[_T1],
__ent2: _TCCA[_T2],
__ent3: _TCCA[_T3],
__ent4: _TCCA[_T4],
) -> Select[Tuple[_T0, _T1, _T2, _T3, _T4]]: ...
@overload
def select( # type: ignore
entity_0: _TScalar_0,
__ent1: _TCCA[_T1],
__ent2: _TCCA[_T2],
__ent3: _TCCA[_T3],
__ent4: _TCCA[_T4],
) -> Select[Tuple[_TScalar_0, _T1, _T2, _T3, _T4]]: ...
@overload
def select( # type: ignore
entity_0: _TScalar_0,
entity_1: _TScalar_1,
__ent2: _TCCA[_T2],
__ent3: _TCCA[_T3],
__ent4: _TCCA[_T4],
) -> Select[Tuple[_TScalar_0, _TScalar_1, _T2, _T3, _T4]]: ...
@overload
def select( # type: ignore
entity_0: _TScalar_0,
entity_1: _TScalar_1,
entity_2: _TScalar_2,
__ent3: _TCCA[_T3],
__ent4: _TCCA[_T4],
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2, _T3, _T4]]: ...
@overload
def select( # type: ignore
entity_0: _TScalar_0,
entity_1: _TScalar_1,
entity_2: _TScalar_2,
entity_3: _TScalar_3,
__ent4: _TCCA[_T4],
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2, _TScalar_3, _T4]]: ...
@overload
def select( # type: ignore
entity_0: _TScalar_0,
entity_1: _TScalar_1,
entity_2: _TScalar_2,
entity_3: _TScalar_3,
entity_4: _TScalar_4,
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2, _TScalar_3, _TScalar_4]]: ...
@overload
@deprecated(
"""
This version of `select` function is deprecated.
You should order parameters so that all `_TScalar_XX` parameters would go before any
of `_TCCA[_TXX]` parameter.
Read more: [link to the documentation]
"""
)
def select( # type: ignore
__ent0: _TCCA[_T0],
param_1: Any,
param_2: Any,
param_3: Any,
param_4: Any,
) -> Select[Tuple[_T0, Any, Any, Any, Any]]: ...Last overload is to catch the wrong parameters order and show the deprecation warning with clear message and link to the docs. We can leave overloads for 1-4 parameters as it is for backward compatibility, or optionally mark overloads that don't follow this rule as deprecated. |
|
Increasing the limit from 4 to 5 means this problem will happen again when someone has a select with 6 inputs. I'm not familiar with the code at all, but is there some way to accept an arbitrarily large number of inputs? Or increase the limit to something absurd like 50? |
I am trying to write a select statement that selects 5 different SQLModel children. However I get a type error as the overloads for select are limited to 4.
Increasing to 6+ causes
mypyto hang, so I chose 5 :)Resolves #271 (comment)
Thank you very much for your time and working on OSS!