+
    ]Pîi.  ã                  óh  € R t ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 R^RRRR	R
^
RRRRRRR/RRRR/./R^RRRR	R
^
RRRRRRR/RRRR/./R^RRRRR
^RRRRRRR/RRRR/./R^RRRRR
^RRRRRRR/RR RR/./R^RR!RR"R
^(RR#RRR$RR/RR%RR/./.t]! R& ] 4       4      t ! R' R(4      t]! 4       tR)# )*uw   
services/coding_service.py â€” CodingService
Handles: run code (AI compiler), submit code, evaluate, persist results.
)Úannotations)Úsettings)Újson_db)Úcompile_codeÚevaluate_codeÚidÚtitleÚFizzBuzzÚ
difficultyÚeasyÚpointsÚ	statementzÃWrite a function fizzBuzz(n) that prints numbers from 1 to n. For multiples of 3 print 'Fizz'; for multiples of 5 print 'Buzz'; for multiples of both print 'FizzBuzz'. Otherwise print the number.ÚhintsÚlabelzInput: n = 15ÚtypeÚinputz$Output: 1,2,Fizz,4,Buzz,...,FizzBuzzÚoutputzPalindrome Checkz�Write a function isPalindrome(s) that returns true if the string s is a palindrome ignoring case and non-alphanumeric characters.z$Input: 'A man a plan a canal Panama'zOutput: truezFibonacci SequenceÚmediumzmWrite a function fibonacci(n) that returns an array containing the first n numbers in the Fibonacci sequence.zInput: n = 8zOutput: [0,1,1,2,3,5,8,13]zFind DuplicateszrWrite a function findDuplicates(arr) that returns all elements appearing more than once, each duplicate only once.zInput: [1,2,3,2,4,3,5]zOutput: [2,3]zBinary SearchÚhardz˜Implement binarySearch(arr, target) that searches a sorted array. Return the index or -1 if not found. Must run in O(log n). No built-in search methods.z#Input: arr=[1,3,5,7,9,11], target=7zOutput: 3 (index)c              #  ó2   "  € T F  qR ,          x € K  	  R# 5i)r   N© )Ú.0Úqs   & Ú<D:\Python_Codes\gen_ai\people_hub\services\coding_service.pyÚ	<genexpr>r   G   s   é € Ð/¡Y �(—’£Yùs   ‚c                  ó´   € ] tR t^JtRt]R R l4       t]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       tRtR# )ÚCodingServicez2All coding assessment logic. Injected into routes.c               ó   € V ^8„  d   QhRR/# )é   Úreturnú
list[dict]r   )Úformats   "r   Ú__annotate__ÚCodingService.__annotate__P   s   € ÷ ñ ˜:ñ ó    c                 	ó   € \         # )N)Ú	QUESTIONSr   r$   r   Úget_questionsÚCodingService.get_questionsO   s   € äÐr$   c               ó    € V ^8„  d   QhRRRR/# )r   Úquestion_idÚintr   údict | Noner   )r!   s   "r   r"   r#   T   s   € ÷ Lñ L #ð L¨+ñ Lr$   c                	ó8   a € \        V 3R  l\         4       R4      # )c              3  óF   <"  € T F  qR ,          S8X  g   K  Vx € K  	  R# 5i)r   Nr   )r   r   r*   s   & €r   r   Ú-CodingService.get_question.<locals>.<genexpr>U   s   øé € ÐD¡	˜1¨t­W¸Ñ-C—Q’Q£	ùs   ƒ!—
!N)Únextr&   )r*   s   fr   Úget_questionÚCodingService.get_questionS   s   ø€ äÔD¥	ÓDÀdÓKÐKr$   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   ÚlanguageÚstrÚcoder*   r+   r   Údictr   )r!   s   "r   r"   r#   Z   s(   € ÷ 3ñ 3˜3ð 3 cð 3¸ð 3Àñ 3r$   c                óp   € \         P                  V4      pV'       d
   VR,          MRV 2p\        WV4      # )zf
Send code to AI compiler. Returns compiler-style output.
Does NOT reveal solutions or provide fixes.
r   ÚQ)r   r1   r   )r4   r6   r*   r   r   s   &&&  r   Úrun_codeÚCodingService.run_codeY   s5   € ô ×&Ñ& {Ó3ˆß��'–
 q¨¨Ð%6ˆÜ˜H¨EÓ2Ð2r$   c               ó4   € V ^8„  d   QhRRRRRRRRRRRRR	R
/# )r   Úcandidate_idr5   Ú
access_keyr*   r+   Úquestion_textr4   r6   r   r7   r   )r!   s   "r   r"   r#   f   sN   € ÷ )
ñ )
Øð)
àð)
ð ð)
ð ð	)
ð
 ð)
ð ð)
ð 
ñ)
r$   c           "     ó†  € \         P                  V4      pV'       d
   VR,          M^
p\        WEW74      p\        P                  ! \
        P                  RV RVRVRVRVRVRVR,          R	VR	,          R
VR
,          RVR,          RVR,          RRRRRVR,          RVR,          /4      p	RV	R,          RV/VCRV	R,          /C# )zC
Submit code: evaluate with AI, persist to coding_assessment.json.
r   r=   r>   r*   r?   r4   r6   Ú	ai_resultÚai_feedbackÚai_scoreÚai_marksÚ	max_marksÚfinal_marksNÚreviewedFÚ	strengthsÚimprovementsÚsubmission_idr   Úsubmitted_atÚ
created_at)r   r1   r   ÚdbÚinsertr   ÚCODING_RESULTS_FILE)
r=   r>   r*   r?   r4   r6   r   rE   Úeval_resultÚrecords
   &&&&&&    r   Úsubmit_codeÚCodingService.submit_codee   sï   € ô ×&Ñ& {Ó3ˆß#$�A�h–K¨"ˆ	ô $ H°MÓMˆô —’œ8×7Ñ7Ø˜lØ˜jØ˜kØ˜mØ˜hØ˜dØ˜k¨+Õ6Ø˜k¨-Õ8Ø˜k¨*Õ5Ø˜k¨*Õ5Ø˜k¨+Õ6Ø˜dØ˜eØ˜k¨+Õ6Ø˜k¨.Õ9ð:
ó ˆð& ˜V D�\Ø˜[ð
ð ð
ð ˜V LÕ1ñ	
ð 	
r$   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   r=   r5   r>   Úsubmissionsr    Útime_used_secondsr+   r   r7   r   )r!   s   "r   r"   r#   ”   s:   € ÷ 
ñ 
Øð
àð
ð  ð
ð ð	
ð
 
ñ
r$   c                óô  € V Uu0 uF  qDP                  R4      kK  	  pp^ pV F]  pVP                  R4      p\        P                  ! \        P                  V VR7      pV'       g   KE  WhP                  R^ 4      ,          pK_  	  R\        P
                  ! 4       R,           R\        \        \        V 4      4      4      R,           2p	RV	R\        V4      R	VR
\        R\        P
                  ! 4       /# u upi )z'
Record the final submission metadata.
r*   )r=   r*   rD   zPH-CODE-:Né   NÚ-Ú	referenceÚtotal_submittedÚestimated_scoreÚ	max_scorerK   )ÚgetrM   Úfind_oner   rO   Únow_isor5   ÚabsÚhashÚlenÚ	MAX_SCORE)
r=   r>   rU   rV   ÚsÚsubmitted_idsÚtotal_ai_marksÚqidÚprevÚrefs
   &&&&      r   Úfinal_submitÚCodingService.final_submit“   sß   € ñ 8CÓC±{°!Ÿ™˜}Ö-±{ˆÐCØˆãˆAØ—5‘5˜Ó'ˆCÜ—;’;Ü×,Ñ,Ø)ØôˆD÷
 ‰tØ§(¡(¨:°qÓ"9Õ9’ñ ð œŸš› bÕ)Ð*¨!¬C´´D¸Ó4FÓ0GÓ,HÈÕ,LÐ+MÐNˆð  Ø¤ [Ó!1Ø Ø¤Ø¤§¢£ð
ð 	
ùò Ds   …C5c               ó    € V ^8„  d   QhRRRR/# )r   r=   r5   r   r    r   )r!   s   "r   r"   r#   ·   s   € ÷ Uñ U°ð U¸
ñ Ur$   c                	óN   € \         P                  ! \        P                  V R 7      # )©r=   )rM   Ú	find_manyr   rO   ro   s   &r   Úget_candidate_submissionsÚ'CodingService.get_candidate_submissions¶   s   € ä�|Š|œH×8Ñ8À|ÔTÐTr$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rJ   r5   rF   r+   r   r,   r   )r!   s   "r   r"   r#   ½   s!   € ÷ ñ  sð ¸ð Àñ r$   c                	óV   € \         P                  ! \        P                  V R VRR/4      # )rF   rG   T)rM   Úupdater   rO   )rJ   rF   s   &&r   Úset_final_marksÚCodingService.set_final_marks¼   s-   € ä�yŠyœ×5Ñ5°}Ø˜;Ø˜4ðG
ó ð 	r$   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ústaticmethodr'   r1   r:   rR   rk   rq   rv   Ú__static_attributes__r   r$   r   r   r   J   s—   † Ù<ð ôó ðð ôLó ðLð
 ô3ó ð3ð ô)
ó ð)
ðZ ô
ó ð
ðD ôUó ðUð
 ôó ôr$   r   N)r|   Ú
__future__r   Úconfigr   Úutilsr   rM   Úservices.openai_servicer   r   r&   Úsumrd   r   Úcoding_servicer   r$   r   Ú<module>r…      s   ðñõ #Ý Ý ß ?ð
 	ˆa�˜* l°F¸HÀbØðRð 	Ø�o v¨wÐ7ØÐ<¸fÀhÐOð
ðð 	ˆa�Ð,¨l¸FÀHÈbØðMð 	ØÐ<¸fÀgÐNØ�n f¨hÐ7ð
ð
ð 	ˆa�Ð.°¸hÈÐRTØð=ð 	Ø�n f¨gÐ6ØÐ2°F¸HÐEð
ð
ð 	ˆa�Ð+¨\¸8ÀXÈrØðBð 	ØÐ.°¸Ð@Ø�o v¨xÐ8ð
ð
ð 	ˆa�˜/¨<¸ÀÈ2Øð*ð 	ØÐ;¸VÀWÐMØÐ)¨6°8Ð<ð
ðð]:€	ñx Ñ/¡YÓ/Ó/€	÷wñ wñt “‚r$   