Team Ai
Apppublic

2008robocode-crypto/code-generation-system

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes
validator.cpython-314.pyc45 linesDownload Raw Back to __pycache__
1+
2��i4,��f�Rt^RIt^RIHtHtHtHtHt^RIH	t	H3t4HtHtH
t
HtHt!RR4tR#)z�5Validation engine for detecting and reporting issues in generated schemas.6Checks for: invalid JSON, missing keys, type mismatches, cross-layer inconsistencies.7N)�Any�Dict�List�Optional�Tuple)�ValidationResult�GeneratedConfig�DBTable�APIEndpoint�UIPage�Role�	FieldTypec��a�]tRt^toRtRtV3RlRltV3RlRltV3RlRltV3R	lR8lt	V3RlRlt9V3R
lRltV3RlRltV3RlRlt
V3RlRltV3RlRltV3RlRltRtVtR#)�	Validatorz6Comprehensive validation for generated configurations.c�$�\4VnR#�N)r�result)�selfs&�;C:\Users\purav\Downloads\ai intern project\src\validator.py�__init__�Validator.__init__s��&�(���c	�b<�V^8�dQhRS[RS[S[S[S[S[S[3,,3,/#)��json_str�return)�strr�boolrrr)�format�
__classdict__s"�r�__annotate__�Validator.__annotate__s2�����c��e�D�(�4��S��>�:R�4R�.S�rc���\P!V4pRV3# \Pd4pTPP	R\T424RuRp?#Rp?ii;i)z!Validate if string is valid JSON.TzInvalid JSON: N)FN)�json�loads�JSONDecodeErrorr�	add_errorr)rr�data�es&&  r�
validate_json�Validator.validate_jsonsX��	��:�:�h�'�D���:����#�#�	��K�K�!�!�N�3�q�6�(�";�<����	�s��A$�(A�A$�A$c�R<�V^8�dQhRS[S[S[3,RS[S[,RS[/#)rr'�required_fieldsr)rrrrr)rrs"�rr r!s0�����T�#�s�(�^��d�SV�i��\`�rc���VUu.uFq3V9g
W,eKVNK	ppV'd0VPPRRPV424R#R#uupi)z)Check if all required fields are present.zMissing required fields: z, FT)rr&�join)rr'r,�f�missings&&&  r�validate_required_fields�"Validator.validate_required_fieldssS��-�R�o��$��$�'�1�1�o��R���K�K�!�!�$=�d�i�i��>P�=Q�"R�S����	Ss10�A�Ac�<<�V^8�dQhRS[S[S[3,RS[/#�r�config_dictr�rrrr)rrs"�rr r!"s(���K�K�t�C��H�~�K�RV�Krc�,�.ROpVPW4#)z0Validate top-level structure of GeneratedConfig.)�app_name�app_description�database_schema�11api_schema�	ui_schema�auth_config�roles�business_logic)r1)rr5r,s&& r�#validate_generated_config_structure�-Validator.validate_generated_config_structure"s��12���,�,�[�J�Jrc�L<�V^8�dQhRS[S[S[S[3,,RS[/#)r�	db_schemar�rrrrr)rrs"�rr r!*s(���+�+�$�t�C��H�~�2F�+�4�+rc13��\V\4'gVPPR4R#\	4pRp\V4EFwrE\V\4'g$VPPRVR24RpK?RV9gRV9gRV9d$VPPRVR	24RpKwVPVR,4\VR,\4'g+VPPR14VR,R24RpK�VR,F%pVPWeR,4'dK#RpK'	EK	VFppRV9gKVR,'gKVR,P4F8wrgWr9gK
VPPR
VR,RVRV24K:	Kr	V#)z#Validate database schema integrity.zdatabase_schema must be a listFTzTable � is not a dict�name�fields�primary_keyz&: missing name, fields, or primary_keyzTable 'z': fields must be a list�	relationszForeign key in �.z  references non-existent table: )�15isinstance�listrr&�set�	enumerate�dict�add�_validate_field�items�add_warning)rrC�table_names�is_valid�i�table�field�
related_tables&&      r�validate_database_schema�"Validator.validate_database_schema*s����)�T�*�*��K�K�!�!�"B�C���e����!�)�,�H�A��e�T�*�*����%�%��q�c��&@�A� ����U�"�h�e�&;�}�TY�?Y����%�%��q�c�1W�&X�Y� ����O�O�E�&�M�*��e�H�o�t�4�4����%�%���f�
��>V�&W�X� ����x�����+�+�E��=�A�A�$�H�)�+-�4�E��e�#��k�(:�(:�,1�+�,>�,D�,D�,F�(�E�$�7����/�/�-�e�F�m�_�A�e�W�Dd�er�ds�t��-G���rc�B<�V^8�dQhRS[S[S[3,RS[RS[/#)rrY�16table_namerr6)rrs"�rr r!Ws*�����T�#�s�(�^�����rc	�a�\S\4'g"VPPRVR24R#RR.p\;QJdV3RlV4F'dKRM	RM!V3RlV44'g"VPPRVR24R#SR,p\17Uu.uFqUPNK	ppWF9d/VPPR	SR,R18VRVR24R#R#uupi)
zValidate a single field.z	Field in rFFrG�typec3�,<"�TF	qS9x�K	R#5ir�)�.0�krYs& �r�	<genexpr>�,Validator._validate_field.<locals>.<genexpr>^s����0�x�!��:�x���Tz: missing name or typezField 'z' in z: invalid type '�')rLrPrr&�allr
�value)rrYr^�required�19field_type�t�valid_typess&f&    rrR�Validator._validate_fieldWs�����%��&�&��K�K�!�!�I�j�\��"H�I���F�#���s�0�x�0�s�s�s�0�x�0�0�0��K�K�!�!�I�j�\�9O�"P�Q���6�]�20�(1�2�	�1�w�w�	��2��(��K�K�!�!��%��-���j�\�9I�*��UV�W�
����3s�/C;c�L<�V^8�dQhRS[S[S[S[3,,RS[/#)rr;rrD)rrs"�rr r!ls(�����d�4��S��>�.B��t�rc���\V\4'gVPPR4R#.ROpRp\	V4F�wrE\V\214'g$VPPRVR24RpK>RV9gRV9d$VPPRVR24RpKoVR,V9gKVPPRVR,R	VR,R2224RpK�	V#)zValidate API schema structure.zapi_schema must be a listFTz	Endpoint rF�path�methodz: missing path or methodz: invalid method 'rh)�GET�POST�PUT�DELETE�PATCH)rLrMrr&rOrP)rr;�
valid_methodsrVrW�endpoints&&    r�validate_api_schema�Validator.validate_api_schemals����*�d�+�+��K�K�!�!�"=�>��A�
���$�Z�0�K�A��h��-�-����%�%�	�!��N�&C�D� ����X�%���)A����%�%�	�!��4L�&M�N� �����!��6����%�%���� 0�1�1C�H�X�DV�CW�WX�Y��!��#1�&�rc�L<�V^8�dQhRS[S[S[S[3,,RS[/#)rr<rrD)rrs"�rr r!�s(�����D��c�3�h��,@��T�rc�\a�\V\4'gVPPR4R#Rp\	V4F�wpo\S\234'g$VPPRVR24RpK?.R24Op\;QJdV3RlV4F'dKRM	RM!V3RlV44'g$VPPRVR24RpK�\SR,\4'dK�VPPRVR	24RpK�	V#)zValidate UI schema structure.zui_schema must be a listFTzPage rF�25componentsc3�,<"�TF	qS9x�K	R#5irrb)rcrd�pages& �rre�/Validator.validate_ui_schema.<locals>.<genexpr>�s����3�(�Q�D�y�(�rgz$: missing path, title, or componentsz: components must be a list)rr�titler)rLrMrr&rOrPri)rr<rVrWrkr�s&&   @r�validate_ui_schema�Validator.validate_ui_schema�s�����)�T�*�*��K�K�!�!�"<�=���� ��+�G�A�t��d�D�)�)����%�%��a�S��&?�@� ���6�H��3�3�(�3�3�3�3�3�(�3�3�3����%�%��a�S�0T�&U�V� ����d�<�0�$�7�7����%�%��a�S�0K�&L�M� ��,� �rc�<<�V^8�dQhRS[S[S[3,RS[/#r4r6)rrs"�rr r!�s#���%�%�D��c��N�%�t�%rc	�~�Rp\4pVPR.4FpVPR4'd'VPVR,P44VPR4'gKYVPVR,P44K�	\4pVPR.4F�pVPR.4Fjp\	V\264'd#VP
VPR44K;\VR4'gKOVP
VP4Kl	K�	\4pVPR.4F�p	V	PR	.4Fqp27\	V28\294'gKTP\	V30PR4\314'd!V32PR/4P4M.4Ks	K�	V'dGV'd?W5,33pV'd/\V4^8�dVPPR34V24V#)z4Validate consistency between API, DB, and UI layers.Tr;�request_body�
response_bodyr:rHrGr<rz!API references fields not in DB: )rN�get�update�keysrLrPrQ�hasattrrG�lenrrT)rr5rV�35api_fieldsrz�	db_fieldsrXrY�	ui_fieldsr��	component�missing_db_fieldss&&          r� validate_cross_layer_consistency�*Validator.validate_cross_layer_consistency�s������U�36�#����b�9�H��|�|�N�+�+��!�!�(�>�":�"?�"?�"A�B��|�|�O�,�,��!�!�(�?�";�"@�"@�"B�C�	:��E�	� �_�_�%6��;�E����8�R�0���e�T�*�*��M�M�%�)�)�F�"3�4��U�F�+�+��M�M�%�*�*�-�	1�<��E�	��O�O�K��4�D�!�X�X�l�B�7�	��i��.�.��$�$�:�V_�Vc�Vc�dl�Vm�os�Kt�Kt�Y�]�]�8�R�%@�%E�%E�%G�z|�}�8�5��)� *� 6�� �S�):�%;�a�%?����'�'�7�8I�7J�K���rc�x<�V^8�dQhRS[S[S[S[3,,RS[S[S[S[3,,RS[/#)rr>r;rrD)rrs"�rr r!�s>�����D��c�3�h��4H��37��S�#�X��3G��LP�rc���Rp\V\4'gVPPR4R#\	4pVFWp\V\374'dRV9d VPPR4RpK?VP
VR,4KY	VFWpVPR4pV'gKWt9gK&VPPRVPR4R	VR3824KY	V#)z&Validate roles match API requirements.Tzroles must be a listFrGz$Each role must be a dict with 'name'�
required_rolez
API endpoint rrz requires role 'z' which doesn't exist)	rLrMrr&rNrPrQr�rT)rr>r;rV�39role_names�rolerzr�s&&&     r�validate_roles_and_permissions�(Validator.validate_roles_and_permissions�s������%��&�&��K�K�!�!�"8�9���U�40��D��d�D�)�)�V�4�-?����%�%�&L�M� ����N�N�4��<�(��#�H�$�L�L��9�M��}��!@����'�'�#�H�L�L��$8�#9�9I�-��Xm�n��#��rc�<<�V^8�dQhRS[S[S[3,RS[/#r4r6)rrs"�rr r!�s#�����d�3��8�n���rc��a�RpVP4F�wpo\S\4'db\;QJdV3RlR4F'gKRM	RM!V3RlR44'd"VPPRVRS24VR8XgK�\S\4'dK�VPPVR\S424RpK�	V#)	z*Detect hallucinated or nonsensical fields.Tc3�H<"�TFqSP49x�K	R#5ir)�lower)rc�prjs& �rre�7Validator.validate_no_hallucinations.<locals>.<genexpr>�s����\�3[�a�E�K�K�M�)�3[�s�"FzPotential placeholder in z: r?z should be a dict, got )�todo�placeholder�tbdzfix me)	rSrLr�anyrrTrPr&r`)rr5rV�keyrjs&&  @r�validate_no_hallucinations�$Validator.validate_no_hallucinations�s������&�+�+�-�J�C���%��%�%��3�\�3[�\�3�3�3�\�3[�\�\�\��K�K�+�+�.G��u�B�u�g�,V�W��&�&�z�%��/F�/F����%�%���-D�T�%�[�M�&R�S� ��.��rc�<<�V^8�dQhRS[S[S[3,RS[/#r4)rrrr)rrs"�rr r!�s$�����T�#�s�(�^��@P�rc���\4VnVPV4'g
VP#VPVP	R.44VPVP	R.44VP
VP	R.44VPV4VPVP	R.4VP	R.44VPV4VP#)zRun complete validation suite.r:r;r<r>)41rrr@r[r�r{r�r�r�r�)rr5s&&r�validate_complete�Validator.validate_complete�s���&�(����7�7��D�D��;�;��	
�%�%�k�o�o�6G��&L�M�� � �����r�!B�C��������R� @�A�	
�-�-�k�:��+�+��O�O�G�R�(��O�O�L�"�-�	42�	
�'�'��4��{�{�r)rN)�__name__�43__module__�__qualname__�__firstlineno__�__doc__rr)r1r@r[rRr{r�r�r�r�r��__static_attributes__�__classdictcell__)rs@rrrs����@�)�����K�K�+�+�Z��*��<��4%�%�N��6��$�rr)r�r#�typingrrrrr�schemasrrr	r44rrr
rrbrr�<module>r�s*���45�3�3�d�d�d�D�Dr