ó
    ÌÎ¾iÃ  ã                  óJ   • S r SSKJr  SSKJrJrJr  SSKJr	  SSK
Jr  SS jrg)	uK   Filtros por aÃ±o de perÃ­odo escolar (period_year) en consultas SQLAlchemy.é    )Úannotations)ÚAnyÚOptionalÚType)Úinspect)ÚQueryc                ó¦  • Uc  U $  [        U5      nSUR                  ;  a  U $ [        US5      nUR                  S   R                  n[        USS5      nU[
        L a+  U R                  U[        U5      R                  5       :H  5      $  [        U5      nU R                  XG:H  5      $ ! [         a    U s $ f = f! [        [        4 a    U s $ f = f)uå   
Aplica filtro `model.period_year == period_year` si el modelo tiene la columna y se pasÃ³ aÃ±o.

- Columnas `Integer`: comparaciÃ³n numÃ©rica.
- Columnas `String` (ej. students/professionals): comparaciÃ³n con str(period_year).
NÚperiod_yearÚpython_type)Ú
sa_inspectÚ	ExceptionÚcolumnsÚgetattrÚtypeÚstrÚfilterÚstripÚintÚ	TypeErrorÚ
ValueError)ÚqueryÚmodelr
   ÚmapperÚcolÚcol_typer   Úpy_ints           Ú!app/backend\utils\period_query.pyÚapply_period_year_filterr      sÛ   € ð ÑØˆðÜ˜EÓ"ˆð ˜FŸN™NÓ*ØˆÜ
�%˜Ó
'€CØ�~‰~˜mÑ,×1Ñ1€HÜ˜( M°4Ó8€KØ”cÒØ�|‰|˜C¤3 {Ó#3×#9Ñ#9Ó#;Ñ;Ó<Ð<ðÜ�[Ó!ˆð �<‰<˜™Ó&Ð&øô ó ØŠðûô ”zÐ"ó ØŠðús#   ‡B) ÂB; Â)B8Â7B8Â;CÃCN)r   ÚSAQueryr   z	Type[Any]r
   zOptional[int]Úreturnr   )Ú__doc__Ú
__future__r   Útypingr   r   r   Ú
sqlalchemyr   r   Úsqlalchemy.ormr   r   r   © ó    r   Ú<module>r(      s   ðÙ Qå "ç &Ñ &å ,Ý +õ'r'   