{
    "file_diffs": [
        {
            "old_file_content": "",
            "new_file_content": "import os\nimport unittest\n\nfrom Orange.misc.utils.embedder_utils import get_proxies\n\n\nclass TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n",
            "header": {
                "file": {
                    "path": "Orange/misc/tests/test_embedder_utils.py"
                },
                "misc_line": "new file mode 100644"
            },
            "index_line": {
                "old_commit_hash": "000000000",
                "new_commit_hash": "5890e4916",
                "mode": ""
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "/dev/null"
            },
            "plus_file": {
                "path": "b/Orange/misc/tests/test_embedder_utils.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 0,
                            "length": 0
                        },
                        "new_range": {
                            "start": 1,
                            "length": 67
                        },
                        "section": ""
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "import os",
                                "type": "added"
                            },
                            {
                                "content": "import unittest",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "from Orange.misc.utils.embedder_utils import get_proxies",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "class TestProxies(unittest.TestCase):",
                                "type": "added"
                            },
                            {
                                "content": "    def setUp(self) -> None:",
                                "type": "added"
                            },
                            {
                                "content": "        self.previous_http = os.environ.get(\"http_proxy\")",
                                "type": "added"
                            },
                            {
                                "content": "        self.previous_https = os.environ.get(\"https_proxy\")",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ.pop(\"http_proxy\", None)",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ.pop(\"https_proxy\", None)",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def tearDown(self) -> None:",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ.pop(\"http_proxy\", None)",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ.pop(\"https_proxy\", None)",
                                "type": "added"
                            },
                            {
                                "content": "        if self.previous_http is not None:",
                                "type": "added"
                            },
                            {
                                "content": "            os.environ[\"http_proxy\"] = self.previous_http",
                                "type": "added"
                            },
                            {
                                "content": "        if self.previous_https is not None:",
                                "type": "added"
                            },
                            {
                                "content": "            os.environ[\"https_proxy\"] = self.previous_https",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def test_add_scheme(self):",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"http_proxy\"] = \"test1.com\"",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"https_proxy\"] = \"test2.com\"",
                                "type": "added"
                            },
                            {
                                "content": "        res = get_proxies()",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"http_proxy\"] = \"test1.com/path\"",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"https_proxy\"] = \"test2.com/path\"",
                                "type": "added"
                            },
                            {
                                "content": "        res = get_proxies()",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"http_proxy\"] = \"https://test1.com:123\"",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"https_proxy\"] = \"https://test2.com:124\"",
                                "type": "added"
                            },
                            {
                                "content": "        res = get_proxies()",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def test_both_urls(self):",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"http_proxy\"] = \"http://test1.com:123\"",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"https_proxy\"] = \"https://test2.com:124\"",
                                "type": "added"
                            },
                            {
                                "content": "        res = get_proxies()",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertNotIn(\"all://\", res)",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def test_http_only(self):",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"http_proxy\"] = \"http://test1.com:123\"",
                                "type": "added"
                            },
                            {
                                "content": "        res = get_proxies()",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertNotIn(\"https://\", res)",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def test_https_only(self):",
                                "type": "added"
                            },
                            {
                                "content": "        os.environ[\"https_proxy\"] = \"https://test1.com:123\"",
                                "type": "added"
                            },
                            {
                                "content": "        res = get_proxies()",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertNotIn(\"http://\", res)",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def test_none(self):",
                                "type": "added"
                            },
                            {
                                "content": "        \"\"\" When no variable is set return None \"\"\"",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertIsNone(get_proxies())",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "if __name__ == \"__main__\":",
                                "type": "added"
                            },
                            {
                                "content": "    unittest.main()",
                                "type": "added"
                            }
                        ]
                    },
                    "modified_entities": [],
                    "added_entities": [
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "method",
                            "name": "TestProxies.test_none",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 61,
                            "end_lineno": 63,
                            "parent": {
                                "file_name": "Orange/misc/tests/test_embedder_utils.py",
                                "type": "class",
                                "name": "TestProxies",
                                "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 7,
                                "end_lineno": 63,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "method",
                            "name": "TestProxies.setUp",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 8,
                            "end_lineno": 12,
                            "parent": {
                                "file_name": "Orange/misc/tests/test_embedder_utils.py",
                                "type": "class",
                                "name": "TestProxies",
                                "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 7,
                                "end_lineno": 63,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "import",
                            "name": "unittest",
                            "content": "import unittest",
                            "ast_type_str": "Import",
                            "start_lineno": 2,
                            "end_lineno": 2,
                            "parent": null
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "method",
                            "name": "TestProxies.test_add_scheme",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 22,
                            "end_lineno": 39,
                            "parent": {
                                "file_name": "Orange/misc/tests/test_embedder_utils.py",
                                "type": "class",
                                "name": "TestProxies",
                                "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 7,
                                "end_lineno": 63,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "import",
                            "name": "os",
                            "content": "import os",
                            "ast_type_str": "Import",
                            "start_lineno": 1,
                            "end_lineno": 1,
                            "parent": null
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "method",
                            "name": "TestProxies.tearDown",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 14,
                            "end_lineno": 20,
                            "parent": {
                                "file_name": "Orange/misc/tests/test_embedder_utils.py",
                                "type": "class",
                                "name": "TestProxies",
                                "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 7,
                                "end_lineno": 63,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "statement",
                            "name": "",
                            "content": "if __name__ == \"__main__\":\n    unittest.main()",
                            "ast_type_str": "If",
                            "start_lineno": 66,
                            "end_lineno": 67,
                            "parent": null
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "statement",
                            "name": "",
                            "content": "from Orange.misc.utils.embedder_utils import get_proxies",
                            "ast_type_str": "ImportFrom",
                            "start_lineno": 4,
                            "end_lineno": 4,
                            "parent": null
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "method",
                            "name": "TestProxies.test_https_only",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 55,
                            "end_lineno": 59,
                            "parent": {
                                "file_name": "Orange/misc/tests/test_embedder_utils.py",
                                "type": "class",
                                "name": "TestProxies",
                                "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 7,
                                "end_lineno": 63,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "class",
                            "name": "TestProxies",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 7,
                            "end_lineno": 63,
                            "parent": null
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "method",
                            "name": "TestProxies.test_http_only",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 49,
                            "end_lineno": 53,
                            "parent": {
                                "file_name": "Orange/misc/tests/test_embedder_utils.py",
                                "type": "class",
                                "name": "TestProxies",
                                "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 7,
                                "end_lineno": 63,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/misc/tests/test_embedder_utils.py",
                            "type": "method",
                            "name": "TestProxies.test_both_urls",
                            "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 41,
                            "end_lineno": 47,
                            "parent": {
                                "file_name": "Orange/misc/tests/test_embedder_utils.py",
                                "type": "class",
                                "name": "TestProxies",
                                "content": "class TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 7,
                                "end_lineno": 63,
                                "parent": null
                            }
                        }
                    ],
                    "deleted_entities": []
                }
            ]
        },
        {
            "old_file_content": "import logging\nimport hashlib\nimport pickle\nfrom os import environ\nfrom os.path import join, isfile\nfrom typing import Optional, Dict\n\nfrom Orange.canvas.config import cache_dir\n\n\nlog = logging.getLogger(__name__)\n\n\nclass EmbeddingCancelledException(Exception):\n    \"\"\"\n    Thrown when the embedding task is cancelled from another thread.\n    (i.e. ImageEmbedder.cancelled attribute is set to True).\n    \"\"\"\n\n\nclass EmbeddingConnectionError(ConnectionError):\n    \"\"\"\n    Common error when embedding is interrupted because of connection problems\n    or server unavailability - embedder do not respond.\n    \"\"\"\n\n\nclass EmbedderCache:\n\n    _cache_file_blueprint = '{:s}_embeddings.pickle'\n\n    def __init__(self, model):\n        # init the cache\n\n        cache_file_path = self._cache_file_blueprint.format(model)\n        self._cache_file_path = join(cache_dir(), cache_file_path)\n        self._cache_dict = self._init_cache()\n\n    def _init_cache(self):\n        if isfile(self._cache_file_path):\n            try:\n                return self.load_pickle(self._cache_file_path)\n            except EOFError:\n                return {}\n        return {}\n\n    @staticmethod\n    def save_pickle(obj, file_name):\n        with open(file_name, 'wb') as f:\n            pickle.dump(obj, f)\n\n    @staticmethod\n    def load_pickle(file_name):\n        with open(file_name, 'rb') as f:\n            return pickle.load(f)\n\n    @staticmethod\n    def md5_hash(bytes_):\n        md5 = hashlib.md5()\n        md5.update(bytes_)\n        return md5.hexdigest()\n\n    def clear_cache(self):\n        self._cache_dict = {}\n        self.persist_cache()\n\n    def persist_cache(self):\n        self.save_pickle(self._cache_dict, self._cache_file_path)\n\n    def get_cached_result_or_none(self, cache_key):\n        if cache_key in self._cache_dict:\n            return self._cache_dict[cache_key]\n        return None\n\n    def add(self, cache_key, value):\n        self._cache_dict[cache_key] = value\n\n\ndef get_proxies() -> Optional[Dict[str, str]]:\n    \"\"\"\n    Return dict with proxy addresses if they exists.\n\n    Returns\n    -------\n    proxy_dict\n        Dictionary with format {proxy type: proxy address} or None if\n        they not set.\n    \"\"\"\n    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:\n        if url and not url.startswith(prot):\n            return f\"{prot}://{url}\"\n        return url\n    http_proxy = add_protocol(environ.get(\"http_proxy\"), \"http\")\n    https_proxy = add_protocol(environ.get(\"https_proxy\"), \"https\")\n    if http_proxy and https_proxy:  # both proxy addresses defined\n        return {\"http://\": https_proxy, \"https://\": https_proxy}\n    elif any([https_proxy, http_proxy]):  # one of the proxies defined\n        return {\"all://\": http_proxy or https_proxy}\n    return None  # proxies not defined\n",
            "new_file_content": "import logging\nimport hashlib\nimport pickle\nfrom os import environ\nfrom os.path import join, isfile\nfrom typing import Optional, Dict\n\nfrom Orange.canvas.config import cache_dir\n\n\nlog = logging.getLogger(__name__)\n\n\nclass EmbeddingCancelledException(Exception):\n    \"\"\"\n    Thrown when the embedding task is cancelled from another thread.\n    (i.e. ImageEmbedder.cancelled attribute is set to True).\n    \"\"\"\n\n\nclass EmbeddingConnectionError(ConnectionError):\n    \"\"\"\n    Common error when embedding is interrupted because of connection problems\n    or server unavailability - embedder do not respond.\n    \"\"\"\n\n\nclass EmbedderCache:\n\n    _cache_file_blueprint = '{:s}_embeddings.pickle'\n\n    def __init__(self, model):\n        # init the cache\n\n        cache_file_path = self._cache_file_blueprint.format(model)\n        self._cache_file_path = join(cache_dir(), cache_file_path)\n        self._cache_dict = self._init_cache()\n\n    def _init_cache(self):\n        if isfile(self._cache_file_path):\n            try:\n                return self.load_pickle(self._cache_file_path)\n            except EOFError:\n                return {}\n        return {}\n\n    @staticmethod\n    def save_pickle(obj, file_name):\n        with open(file_name, 'wb') as f:\n            pickle.dump(obj, f)\n\n    @staticmethod\n    def load_pickle(file_name):\n        with open(file_name, 'rb') as f:\n            return pickle.load(f)\n\n    @staticmethod\n    def md5_hash(bytes_):\n        md5 = hashlib.md5()\n        md5.update(bytes_)\n        return md5.hexdigest()\n\n    def clear_cache(self):\n        self._cache_dict = {}\n        self.persist_cache()\n\n    def persist_cache(self):\n        self.save_pickle(self._cache_dict, self._cache_file_path)\n\n    def get_cached_result_or_none(self, cache_key):\n        if cache_key in self._cache_dict:\n            return self._cache_dict[cache_key]\n        return None\n\n    def add(self, cache_key, value):\n        self._cache_dict[cache_key] = value\n\n\ndef get_proxies() -> Optional[Dict[str, str]]:\n    \"\"\"\n    Return dict with proxy addresses if they exist.\n\n    Returns\n    -------\n    proxy_dict\n        Dictionary with format {proxy type: proxy address} or None if\n        they not set.\n    \"\"\"\n    def add_scheme(url: Optional[str]) -> Optional[str]:\n        if url is not None and \"://\" not in url:\n            # if no scheme default to http - as other libraries do (e.g. requests)\n            return f\"http://{url}\"\n        else:\n            return url\n\n    http_proxy = add_scheme(environ.get(\"http_proxy\"))\n    https_proxy = add_scheme(environ.get(\"https_proxy\"))\n    proxy_dict = {}\n    if http_proxy:\n        proxy_dict[\"http://\"] = http_proxy\n    if https_proxy:\n        proxy_dict[\"https://\"] = https_proxy\n    return proxy_dict if proxy_dict else None\n",
            "header": {
                "file": {
                    "path": "Orange/misc/utils/embedder_utils.py"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "e01c6ab91",
                "new_commit_hash": "f19b8ee04",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/Orange/misc/utils/embedder_utils.py"
            },
            "plus_file": {
                "path": "b/Orange/misc/utils/embedder_utils.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 78,
                            "length": 7
                        },
                        "new_range": {
                            "start": 78,
                            "length": 7
                        },
                        "section": "class EmbedderCache:"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "def get_proxies() -> Optional[Dict[str, str]]:",
                                "type": "context"
                            },
                            {
                                "content": "    \"\"\"",
                                "type": "context"
                            },
                            {
                                "content": "    Return dict with proxy addresses if they exists.",
                                "type": "deleted"
                            },
                            {
                                "content": "    Return dict with proxy addresses if they exist.",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    Returns",
                                "type": "context"
                            },
                            {
                                "content": "    -------",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "Orange/misc/utils/embedder_utils.py",
                            "type": "function",
                            "name": "get_proxies",
                            "content": "def get_proxies() -> Optional[Dict[str, str]]:\n    \"\"\"\n    Return dict with proxy addresses if they exists.\n\n    Returns\n    -------\n    proxy_dict\n        Dictionary with format {proxy type: proxy address} or None if\n        they not set.\n    \"\"\"\n    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:\n        if url and not url.startswith(prot):\n            return f\"{prot}://{url}\"\n        return url\n    http_proxy = add_protocol(environ.get(\"http_proxy\"), \"http\")\n    https_proxy = add_protocol(environ.get(\"https_proxy\"), \"https\")\n    if http_proxy and https_proxy:  # both proxy addresses defined\n        return {\"http://\": https_proxy, \"https://\": https_proxy}\n    elif any([https_proxy, http_proxy]):  # one of the proxies defined\n        return {\"all://\": http_proxy or https_proxy}\n    return None",
                            "ast_type_str": "FunctionDef",
                            "start_lineno": 79,
                            "end_lineno": 99,
                            "parent": null
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                },
                {
                    "descriptor": {
                        "old_range": {
                            "start": 86,
                            "length": 14
                        },
                        "new_range": {
                            "start": 86,
                            "length": 18
                        },
                        "section": "def get_proxies() -> Optional[Dict[str, str]]:"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "        Dictionary with format {proxy type: proxy address} or None if",
                                "type": "context"
                            },
                            {
                                "content": "        they not set.",
                                "type": "context"
                            },
                            {
                                "content": "    \"\"\"",
                                "type": "context"
                            },
                            {
                                "content": "    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:",
                                "type": "deleted"
                            },
                            {
                                "content": "        if url and not url.startswith(prot):",
                                "type": "deleted"
                            },
                            {
                                "content": "            return f\"{prot}://{url}\"",
                                "type": "deleted"
                            },
                            {
                                "content": "        return url",
                                "type": "deleted"
                            },
                            {
                                "content": "    http_proxy = add_protocol(environ.get(\"http_proxy\"), \"http\")",
                                "type": "deleted"
                            },
                            {
                                "content": "    https_proxy = add_protocol(environ.get(\"https_proxy\"), \"https\")",
                                "type": "deleted"
                            },
                            {
                                "content": "    if http_proxy and https_proxy:  # both proxy addresses defined",
                                "type": "deleted"
                            },
                            {
                                "content": "        return {\"http://\": https_proxy, \"https://\": https_proxy}",
                                "type": "deleted"
                            },
                            {
                                "content": "    elif any([https_proxy, http_proxy]):  # one of the proxies defined",
                                "type": "deleted"
                            },
                            {
                                "content": "        return {\"all://\": http_proxy or https_proxy}",
                                "type": "deleted"
                            },
                            {
                                "content": "    return None  # proxies not defined",
                                "type": "deleted"
                            },
                            {
                                "content": "    def add_scheme(url: Optional[str]) -> Optional[str]:",
                                "type": "added"
                            },
                            {
                                "content": "        if url is not None and \"://\" not in url:",
                                "type": "added"
                            },
                            {
                                "content": "            # if no scheme default to http - as other libraries do (e.g. requests)",
                                "type": "added"
                            },
                            {
                                "content": "            return f\"http://{url}\"",
                                "type": "added"
                            },
                            {
                                "content": "        else:",
                                "type": "added"
                            },
                            {
                                "content": "            return url",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    http_proxy = add_scheme(environ.get(\"http_proxy\"))",
                                "type": "added"
                            },
                            {
                                "content": "    https_proxy = add_scheme(environ.get(\"https_proxy\"))",
                                "type": "added"
                            },
                            {
                                "content": "    proxy_dict = {}",
                                "type": "added"
                            },
                            {
                                "content": "    if http_proxy:",
                                "type": "added"
                            },
                            {
                                "content": "        proxy_dict[\"http://\"] = http_proxy",
                                "type": "added"
                            },
                            {
                                "content": "    if https_proxy:",
                                "type": "added"
                            },
                            {
                                "content": "        proxy_dict[\"https://\"] = https_proxy",
                                "type": "added"
                            },
                            {
                                "content": "    return proxy_dict if proxy_dict else None",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "Orange/misc/utils/embedder_utils.py",
                            "type": "function",
                            "name": "get_proxies",
                            "content": "def get_proxies() -> Optional[Dict[str, str]]:\n    \"\"\"\n    Return dict with proxy addresses if they exists.\n\n    Returns\n    -------\n    proxy_dict\n        Dictionary with format {proxy type: proxy address} or None if\n        they not set.\n    \"\"\"\n    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:\n        if url and not url.startswith(prot):\n            return f\"{prot}://{url}\"\n        return url\n    http_proxy = add_protocol(environ.get(\"http_proxy\"), \"http\")\n    https_proxy = add_protocol(environ.get(\"https_proxy\"), \"https\")\n    if http_proxy and https_proxy:  # both proxy addresses defined\n        return {\"http://\": https_proxy, \"https://\": https_proxy}\n    elif any([https_proxy, http_proxy]):  # one of the proxies defined\n        return {\"all://\": http_proxy or https_proxy}\n    return None",
                            "ast_type_str": "FunctionDef",
                            "start_lineno": 79,
                            "end_lineno": 99,
                            "parent": null
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                }
            ]
        }
    ],
    "old_commit_hash": "7f830084b32b8f185acc46cb91ff003d79d21316^",
    "new_commit_hash": "7f830084b32b8f185acc46cb91ff003d79d21316",
    "commit_message": "Embedders - fix proxies, default on http, tests",
    "commit_date": "2022-06-17T13:18:13+02:00",
    "metadata": {}
}
{
    "repo_name": "orange3",
    "new_commit_hash": "7f830084b32b8f185acc46cb91ff003d79d21316",
    "test_file_codes": [
        "import os\nimport unittest\n\nfrom Orange.misc.utils.embedder_utils import get_proxies\n\n\nclass TestProxies(unittest.TestCase):\n    def setUp(self) -> None:\n        self.previous_http = os.environ.get(\"http_proxy\")\n        self.previous_https = os.environ.get(\"https_proxy\")\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n\n    def tearDown(self) -> None:\n        os.environ.pop(\"http_proxy\", None)\n        os.environ.pop(\"https_proxy\", None)\n        if self.previous_http is not None:\n            os.environ[\"http_proxy\"] = self.previous_http\n        if self.previous_https is not None:\n            os.environ[\"https_proxy\"] = self.previous_https\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"test1.com/path\"\n        os.environ[\"https_proxy\"] = \"test2.com/path\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com/path\", res.get(\"http://\"))\n        self.assertEqual(\"http://test2.com/path\", res.get(\"https://\"))\n\n        os.environ[\"http_proxy\"] = \"https://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertEqual(\"https://test2.com:124\", res.get(\"https://\"))\n        self.assertNotIn(\"all://\", res)\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\n        self.assertNotIn(\"https://\", res)\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n        self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\n        self.assertNotIn(\"http://\", res)\n\n    def test_none(self):\n        \"\"\" When no variable is set return None \"\"\"\n        self.assertIsNone(get_proxies())\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"
    ],
    "test_file_names": [
        "test_1.py"
    ],
    "setup_res_code": 0,
    "setup_res_stdout": "Starting Orange installation attempts...\nAttempting installation with Python 3.7...\nrunning build_ext\nCompiling Orange/classification/_tree_scorers.pyx because it changed.\nCompiling Orange/data/_contingency.pyx because it changed.\nCompiling Orange/data/_io.pyx because it changed.\nCompiling Orange/data/_valuecount.pyx because it changed.\nCompiling Orange/data/_variable.pyx because it changed.\nCompiling Orange/distance/_distance.pyx because it changed.\nCompiling Orange/preprocess/_discretize.pyx because it changed.\nCompiling Orange/preprocess/_relieff.pyx because it changed.\nCompiling Orange/projection/_som.pyx because it changed.\n[1/9] Cythonizing Orange/classification/_tree_scorers.pyx\n[2/9] Cythonizing Orange/data/_contingency.pyx\n[3/9] Cythonizing Orange/data/_io.pyx\n[4/9] Cythonizing Orange/data/_valuecount.pyx\n[5/9] Cythonizing Orange/data/_variable.pyx\n[6/9] Cythonizing Orange/distance/_distance.pyx\n[7/9] Cythonizing Orange/preprocess/_discretize.pyx\n[8/9] Cythonizing Orange/preprocess/_relieff.pyx\n[9/9] Cythonizing Orange/projection/_som.pyx\nbuilding 'Orange.classification._tree_scorers' extension\ncreating build\ncreating build/temp.linux-x86_64-3.7\ncreating build/temp.linux-x86_64-3.7/Orange\ncreating build/temp.linux-x86_64-3.7/Orange/classification\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/classification/_tree_scorers.c -o build/temp.linux-x86_64-3.7/Orange/classification/_tree_scorers.o\ncreating build/lib.linux-x86_64-3.7\ncreating build/lib.linux-x86_64-3.7/Orange\ncreating build/lib.linux-x86_64-3.7/Orange/classification\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/classification/_tree_scorers.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/classification/_tree_scorers.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.data._contingency' extension\ncreating build/temp.linux-x86_64-3.7/Orange/data\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/data/_contingency.c -o build/temp.linux-x86_64-3.7/Orange/data/_contingency.o\ncreating build/lib.linux-x86_64-3.7/Orange/data\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/data/_contingency.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/data/_contingency.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.data._io' extension\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/data/_io.c -o build/temp.linux-x86_64-3.7/Orange/data/_io.o\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/data/_io.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/data/_io.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.data._valuecount' extension\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/data/_valuecount.c -o build/temp.linux-x86_64-3.7/Orange/data/_valuecount.o\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/data/_valuecount.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/data/_valuecount.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.data._variable' extension\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/data/_variable.c -o build/temp.linux-x86_64-3.7/Orange/data/_variable.o\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/data/_variable.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/data/_variable.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.distance._distance' extension\ncreating build/temp.linux-x86_64-3.7/Orange/distance\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/distance/_distance.c -o build/temp.linux-x86_64-3.7/Orange/distance/_distance.o\ncreating build/lib.linux-x86_64-3.7/Orange/distance\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/distance/_distance.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/distance/_distance.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.preprocess._discretize' extension\ncreating build/temp.linux-x86_64-3.7/Orange/preprocess\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/preprocess/_discretize.c -o build/temp.linux-x86_64-3.7/Orange/preprocess/_discretize.o\ncreating build/lib.linux-x86_64-3.7/Orange/preprocess\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/preprocess/_discretize.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/preprocess/_discretize.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.preprocess._relieff' extension\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/preprocess/_relieff.cpp -o build/temp.linux-x86_64-3.7/Orange/preprocess/_relieff.o\nc++ -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/preprocess/_relieff.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/preprocess/_relieff.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.projection._som' extension\ncreating build/temp.linux-x86_64-3.7/Orange/projection\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/projection/_som.c -o build/temp.linux-x86_64-3.7/Orange/projection/_som.o\ncreating build/lib.linux-x86_64-3.7/Orange/projection\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/projection/_som.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/projection/_som.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.classification._simple_tree' extension\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/classification/_simple_tree.c -o build/temp.linux-x86_64-3.7/Orange/classification/_simple_tree.o\ncc -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/classification/_simple_tree.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/classification/_simple_tree.cpython-37m-x86_64-linux-gnu.so\nbuilding 'Orange.widgets.utils._grid_density' extension\ncreating build/temp.linux-x86_64-3.7/Orange/widgets\ncreating build/temp.linux-x86_64-3.7/Orange/widgets/utils\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m -c Orange/widgets/utils/_grid_density.cpp -o build/temp.linux-x86_64-3.7/Orange/widgets/utils/_grid_density.o\ncreating build/lib.linux-x86_64-3.7/Orange/widgets\ncreating build/lib.linux-x86_64-3.7/Orange/widgets/utils\nc++ -pthread -shared -L/tools/deps/lib build/temp.linux-x86_64-3.7/Orange/widgets/utils/_grid_density.o -L/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/lib -lm -lpython3.7m -o build/lib.linux-x86_64-3.7/Orange/widgets/utils/_grid_density.cpython-37m-x86_64-linux-gnu.so\ncopying build/lib.linux-x86_64-3.7/Orange/classification/_tree_scorers.cpython-37m-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-3.7/Orange/data/_contingency.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/data/_io.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/data/_valuecount.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/data/_variable.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/distance/_distance.cpython-37m-x86_64-linux-gnu.so -> Orange/distance\ncopying build/lib.linux-x86_64-3.7/Orange/preprocess/_discretize.cpython-37m-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-3.7/Orange/preprocess/_relieff.cpython-37m-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-3.7/Orange/projection/_som.cpython-37m-x86_64-linux-gnu.so -> Orange/projection\ncopying build/lib.linux-x86_64-3.7/Orange/classification/_simple_tree.cpython-37m-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-3.7/Orange/widgets/utils/_grid_density.cpython-37m-x86_64-linux-gnu.so -> Orange/widgets/utils\nrunning develop\nrunning egg_info\ncreating Orange3.egg-info\nwriting Orange3.egg-info/PKG-INFO\nwriting dependency_links to Orange3.egg-info/dependency_links.txt\nwriting entry points to Orange3.egg-info/entry_points.txt\nwriting requirements to Orange3.egg-info/requires.txt\nwriting top-level names to Orange3.egg-info/top_level.txt\nwriting manifest file 'Orange3.egg-info/SOURCES.txt'\nreading manifest file 'Orange3.egg-info/SOURCES.txt'\nreading manifest template 'MANIFEST.in'\nadding license file 'LICENSE'\nwriting manifest file 'Orange3.egg-info/SOURCES.txt'\nrunning build_ext\ncopying build/lib.linux-x86_64-3.7/Orange/classification/_tree_scorers.cpython-37m-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-3.7/Orange/data/_contingency.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/data/_io.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/data/_valuecount.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/data/_variable.cpython-37m-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-3.7/Orange/distance/_distance.cpython-37m-x86_64-linux-gnu.so -> Orange/distance\ncopying build/lib.linux-x86_64-3.7/Orange/preprocess/_discretize.cpython-37m-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-3.7/Orange/preprocess/_relieff.cpython-37m-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-3.7/Orange/projection/_som.cpython-37m-x86_64-linux-gnu.so -> Orange/projection\ncopying build/lib.linux-x86_64-3.7/Orange/classification/_simple_tree.cpython-37m-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-3.7/Orange/widgets/utils/_grid_density.cpython-37m-x86_64-linux-gnu.so -> Orange/widgets/utils\nCreating /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/Orange3.egg-link (link to .)\nAdding Orange3 3.33.0.dev0+7f83008 to easy-install.pth file\nInstalling orange-canvas script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316\nProcessing dependencies for Orange3==3.33.0.dev0+7f83008\nSearching for XlsxWriter==3.2.0\nBest match: XlsxWriter 3.2.0\nAdding XlsxWriter 3.2.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for xlrd==2.0.1\nBest match: xlrd 2.0.1\nAdding xlrd 2.0.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for setuptools==59.8.0\nBest match: setuptools 59.8.0\nAdding setuptools 59.8.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for serverfiles==0.3.1\nBest match: serverfiles 0.3.1\nAdding serverfiles 0.3.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for scipy==1.7.3\nBest match: scipy 1.7.3\nAdding scipy 1.7.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for scikit-learn==1.0.2\nBest match: scikit-learn 1.0.2\nAdding scikit-learn 1.0.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for requests==2.31.0\nBest match: requests 2.31.0\nAdding requests 2.31.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for qtconsole==5.4.4\nBest match: qtconsole 5.4.4\nAdding qtconsole 5.4.4 to easy-install.pth file\nInstalling jupyter-qtconsole script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for PyYAML==6.0.1\nBest match: PyYAML 6.0.1\nAdding PyYAML 6.0.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for python-louvain==0.16\nBest match: python-louvain 0.16\nAdding python-louvain 0.16 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pyqtgraph==0.12.3\nBest match: pyqtgraph 0.12.3\nAdding pyqtgraph 0.12.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pygments==2.17.2\nBest match: pygments 2.17.2\nAdding pygments 2.17.2 to easy-install.pth file\nInstalling pygmentize script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pip==24.0\nBest match: pip 24.0\nAdding pip 24.0 to easy-install.pth file\nInstalling pip script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling pip3 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling pip3.10 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pandas==1.3.5\nBest match: pandas 1.3.5\nAdding pandas 1.3.5 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for orange-widget-base==4.22.0\nBest match: orange-widget-base 4.22.0\nAdding orange-widget-base 4.22.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for orange-canvas-core==0.1.35\nBest match: orange-canvas-core 0.1.35\nAdding orange-canvas-core 0.1.35 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for openpyxl==3.1.3\nBest match: openpyxl 3.1.3\nAdding openpyxl 3.1.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for openTSNE==1.0.1\nBest match: openTSNE 1.0.1\nAdding openTSNE 1.0.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for numpy==1.17.5\nBest match: numpy 1.17.5\nAdding numpy 1.17.5 to easy-install.pth file\nInstalling f2py script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling f2py3 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling f2py3.7 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for networkx==2.6.3\nBest match: networkx 2.6.3\nAdding networkx 2.6.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for matplotlib==3.5.3\nBest match: matplotlib 3.5.3\nAdding matplotlib 3.5.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for keyrings.alt==4.2.0\nBest match: keyrings.alt 4.2.0\nAdding keyrings.alt 4.2.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for keyring==24.1.1\nBest match: keyring 24.1.1\nAdding keyring 24.1.1 to easy-install.pth file\nInstalling keyring script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for joblib==1.3.2\nBest match: joblib 1.3.2\nAdding joblib 1.3.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for httpx==0.24.1\nBest match: httpx 0.24.1\nAdding httpx 0.24.1 to easy-install.pth file\nInstalling httpx script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for chardet==5.2.0\nBest match: chardet 5.2.0\nAdding chardet 5.2.0 to easy-install.pth file\nInstalling chardetect script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for Bottleneck==1.4.0\nBest match: Bottleneck 1.4.0\nAdding Bottleneck 1.4.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for baycomp==1.0.3\nBest match: baycomp 1.0.3\nAdding baycomp 1.0.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for PyQtWebEngine==5.15.6\nBest match: PyQtWebEngine 5.15.6\nAdding PyQtWebEngine 5.15.6 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for PyQt5==5.15.10\nBest match: PyQt5 5.15.10\nAdding PyQt5 5.15.10 to easy-install.pth file\nInstalling pylupdate5 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling pyrcc5 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling pyuic5 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for AnyQt==0.2.0\nBest match: AnyQt 0.2.0\nAdding AnyQt 0.2.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for threadpoolctl==3.1.0\nBest match: threadpoolctl 3.1.0\nAdding threadpoolctl 3.1.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for idna==3.10\nBest match: idna 3.10\nAdding idna 3.10 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for charset-normalizer==3.4.1\nBest match: charset-normalizer 3.4.1\nAdding charset-normalizer 3.4.1 to easy-install.pth file\nInstalling normalizer script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for certifi==2024.12.14\nBest match: certifi 2024.12.14\nAdding certifi 2024.12.14 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for urllib3==2.0.7\nBest match: urllib3 2.0.7\nAdding urllib3 2.0.7 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for ipython-genutils==0.2.0\nBest match: ipython-genutils 0.2.0\nAdding ipython-genutils 0.2.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pyzmq==26.2.0\nBest match: pyzmq 26.2.0\nAdding pyzmq 26.2.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for QtPy==2.4.2\nBest match: QtPy 2.4.2\nAdding QtPy 2.4.2 to easy-install.pth file\nInstalling qtpy script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for jupyter-core==4.12.0\nBest match: jupyter-core 4.12.0\nAdding jupyter-core 4.12.0 to easy-install.pth file\nInstalling jupyter script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling jupyter-migrate script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling jupyter-troubleshoot script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for traitlets==5.9.0\nBest match: traitlets 5.9.0\nAdding traitlets 5.9.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for jupyter-client==7.4.9\nBest match: jupyter-client 7.4.9\nAdding jupyter-client 7.4.9 to easy-install.pth file\nInstalling jupyter-kernel script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling jupyter-kernelspec script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling jupyter-run script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for packaging==24.0\nBest match: packaging 24.0\nAdding packaging 24.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for ipykernel==6.16.2\nBest match: ipykernel 6.16.2\nAdding ipykernel 6.16.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pytz==2024.2\nBest match: pytz 2024.2\nAdding pytz 2024.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for python-dateutil==2.9.0.post0\nBest match: python-dateutil 2.9.0.post0\nAdding python-dateutil 2.9.0.post0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for typing-extensions==4.7.1\nBest match: typing-extensions 4.7.1\nAdding typing-extensions 4.7.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for commonmark==0.9.1\nBest match: commonmark 0.9.1\nAdding commonmark 0.9.1 to easy-install.pth file\nInstalling cmark script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for importlib-metadata==6.7.0\nBest match: importlib-metadata 6.7.0\nAdding importlib-metadata 6.7.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for docutils==0.20.1\nBest match: docutils 0.20.1\nAdding docutils 0.20.1 to easy-install.pth file\nInstalling docutils script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for qasync==0.25.0\nBest match: qasync 0.25.0\nAdding qasync 0.25.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for dictdiffer==0.9.0\nBest match: dictdiffer 0.9.0\nAdding dictdiffer 0.9.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for requests-cache==1.1.1\nBest match: requests-cache 1.1.1\nAdding requests-cache 1.1.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for et-xmlfile==1.1.0\nBest match: et-xmlfile 1.1.0\nAdding et-xmlfile 1.1.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pyparsing==3.1.4\nBest match: pyparsing 3.1.4\nAdding pyparsing 3.1.4 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for fonttools==4.38.0\nBest match: fonttools 4.38.0\nAdding fonttools 4.38.0 to easy-install.pth file\nInstalling fonttools script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling pyftmerge script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling pyftsubset script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling ttx script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for Pillow==9.5.0\nBest match: Pillow 9.5.0\nAdding Pillow 9.5.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for cycler==0.11.0\nBest match: cycler 0.11.0\nAdding cycler 0.11.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for kiwisolver==1.4.5\nBest match: kiwisolver 1.4.5\nAdding kiwisolver 1.4.5 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for jaraco.classes==3.2.3\nBest match: jaraco.classes 3.2.3\nAdding jaraco.classes 3.2.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for SecretStorage==3.3.3\nBest match: SecretStorage 3.3.3\nAdding SecretStorage 3.3.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for importlib-resources==5.12.0\nBest match: importlib-resources 5.12.0\nAdding importlib-resources 5.12.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for jeepney==0.8.0\nBest match: jeepney 0.8.0\nAdding jeepney 0.8.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for httpcore==0.17.3\nBest match: httpcore 0.17.3\nAdding httpcore 0.17.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for sniffio==1.3.1\nBest match: sniffio 1.3.1\nAdding sniffio 1.3.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for PyQt5-sip==12.13.0\nBest match: PyQt5-sip 12.13.0\nAdding PyQt5-sip 12.13.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for PyQtWebEngine-Qt5==5.15.16\nBest match: PyQtWebEngine-Qt5 5.15.16\nAdding PyQtWebEngine-Qt5 5.15.16 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for PyQt5-Qt5==5.15.16\nBest match: PyQt5-Qt5 5.15.16\nAdding PyQt5-Qt5 5.15.16 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for entrypoints==0.4\nBest match: entrypoints 0.4\nAdding entrypoints 0.4 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for tornado==6.2\nBest match: tornado 6.2\nAdding tornado 6.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for nest-asyncio==1.6.0\nBest match: nest-asyncio 1.6.0\nAdding nest-asyncio 1.6.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for psutil==6.1.1\nBest match: psutil 6.1.1\nAdding psutil 6.1.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for ipython==7.34.0\nBest match: ipython 7.34.0\nAdding ipython 7.34.0 to easy-install.pth file\nInstalling iptest script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling iptest3 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling ipython script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\nInstalling ipython3 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for matplotlib-inline==0.1.6\nBest match: matplotlib-inline 0.1.6\nAdding matplotlib-inline 0.1.6 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for debugpy==1.7.0\nBest match: debugpy 1.7.0\nAdding debugpy 1.7.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for six==1.17.0\nBest match: six 1.17.0\nAdding six 1.17.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for zipp==3.15.0\nBest match: zipp 3.15.0\nAdding zipp 3.15.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for url-normalize==1.4.3\nBest match: url-normalize 1.4.3\nAdding url-normalize 1.4.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for platformdirs==4.0.0\nBest match: platformdirs 4.0.0\nAdding platformdirs 4.0.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for cattrs==23.1.2\nBest match: cattrs 23.1.2\nAdding cattrs 23.1.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for attrs==24.2.0\nBest match: attrs 24.2.0\nAdding attrs 24.2.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for more-itertools==9.1.0\nBest match: more-itertools 9.1.0\nAdding more-itertools 9.1.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for cryptography==44.0.0\nBest match: cryptography 44.0.0\nAdding cryptography 44.0.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for anyio==3.7.1\nBest match: anyio 3.7.1\nAdding anyio 3.7.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for h11==0.14.0\nBest match: h11 0.14.0\nAdding h11 0.14.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pexpect==4.9.0\nBest match: pexpect 4.9.0\nAdding pexpect 4.9.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for backcall==0.2.0\nBest match: backcall 0.2.0\nAdding backcall 0.2.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for prompt-toolkit==3.0.48\nBest match: prompt-toolkit 3.0.48\nAdding prompt-toolkit 3.0.48 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pickleshare==0.7.5\nBest match: pickleshare 0.7.5\nAdding pickleshare 0.7.5 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for jedi==0.19.2\nBest match: jedi 0.19.2\nAdding jedi 0.19.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for decorator==5.1.1\nBest match: decorator 5.1.1\nAdding decorator 5.1.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for exceptiongroup==1.2.2\nBest match: exceptiongroup 1.2.2\nAdding exceptiongroup 1.2.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for cffi==1.15.1\nBest match: cffi 1.15.1\nAdding cffi 1.15.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for ptyprocess==0.7.0\nBest match: ptyprocess 0.7.0\nAdding ptyprocess 0.7.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for wcwidth==0.2.13\nBest match: wcwidth 0.2.13\nAdding wcwidth 0.2.13 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for parso==0.8.4\nBest match: parso 0.8.4\nAdding parso 0.8.4 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nSearching for pycparser==2.21\nBest match: pycparser 2.21\nAdding pycparser 2.21 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages\nFinished processing dependencies for Orange3==3.33.0.dev0+7f83008\nVerifying Orange installation...\n✅ Orange installation successful!\nSuccessfully installed orange using Python 3.7\n",
    "setup_res_stderr": "Using CPython 3.7.9\nCreating virtual environment at: .venv\nActivate with: source .venv/bin/activate\nResolved 18 packages in 54ms\nPrepared 18 packages in 24ms\nInstalled 18 packages in 177ms\n + cython==0.29.37\n + exceptiongroup==1.2.2\n + importlib-metadata==6.7.0\n + iniconfig==2.0.0\n + numpy==1.17.5\n + packaging==24.0\n + pluggy==1.2.0\n + pyqt5==5.15.10\n + pyqt5-qt5==5.15.16\n + pyqt5-sip==12.13.0\n + pyqtwebengine==5.15.6\n + pyqtwebengine-qt5==5.15.16\n + pytest==7.4.4\n + setuptools==59.8.0\n + tomli==2.0.1\n + typing-extensions==4.7.1\n + wheel==0.42.0\n + zipp==3.15.0\nResolved 54 packages in 480ms\nInstalled 47 packages in 770ms\n + anyio==3.7.1\n + baycomp==1.0.3\n + bottleneck==1.4.0\n + certifi==2024.12.14\n + cffi==1.15.1\n + chardet==5.2.0\n + charset-normalizer==3.4.1\n + cryptography==44.0.0\n + cycler==0.11.0\n + et-xmlfile==1.1.0\n + fonttools==4.38.0\n + h11==0.14.0\n + httpcore==0.17.3\n + httpx==0.24.1\n + idna==3.10\n + importlib-resources==5.12.0\n + jaraco-classes==3.2.3\n + jeepney==0.8.0\n + joblib==1.3.2\n + keyring==24.1.1\n + keyrings-alt==4.2.0\n + kiwisolver==1.4.5\n + matplotlib==3.5.3\n + more-itertools==9.1.0\n + networkx==2.6.3\n + openpyxl==3.1.3\n + opentsne==1.0.1\n + pandas==1.3.5\n + pillow==9.5.0\n + pip==24.0\n + pycparser==2.21\n + pyparsing==3.1.4\n + python-dateutil==2.9.0.post0\n + python-louvain==0.16\n + pytz==2024.2\n + pyyaml==6.0.1\n + requests==2.31.0\n + scikit-learn==1.0.2\n + scipy==1.7.3\n + secretstorage==3.3.3\n + serverfiles==0.3.1\n + six==1.17.0\n + sniffio==1.3.1\n + threadpoolctl==3.1.0\n + urllib3==2.0.7\n + xlrd==2.0.1\n + xlsxwriter==3.2.0\nResolved 59 packages in 489ms\nInstalled 38 packages in 366ms\n + anyqt==0.2.0\n + attrs==24.2.0\n + backcall==0.2.0\n + cattrs==23.1.2\n + commonmark==0.9.1\n + debugpy==1.7.0\n + decorator==5.1.1\n + dictdiffer==0.9.0\n + docutils==0.20.1\n + entrypoints==0.4\n + ipykernel==6.16.2\n + ipython==7.34.0\n + ipython-genutils==0.2.0\n + jedi==0.19.2\n + jupyter-client==7.4.9\n + jupyter-core==4.12.0\n + matplotlib-inline==0.1.6\n + nest-asyncio==1.6.0\n + orange-canvas-core==0.1.35\n + orange-widget-base==4.22.0\n + parso==0.8.4\n + pexpect==4.9.0\n + pickleshare==0.7.5\n + platformdirs==4.0.0\n + prompt-toolkit==3.0.48\n + psutil==6.1.1\n + ptyprocess==0.7.0\n + pygments==2.17.2\n + pyqtgraph==0.12.3\n + pyzmq==26.2.0\n + qasync==0.25.0\n + qtconsole==5.4.4\n + qtpy==2.4.2\n + requests-cache==1.1.1\n + tornado==6.2\n + traitlets==5.9.0\n + url-normalize==1.4.3\n + wcwidth==0.2.13\nResolved 2 packages in 3ms\nInstalled 2 packages in 5ms\n + psycopg2==2.9.9\n + pymssql==2.3.2\nResolved 19 packages in 50ms\nInstalled 5 packages in 956ms\n + catboost==1.2.7\n + graphviz==0.20.1\n + plotly==5.18.0\n + tenacity==8.2.3\n + xgboost==1.6.2\nAudited 2 packages in 28ms\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\n                 from Orange/classification/_tree_scorers.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API, disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n   17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n      |  ^~~~~~~\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_2find_threshold_entropy’:\nOrange/classification/_tree_scorers.c:3427:27: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 3427 |   __pyx_t_7 = ((__pyx_v_N <= __pyx_v_min_leaf) != 0);\n      |                           ^~\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_6find_threshold_MSE’:\nOrange/classification/_tree_scorers.c:4883:27: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 4883 |   __pyx_t_1 = ((__pyx_v_N <= __pyx_v_min_leaf) != 0);\n      |                           ^~\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_8find_binarization_MSE’:\nOrange/classification/_tree_scorers.c:5629:43: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5629 |           for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {\n      |                                           ^\nOrange/classification/_tree_scorers.c:5750:39: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5750 |           __pyx_t_20 = ((__pyx_v_left >= __pyx_v_min_leaf) != 0);\n      |                                       ^~\nOrange/classification/_tree_scorers.c:5756:53: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5756 |           __pyx_t_20 = (((__pyx_v_N - __pyx_v_left) >= __pyx_v_min_leaf) != 0);\n      |                                                     ^~\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_14compute_predictions_csr’:\nOrange/classification/_tree_scorers.c:7217:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 7217 |         for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {\n      |                                         ^\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_16compute_predictions_csc’:\nOrange/classification/_tree_scorers.c:7874:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 7874 |         for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {\n      |                                         ^\nOrange/classification/_tree_scorers.c:7934:150: warning: comparison of integer expressions of different signedness: ‘__pyx_t_5numpy_int32_t’ {aka ‘int’} and ‘unsigned int’ [-Wsign-compare]\n 7934 |               __pyx_t_16 = (((*((__pyx_t_5numpy_int32_t const  *) ( /* dim=0 */ (__pyx_v_indices.data + __pyx_t_15 * __pyx_v_indices.strides[0]) ))) != __pyx_v_i) != 0);\n      |                                                                                                                                                      ^~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\n                 from Orange/data/_contingency.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API, disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n   17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n      |  ^~~~~~~\nOrange/data/_io.c: In function ‘__pyx_pf_6Orange_4data_3_io_sparse_read_float.constprop’:\nOrange/data/_io.c:4120:43: warning: ‘__pyx_v_decs’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4120 |           __pyx_v_value = ((__pyx_v_value * __pyx_v_decs) + (__pyx_v_c & 0xf));\n      |                            ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/data/_io.c:4318:24: warning: ‘__pyx_v_value’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4318 |           __pyx_t_10 = PyFloat_FromDouble(__pyx_v_value); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 223, __pyx_L5_error)\n      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nOrange/data/_io.c:683:40: warning: ‘__pyx_v_attr_index’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n  683 |   #define PyInt_FromLong               PyLong_FromLong\n      |                                        ^~~~~~~~~~~~~~~\nOrange/data/_io.c:1590:7: note: ‘__pyx_v_attr_index’ was declared here\n 1590 |   int __pyx_v_attr_index;\n      |       ^~~~~~~~~~~~~~~~~~\nOrange/data/_io.c:3183:25: warning: ‘__pyx_v_atomp’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3183 |           __pyx_v_atomp = (__pyx_v_atomp + 1);\n      |           ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\n                 from Orange/data/_valuecount.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API, disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n   17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n      |  ^~~~~~~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\n                 from Orange/distance/_distance.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API, disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n   17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n      |  ^~~~~~~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\n                 from Orange/preprocess/_discretize.c:774:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API, disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n   17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n      |  ^~~~~~~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\n                 from Orange/preprocess/_relieff.cpp:790:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API, disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n   17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n      |  ^~~~~~~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\n                 from Orange/projection/_som.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API, disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n   17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n      |  ^~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_5update_hex’:\nOrange/projection/_som.c:3863:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3863 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:3862:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3862 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pf_6Orange_10projection_4_som_8update_sparse.constprop’:\nOrange/projection/_som.c:4934:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4934 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:4933:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4933 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_7get_winners_sparse’:\nOrange/projection/_som.c:4732:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4732 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:4307:7: note: ‘__pyx_v_win_y’ was declared here\n 4307 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:4721:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4721 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_26, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:4306:7: note: ‘__pyx_v_win_x’ was declared here\n 4306 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pf_6Orange_10projection_4_som_10update_sparse_hex.constprop’:\nOrange/projection/_som.c:5682:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5682 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:5681:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5681 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_1get_winners’:\nOrange/projection/_som.c:3184:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3184 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:2887:7: note: ‘__pyx_v_win_y’ was declared here\n 2887 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:3173:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3173 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:2886:7: note: ‘__pyx_v_win_x’ was declared here\n 2886 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_3update’:\nOrange/projection/_som.c:3357:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3357 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/classification/_simple_tree.c: In function ‘gain_ratio_c’:\nOrange/classification/_simple_tree.c:63:9: warning: implicit declaration of function ‘qsort_r’; did you mean ‘qsort’? [-Wimplicit-function-declaration]\n   63 |         qsort_r(base, nel, size, compar, thunk)\n      |         ^~~~~~~\nOrange/classification/_simple_tree.c:147:9: note: in expansion of macro ‘QSORT_R_FUNC’\n  147 |         QSORT_R_FUNC(examples, size, sizeof(struct Example), (void*) &compar_attr, compar_examples);\n      |         ^~~~~~~~~~~~\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/setuptools/command/easy_install.py:159: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.\n  EasyInstallDeprecationWarning,\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316/.venv/lib/python3.7/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.\n  setuptools.SetuptoolsDeprecationWarning,\nwarning: no files found matching 'README*' under directory 'Orange'\nwarning: no files found matching 'LICENSE' under directory 'Orange'\nwarning: no files found matching '*.basket' under directory 'Orange/datasets'\nwarning: no files found matching '*.svg' under directory 'Orange/canvas'\nwarning: no files found matching '*.js' under directory 'Orange/widgets'\nwarning: no files found matching '*.css' under directory 'Orange/widgets'\nwarning: no files found matching '*.html' under directory 'Orange/widgets'\nwarning: no files found matching '*.svg' under directory 'distribute'\nwarning: no files found matching 'COPYING'\n",
    "new_commit_res_code": 0,
    "new_commit_res_stdout": "============================= test session starts ==============================\nplatform linux -- Python 3.7.9, pytest-7.4.4, pluggy-1.2.0\nrootdir: /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316\nplugins: anyio-3.7.1\ncollected 5 items\n\nr2e_tests/test_1.py .....                                                [100%]\n\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::TestProxies::test_add_scheme\nPASSED r2e_tests/test_1.py::TestProxies::test_both_urls\nPASSED r2e_tests/test_1.py::TestProxies::test_http_only\nPASSED r2e_tests/test_1.py::TestProxies::test_https_only\nPASSED r2e_tests/test_1.py::TestProxies::test_none\n============================== 5 passed in 1.72s ===============================\n",
    "new_commit_res_stderr": "",
    "old_commit_res_code": 1,
    "old_commit_res_stdout": "============================= test session starts ==============================\nplatform linux -- Python 3.7.9, pytest-7.4.4, pluggy-1.2.0\nrootdir: /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_7f830084b32b8f185acc46cb91ff003d79d21316\nplugins: anyio-3.7.1\ncollected 5 items\n\nr2e_tests/test_1.py FFFF.                                                [100%]\n\n=================================== FAILURES ===================================\n_________________________ TestProxies.test_add_scheme __________________________\n\nself = <r2e_tests.test_1.TestProxies testMethod=test_add_scheme>\n\n    def test_add_scheme(self):\n        os.environ[\"http_proxy\"] = \"test1.com\"\n        os.environ[\"https_proxy\"] = \"test2.com\"\n        res = get_proxies()\n>       self.assertEqual(\"http://test1.com\", res.get(\"http://\"))\nE       AssertionError: 'http://test1.com' != 'https://test2.com'\nE       - http://test1.com\nE       ?            ^\nE       + https://test2.com\nE       ?     +       ^\n\nr2e_tests/test_1.py:26: AssertionError\n__________________________ TestProxies.test_both_urls __________________________\n\nself = <r2e_tests.test_1.TestProxies testMethod=test_both_urls>\n\n    def test_both_urls(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        os.environ[\"https_proxy\"] = \"https://test2.com:124\"\n        res = get_proxies()\n>       self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\nE       AssertionError: 'http://test1.com:123' != 'https://test2.com:124'\nE       - http://test1.com:123\nE       ?            ^       ^\nE       + https://test2.com:124\nE       ?     +       ^       ^\n\nr2e_tests/test_1.py:45: AssertionError\n__________________________ TestProxies.test_http_only __________________________\n\nself = <r2e_tests.test_1.TestProxies testMethod=test_http_only>\n\n    def test_http_only(self):\n        os.environ[\"http_proxy\"] = \"http://test1.com:123\"\n        res = get_proxies()\n>       self.assertEqual(\"http://test1.com:123\", res.get(\"http://\"))\nE       AssertionError: 'http://test1.com:123' != None\n\nr2e_tests/test_1.py:52: AssertionError\n_________________________ TestProxies.test_https_only __________________________\n\nself = <r2e_tests.test_1.TestProxies testMethod=test_https_only>\n\n    def test_https_only(self):\n        os.environ[\"https_proxy\"] = \"https://test1.com:123\"\n        res = get_proxies()\n>       self.assertEqual(\"https://test1.com:123\", res.get(\"https://\"))\nE       AssertionError: 'https://test1.com:123' != None\n\nr2e_tests/test_1.py:58: AssertionError\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::TestProxies::test_none\nFAILED r2e_tests/test_1.py::TestProxies::test_add_scheme - AssertionError: 'h...\nFAILED r2e_tests/test_1.py::TestProxies::test_both_urls - AssertionError: 'ht...\nFAILED r2e_tests/test_1.py::TestProxies::test_http_only - AssertionError: 'ht...\nFAILED r2e_tests/test_1.py::TestProxies::test_https_only - AssertionError: 'h...\n========================= 4 failed, 1 passed in 1.56s ==========================\n",
    "old_commit_res_stderr": ""
}
Orange/misc/tests/test_embedder_utils.py Orange/misc/utils/embedder_utils.py
We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[ISSUE]
**Title:** Incorrect Handling of Proxy Schemes in `get_proxies` Causes Test Failures

**Description:**
When both `http_proxy` and `https_proxy` environment variables are set without specifying a scheme, the `get_proxies` function incorrectly maps the proxies. This leads to unexpected behavior in components that rely on accurate proxy configurations.

**Example Code:**
```python
import os
from Orange.misc.utils.embedder_utils import get_proxies

# Set environment variables without schemes
os.environ['http_proxy'] = 'test1.com'
os.environ['https_proxy'] = 'test2.com'

# Retrieve proxies
proxies = get_proxies()
print(proxies)
```

**Expected Behavior:**
The `get_proxies` function should automatically prepend `http://` to each proxy URL if no scheme is provided and return a dictionary that correctly maps each scheme to its respective proxy:

```python
{
    "http://": "http://test1.com",
    "https://": "https://test2.com"
}
```

**Actual Behavior:**
Both the `http://` and `https://` keys are incorrectly mapped to the `https_proxy`, ignoring the `http_proxy` setting:

```python
{
    "http://": "https://test2.com",
    "https://": "https://test2.com"
}
```

This incorrect mapping causes dependent functionalities to fail, as evidenced by the failing tests that expect each proxy to be correctly associated with its respective scheme.

[/ISSUE]
--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.

--- BEGIN FILE ---
```
### Orange/misc/utils/embedder_utils.py
import logging
import hashlib
import pickle
from os import environ
from os.path import join, isfile
from typing import Optional, Dict

from Orange.canvas.config import cache_dir


log = logging.getLogger(__name__)


class EmbeddingCancelledException(Exception):
    """
    Thrown when the embedding task is cancelled from another thread.
    (i.e. ImageEmbedder.cancelled attribute is set to True).
    """


class EmbeddingConnectionError(ConnectionError):
    """
    Common error when embedding is interrupted because of connection problems
    or server unavailability - embedder do not respond.
    """


class EmbedderCache:

    _cache_file_blueprint = '{:s}_embeddings.pickle'

    def __init__(self, model):
        # init the cache

        cache_file_path = self._cache_file_blueprint.format(model)
        self._cache_file_path = join(cache_dir(), cache_file_path)
        self._cache_dict = self._init_cache()

    def _init_cache(self):
        if isfile(self._cache_file_path):
            try:
                return self.load_pickle(self._cache_file_path)
            except EOFError:
                return {}
        return {}

    @staticmethod
    def save_pickle(obj, file_name):
        with open(file_name, 'wb') as f:
            pickle.dump(obj, f)

    @staticmethod
    def load_pickle(file_name):
        with open(file_name, 'rb') as f:
            return pickle.load(f)

    @staticmethod
    def md5_hash(bytes_):
        md5 = hashlib.md5()
        md5.update(bytes_)
        return md5.hexdigest()

    def clear_cache(self):
        self._cache_dict = {}
        self.persist_cache()

    def persist_cache(self):
        self.save_pickle(self._cache_dict, self._cache_file_path)

    def get_cached_result_or_none(self, cache_key):
        if cache_key in self._cache_dict:
            return self._cache_dict[cache_key]
        return None

    def add(self, cache_key, value):
        self._cache_dict[cache_key] = value


def get_proxies() -> Optional[Dict[str, str]]:
    """
    Return dict with proxy addresses if they exists.

    Returns
    -------
    proxy_dict
        Dictionary with format {proxy type: proxy address} or None if
        they not set.
    """
    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:
        if url and not url.startswith(prot):
            return f"{prot}://{url}"
        return url
    http_proxy = add_protocol(environ.get("http_proxy"), "http")
    https_proxy = add_protocol(environ.get("https_proxy"), "https")
    if http_proxy and https_proxy:  # both proxy addresses defined
        return {"http://": https_proxy, "https://": https_proxy}
    elif any([https_proxy, http_proxy]):  # one of the proxies defined
        return {"all://": http_proxy or https_proxy}
    return None  # proxies not defined

```
--- END FILE ---

Please first localize the bug based on the issue statement, and then generate *SEARCH/REPLACE* edits to fix the issue.

Every *SEARCH/REPLACE* edit must use this format:
1. The file path
2. The start of search block: <<<<<<< SEARCH
3. A contiguous chunk of lines to search for in the existing source code
4. The dividing line: =======
5. The lines to replace into the source code
6. The end of the replace block: >>>>>>> REPLACE

Here is an example:

```python
### mathweb/flask/app.py
<<<<<<< SEARCH
from flask import Flask
=======
import math
from flask import Flask
>>>>>>> REPLACE
```
</solution>

Please note that the *SEARCH/REPLACE* edit REQUIRES PROPER INDENTATION. If you would like to add the line '        print(x)', you must fully write that out, with all those spaces before the code!
Wrap each *SEARCH/REPLACE* edit in a code block as shown in the example above. If you have multiple *SEARCH/REPLACE* edits, use a separate code block for each one.
[ISSUE]
**Title:** Incorrect Handling of Proxy Schemes in `get_proxies` Causes Test Failures

**Description:**
When both `http_proxy` and `https_proxy` environment variables are set without specifying a scheme, the `get_proxies` function incorrectly maps the proxies. This leads to unexpected behavior in components that rely on accurate proxy configurations.

**Example Code:**
```python
import os
from Orange.misc.utils.embedder_utils import get_proxies

# Set environment variables without schemes
os.environ['http_proxy'] = 'test1.com'
os.environ['https_proxy'] = 'test2.com'

# Retrieve proxies
proxies = get_proxies()
print(proxies)
```

**Expected Behavior:**
The `get_proxies` function should automatically prepend `http://` to each proxy URL if no scheme is provided and return a dictionary that correctly maps each scheme to its respective proxy:

```python
{
    "http://": "http://test1.com",
    "https://": "https://test2.com"
}
```

**Actual Behavior:**
Both the `http://` and `https://` keys are incorrectly mapped to the `https_proxy`, ignoring the `http_proxy` setting:

```python
{
    "http://": "https://test2.com",
    "https://": "https://test2.com"
}
```

This incorrect mapping causes dependent functionalities to fail, as evidenced by the failing tests that expect each proxy to be correctly associated with its respective scheme.

[/ISSUE]
{
    "TestProxies.test_add_scheme": "PASSED",
    "TestProxies.test_both_urls": "PASSED",
    "TestProxies.test_http_only": "PASSED",
    "TestProxies.test_https_only": "PASSED",
    "TestProxies.test_none": "PASSED"
}
diff --git a/Orange/misc/utils/embedder_utils.py b/Orange/misc/utils/embedder_utils.py
index e01c6ab91..f19b8ee04 100644
--- a/Orange/misc/utils/embedder_utils.py
+++ b/Orange/misc/utils/embedder_utils.py
@@ -78,7 +78,7 @@ class EmbedderCache:
 
 def get_proxies() -> Optional[Dict[str, str]]:
     """
-    Return dict with proxy addresses if they exists.
+    Return dict with proxy addresses if they exist.
 
     Returns
     -------
@@ -86,14 +86,18 @@ def get_proxies() -> Optional[Dict[str, str]]:
         Dictionary with format {proxy type: proxy address} or None if
         they not set.
     """
-    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:
-        if url and not url.startswith(prot):
-            return f"{prot}://{url}"
-        return url
-    http_proxy = add_protocol(environ.get("http_proxy"), "http")
-    https_proxy = add_protocol(environ.get("https_proxy"), "https")
-    if http_proxy and https_proxy:  # both proxy addresses defined
-        return {"http://": https_proxy, "https://": https_proxy}
-    elif any([https_proxy, http_proxy]):  # one of the proxies defined
-        return {"all://": http_proxy or https_proxy}
-    return None  # proxies not defined
+    def add_scheme(url: Optional[str]) -> Optional[str]:
+        if url is not None and "://" not in url:
+            # if no scheme default to http - as other libraries do (e.g. requests)
+            return f"http://{url}"
+        else:
+            return url
+
+    http_proxy = add_scheme(environ.get("http_proxy"))
+    https_proxy = add_scheme(environ.get("https_proxy"))
+    proxy_dict = {}
+    if http_proxy:
+        proxy_dict["http://"] = http_proxy
+    if https_proxy:
+        proxy_dict["https://"] = https_proxy
+    return proxy_dict if proxy_dict else None
 

{"Orange/misc/utils/embedder_utils.py": "import logging\nimport hashlib\nimport pickle\nfrom os import environ\nfrom os.path import join, isfile\nfrom typing import Optional, Dict\n\nfrom Orange.canvas.config import cache_dir\n\n\nlog = logging.getLogger(__name__)\n\n\nclass EmbeddingCancelledException(Exception):\n    \"\"\"\n    Thrown when the embedding task is cancelled from another thread.\n    (i.e. ImageEmbedder.cancelled attribute is set to True).\n    \"\"\"\n\n\nclass EmbeddingConnectionError(ConnectionError):\n    \"\"\"\n    Common error when embedding is interrupted because of connection problems\n    or server unavailability - embedder do not respond.\n    \"\"\"\n\n\nclass EmbedderCache:\n\n    _cache_file_blueprint = '{:s}_embeddings.pickle'\n\n    def __init__(self, model):\n        # init the cache\n\n        cache_file_path = self._cache_file_blueprint.format(model)\n        self._cache_file_path = join(cache_dir(), cache_file_path)\n        self._cache_dict = self._init_cache()\n\n    def _init_cache(self):\n        if isfile(self._cache_file_path):\n            try:\n                return self.load_pickle(self._cache_file_path)\n            except EOFError:\n                return {}\n        return {}\n\n    @staticmethod\n    def save_pickle(obj, file_name):\n        with open(file_name, 'wb') as f:\n            pickle.dump(obj, f)\n\n    @staticmethod\n    def load_pickle(file_name):\n        with open(file_name, 'rb') as f:\n            return pickle.load(f)\n\n    @staticmethod\n    def md5_hash(bytes_):\n        md5 = hashlib.md5()\n        md5.update(bytes_)\n        return md5.hexdigest()\n\n    def clear_cache(self):\n        self._cache_dict = {}\n        self.persist_cache()\n\n    def persist_cache(self):\n        self.save_pickle(self._cache_dict, self._cache_file_path)\n\n    def get_cached_result_or_none(self, cache_key):\n        if cache_key in self._cache_dict:\n            return self._cache_dict[cache_key]\n        return None\n\n    def add(self, cache_key, value):\n        self._cache_dict[cache_key] = value\n\n\ndef get_proxies() -> Optional[Dict[str, str]]:\n    \"\"\"\n    Return dict with proxy addresses if they exists.\n\n    Returns\n    -------\n    proxy_dict\n        Dictionary with format {proxy type: proxy address} or None if\n        they not set.\n    \"\"\"\n    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:\n        if url and not url.startswith(prot):\n            return f\"{prot}://{url}\"\n        return url\n    http_proxy = add_protocol(environ.get(\"http_proxy\"), \"http\")\n    https_proxy = add_protocol(environ.get(\"https_proxy\"), \"https\")\n    if http_proxy and https_proxy:  # both proxy addresses defined\n        return {\"http://\": https_proxy, \"https://\": https_proxy}\n    elif any([https_proxy, http_proxy]):  # one of the proxies defined\n        return {\"all://\": http_proxy or https_proxy}\n    return None  # proxies not defined\n"}
A user will ask you to solve a task. You should first draft your thinking process (inner monologue). Then, generate the solution.

Your response format must follow the template below:
<think>
Your thoughts or/and draft, like working through an exercise on scratch paper. Be as casual and as long as you want until you are confident to generate a correct solution.
</think>
<solution>
Final solution presented to the user.
</solution>
system
We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[ISSUE]
**Title:** Incorrect Handling of Proxy Schemes in `get_proxies` Causes Test Failures

**Description:**
When both `http_proxy` and `https_proxy` environment variables are set without specifying a scheme, the `get_proxies` function incorrectly maps the proxies. This leads to unexpected behavior in components that rely on accurate proxy configurations.

**Example Code:**
```python
import os
from Orange.misc.utils.embedder_utils import get_proxies

# Set environment variables without schemes
os.environ['http_proxy'] = 'test1.com'
os.environ['https_proxy'] = 'test2.com'

# Retrieve proxies
proxies = get_proxies()
print(proxies)
```

**Expected Behavior:**
The `get_proxies` function should automatically prepend `http://` to each proxy URL if no scheme is provided and return a dictionary that correctly maps each scheme to its respective proxy:

```python
{
    "http://": "http://test1.com",
    "https://": "https://test2.com"
}
```

**Actual Behavior:**
Both the `http://` and `https://` keys are incorrectly mapped to the `https_proxy`, ignoring the `http_proxy` setting:

```python
{
    "http://": "https://test2.com",
    "https://": "https://test2.com"
}
```

This incorrect mapping causes dependent functionalities to fail, as evidenced by the failing tests that expect each proxy to be correctly associated with its respective scheme.

[/ISSUE]
--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.

--- BEGIN FILE ---
```
### Orange/misc/utils/embedder_utils.py
import logging
import hashlib
import pickle
from os import environ
from os.path import join, isfile
from typing import Optional, Dict

from Orange.canvas.config import cache_dir


log = logging.getLogger(__name__)


class EmbeddingCancelledException(Exception):
    """
    Thrown when the embedding task is cancelled from another thread.
    (i.e. ImageEmbedder.cancelled attribute is set to True).
    """


class EmbeddingConnectionError(ConnectionError):
    """
    Common error when embedding is interrupted because of connection problems
    or server unavailability - embedder do not respond.
    """


class EmbedderCache:

    _cache_file_blueprint = '{:s}_embeddings.pickle'

    def __init__(self, model):
        # init the cache

        cache_file_path = self._cache_file_blueprint.format(model)
        self._cache_file_path = join(cache_dir(), cache_file_path)
        self._cache_dict = self._init_cache()

    def _init_cache(self):
        if isfile(self._cache_file_path):
            try:
                return self.load_pickle(self._cache_file_path)
            except EOFError:
                return {}
        return {}

    @staticmethod
    def save_pickle(obj, file_name):
        with open(file_name, 'wb') as f:
            pickle.dump(obj, f)

    @staticmethod
    def load_pickle(file_name):
        with open(file_name, 'rb') as f:
            return pickle.load(f)

    @staticmethod
    def md5_hash(bytes_):
        md5 = hashlib.md5()
        md5.update(bytes_)
        return md5.hexdigest()

    def clear_cache(self):
        self._cache_dict = {}
        self.persist_cache()

    def persist_cache(self):
        self.save_pickle(self._cache_dict, self._cache_file_path)

    def get_cached_result_or_none(self, cache_key):
        if cache_key in self._cache_dict:
            return self._cache_dict[cache_key]
        return None

    def add(self, cache_key, value):
        self._cache_dict[cache_key] = value


def get_proxies() -> Optional[Dict[str, str]]:
    """
    Return dict with proxy addresses if they exists.

    Returns
    -------
    proxy_dict
        Dictionary with format {proxy type: proxy address} or None if
        they not set.
    """
    def add_protocol(url: Optional[str], prot: str) -> Optional[str]:
        if url and not url.startswith(prot):
            return f"{prot}://{url}"
        return url
    http_proxy = add_protocol(environ.get("http_proxy"), "http")
    https_proxy = add_protocol(environ.get("https_proxy"), "https")
    if http_proxy and https_proxy:  # both proxy addresses defined
        return {"http://": https_proxy, "https://": https_proxy}
    elif any([https_proxy, http_proxy]):  # one of the proxies defined
        return {"all://": http_proxy or https_proxy}
    return None  # proxies not defined

```
--- END FILE ---

Please first localize the bug based on the issue statement, and then generate *SEARCH/REPLACE* edits to fix the issue.

Every *SEARCH/REPLACE* edit must use this format:
1. The file path
2. The start of search block: <<<<<<< SEARCH
3. A contiguous chunk of lines to search for in the existing source code
4. The dividing line: =======
5. The lines to replace into the source code
6. The end of the replace block: >>>>>>> REPLACE

Here is an example:

```python
### mathweb/flask/app.py
<<<<<<< SEARCH
from flask import Flask
=======
import math
from flask import Flask
>>>>>>> REPLACE
```
</solution>

Please note that the *SEARCH/REPLACE* edit REQUIRES PROPER INDENTATION. If you would like to add the line '        print(x)', you must fully write that out, with all those spaces before the code!
Wrap each *SEARCH/REPLACE* edit in a code block as shown in the example above. If you have multiple *SEARCH/REPLACE* edits, use a separate code block for each one.
user