:py:mod:`oioioi.zeus.backends` ============================== .. py:module:: oioioi.zeus.backends Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: oioioi.zeus.backends.Base64String oioioi.zeus.backends.EagerHTTPBasicAuthHandler oioioi.zeus.backends.ZeusServer oioioi.zeus.backends.ZeusTestServer Functions ~~~~~~~~~ .. autoapisummary:: oioioi.zeus.backends.get_zeus_server oioioi.zeus.backends._json_base64_encode oioioi.zeus.backends._json_base64_decode oioioi.zeus.backends._get_key Attributes ~~~~~~~~~~ .. autoapisummary:: oioioi.zeus.backends.logger oioioi.zeus.backends.zeus_language_map .. py:data:: logger .. py:data:: zeus_language_map .. py:exception:: ZeusError Bases: :py:obj:`Exception` Common base class for all non-exit exceptions. .. py:exception:: ZeusKeyError Bases: :py:obj:`ZeusError`, :py:obj:`KeyError` Common base class for all non-exit exceptions. .. py:function:: get_zeus_server(zeus_id) Returns ZeusServer instance for ``zeus_id``. .. py:class:: Base64String(string) Bases: :py:obj:`object` String that needs to be encoded using base64 when serializing to JSON. .. py:method:: __str__() Return str(self). .. py:method:: __unicode__() .. py:method:: __repr__() Return repr(self). .. py:method:: __eq__(other) Return self==value. .. py:function:: _json_base64_encode(o) .. py:function:: _json_base64_decode(o, wrap=False) .. py:function:: _get_key(dictionary, key) .. py:class:: EagerHTTPBasicAuthHandler(user, passwd) Bases: :py:obj:`urllib.request.BaseHandler` .. py:method:: http_open(req) .. py:method:: https_open(req) .. py:class:: ZeusServer(zeus_id, server_info) Bases: :py:obj:`object` .. py:method:: _send(url, data=None, retries=None, **kwargs) Send the encoded ``data`` to given URL. .. py:method:: _encode_and_send(url, data=None, **kwargs) Encodes the ``data`` dictionary and sends it to the given URL. .. py:method:: send_regular(zeus_problem_id, kind, source_code, language, submission_id, return_url) .. py:class:: ZeusTestServer(zeus_id, server_info) Bases: :py:obj:`ZeusServer` Useful for manual debugging In order to use it, add: 'mock_server': ('__use_object__', 'oioioi.zeus.backends.ZeusTestServer', ('', '', '')), to your ZEUS_INSTANCES dict in settings.py and make sure that your ZEUS_PUSH_GRADE_CALLBACK_URL is correctly set. .. py:method:: _send(url, data=None, retries=None, **kwargs) Send the encoded ``data`` to given URL.