11from typing import ClassVar , Optional , Union
22
3- import requests
3+ import httpx
44
55from .base_types import Config , Iterable , Language , LanguageAlias
66from .data import LANGUAGE_TO_LANGUAGE_ID
@@ -40,7 +40,7 @@ def __init__(
4040 self .endpoint = endpoint
4141 self .auth_headers = auth_headers
4242 self .retry_strategy = retry_strategy
43- self .session = requests . Session ()
43+ self .client = httpx . Client ()
4444
4545 try :
4646 self .languages = self .get_languages ()
@@ -53,7 +53,7 @@ def __init__(
5353 ) from e
5454
5555 def __del__ (self ):
56- self .session .close ()
56+ self .client .close ()
5757
5858 @handle_too_many_requests_error_for_preview_client
5959 def get_about (self ) -> dict :
@@ -64,7 +64,7 @@ def get_about(self) -> dict:
6464 dict
6565 General information about judge0.
6666 """
67- response = self .session .get (
67+ response = self .client .get (
6868 f"{ self .endpoint } /about" ,
6969 headers = self .auth_headers ,
7070 )
@@ -80,7 +80,7 @@ def get_config_info(self) -> Config:
8080 Config
8181 Client's configuration.
8282 """
83- response = self .session .get (
83+ response = self .client .get (
8484 f"{ self .endpoint } /config_info" ,
8585 headers = self .auth_headers ,
8686 )
@@ -102,7 +102,7 @@ def get_language(self, language_id: int) -> Language:
102102 Language corresponding to the passed id.
103103 """
104104 request_url = f"{ self .endpoint } /languages/{ language_id } "
105- response = self .session .get (request_url , headers = self .auth_headers )
105+ response = self .client .get (request_url , headers = self .auth_headers )
106106 response .raise_for_status ()
107107 return Language (** response .json ())
108108
@@ -116,7 +116,7 @@ def get_languages(self) -> list[Language]:
116116 A list of supported languages.
117117 """
118118 request_url = f"{ self .endpoint } /languages"
119- response = self .session .get (request_url , headers = self .auth_headers )
119+ response = self .client .get (request_url , headers = self .auth_headers )
120120 response .raise_for_status ()
121121 return [Language (** lang_dict ) for lang_dict in response .json ()]
122122
@@ -129,7 +129,7 @@ def get_statuses(self) -> list[dict]:
129129 list of dict
130130 A list of possible submission statues.
131131 """
132- response = self .session .get (
132+ response = self .client .get (
133133 f"{ self .endpoint } /statuses" ,
134134 headers = self .auth_headers ,
135135 )
@@ -208,7 +208,7 @@ def create_submission(self, submission: Submission) -> Submission:
208208
209209 body = submission .as_body (self )
210210
211- response = self .session .post (
211+ response = self .client .post (
212212 f"{ self .endpoint } /submissions" ,
213213 json = body ,
214214 params = params ,
@@ -254,7 +254,7 @@ def get_submission(
254254 else :
255255 params ["fields" ] = "*"
256256
257- response = self .session .get (
257+ response = self .client .get (
258258 f"{ self .endpoint } /submissions/{ submission .token } " ,
259259 params = params ,
260260 headers = self .auth_headers ,
@@ -291,7 +291,7 @@ def create_submissions(self, submissions: Submissions) -> Submissions:
291291
292292 submissions_body = [submission .as_body (self ) for submission in submissions ]
293293
294- response = self .session .post (
294+ response = self .client .post (
295295 f"{ self .endpoint } /submissions/batch" ,
296296 headers = self .auth_headers ,
297297 params = {"base64_encoded" : "true" },
@@ -342,7 +342,7 @@ def get_submissions(
342342 tokens = "," .join ([submission .token for submission in submissions ])
343343 params ["tokens" ] = tokens
344344
345- response = self .session .get (
345+ response = self .client .get (
346346 f"{ self .endpoint } /submissions/batch" ,
347347 params = params ,
348348 headers = self .auth_headers ,
0 commit comments