{
    "file_diffs": [
        {
            "old_file_content": "from itertools import chain\nimport numpy as np\nfrom AnyQt.QtCore import Qt\n\nfrom orangewidget.report import bool_str\n\nfrom Orange.data import Table, Domain, ContinuousVariable, StringVariable\nfrom Orange.classification.logistic_regression import LogisticRegressionLearner\nfrom Orange.widgets import settings, gui\nfrom Orange.widgets.utils.owlearnerwidget import OWBaseLearner\nfrom Orange.widgets.utils.signals import Output\nfrom Orange.widgets.utils.widgetpreview import WidgetPreview\nfrom Orange.widgets.widget import Msg\n\n\nclass OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)\n\n\ndef create_coef_table(classifier):\n    i = classifier.intercept\n    c = classifier.coefficients\n    if c.shape[0] > 2:\n        values = [classifier.domain.class_var.values[int(i)] for i in classifier.used_vals[0]]\n    else:\n        values = [classifier.domain.class_var.values[int(classifier.used_vals[0][1])]]\n    domain = Domain([ContinuousVariable(value) for value in values],\n                    metas=[StringVariable(\"name\")])\n    coefs = np.vstack((i.reshape(1, len(i)), c.T))\n    names = [[attr.name] for attr in classifier.domain.attributes]\n    names = [[\"intercept\"]] + names\n    names = np.array(names, dtype=object)\n    coef_table = Table.from_numpy(domain, X=coefs, metas=names)\n    coef_table.name = \"coefficients\"\n    return coef_table\n\n\nif __name__ == \"__main__\":  # pragma: no cover\n    WidgetPreview(OWLogisticRegression).run(Table(\"zoo\"))\n",
            "new_file_content": "from itertools import chain\nimport numpy as np\nfrom AnyQt.QtCore import Qt\n\nfrom orangewidget.report import bool_str\n\nfrom Orange.data import Table, Domain, ContinuousVariable, StringVariable\nfrom Orange.classification.logistic_regression import LogisticRegressionLearner\nfrom Orange.widgets import settings, gui\nfrom Orange.widgets.utils.owlearnerwidget import OWBaseLearner\nfrom Orange.widgets.utils.signals import Output\nfrom Orange.widgets.utils.widgetpreview import WidgetPreview\nfrom Orange.widgets.widget import Msg\n\n\nclass OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", None]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty is not None\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty is None:\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)\n\n\ndef create_coef_table(classifier):\n    i = classifier.intercept\n    c = classifier.coefficients\n    if c.shape[0] > 2:\n        values = [classifier.domain.class_var.values[int(i)] for i in classifier.used_vals[0]]\n    else:\n        values = [classifier.domain.class_var.values[int(classifier.used_vals[0][1])]]\n    domain = Domain([ContinuousVariable(value) for value in values],\n                    metas=[StringVariable(\"name\")])\n    coefs = np.vstack((i.reshape(1, len(i)), c.T))\n    names = [[attr.name] for attr in classifier.domain.attributes]\n    names = [[\"intercept\"]] + names\n    names = np.array(names, dtype=object)\n    coef_table = Table.from_numpy(domain, X=coefs, metas=names)\n    coef_table.name = \"coefficients\"\n    return coef_table\n\n\nif __name__ == \"__main__\":  # pragma: no cover\n    WidgetPreview(OWLogisticRegression).run(Table(\"zoo\"))\n",
            "header": {
                "file": {
                    "path": "Orange/widgets/model/owlogisticregression.py"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "63c401b77",
                "new_commit_hash": "95db40a62",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/Orange/widgets/model/owlogisticregression.py"
            },
            "plus_file": {
                "path": "b/Orange/widgets/model/owlogisticregression.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 49,
                            "length": 7
                        },
                        "new_range": {
                            "start": 49,
                            "length": 7
                        },
                        "section": "class OWLogisticRegression(OWBaseLearner):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "    max_iter = 10000",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")",
                                "type": "context"
                            },
                            {
                                "content": "    penalty_types_short = [\"l1\", \"l2\", \"none\"]",
                                "type": "deleted"
                            },
                            {
                                "content": "    penalty_types_short = [\"l1\", \"l2\", None]",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    class Warning(OWBaseLearner.Warning):",
                                "type": "context"
                            },
                            {
                                "content": "        class_weights_used = Msg(\"Weighting by class may decrease performance.\")",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "Orange/widgets/model/owlogisticregression.py",
                            "type": "class",
                            "name": "OWLogisticRegression",
                            "content": "class OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 16,
                            "end_lineno": 140,
                            "parent": null
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                },
                {
                    "descriptor": {
                        "old_range": {
                            "start": 86,
                            "length": 7
                        },
                        "new_range": {
                            "start": 86,
                            "length": 7
                        },
                        "section": "class OWLogisticRegression(OWBaseLearner):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "    def set_c(self):",
                                "type": "context"
                            },
                            {
                                "content": "        self.strength_C = self.C_s[self.C_index]",
                                "type": "context"
                            },
                            {
                                "content": "        penalty = self.penalty_types_short[self.penalty_type]",
                                "type": "context"
                            },
                            {
                                "content": "        enable_c = penalty != \"none\"",
                                "type": "deleted"
                            },
                            {
                                "content": "        enable_c = penalty is not None",
                                "type": "added"
                            },
                            {
                                "content": "        self.c_box.setEnabled(enable_c)",
                                "type": "context"
                            },
                            {
                                "content": "        if enable_c:",
                                "type": "context"
                            },
                            {
                                "content": "            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "Orange/widgets/model/owlogisticregression.py",
                            "type": "class",
                            "name": "OWLogisticRegression",
                            "content": "class OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 16,
                            "end_lineno": 140,
                            "parent": null
                        },
                        {
                            "file_name": "Orange/widgets/model/owlogisticregression.py",
                            "type": "method",
                            "name": "OWLogisticRegression.set_c",
                            "content": "class OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 86,
                            "end_lineno": 95,
                            "parent": {
                                "file_name": "Orange/widgets/model/owlogisticregression.py",
                                "type": "class",
                                "name": "OWLogisticRegression",
                                "content": "class OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 16,
                                "end_lineno": 140,
                                "parent": null
                            }
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                },
                {
                    "descriptor": {
                        "old_range": {
                            "start": 110,
                            "length": 7
                        },
                        "new_range": {
                            "start": 110,
                            "length": 7
                        },
                        "section": "class OWLogisticRegression(OWBaseLearner):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "            self.Warning.class_weights_used()",
                                "type": "context"
                            },
                            {
                                "content": "        else:",
                                "type": "context"
                            },
                            {
                                "content": "            class_weight = None",
                                "type": "context"
                            },
                            {
                                "content": "        if penalty == \"none\":",
                                "type": "deleted"
                            },
                            {
                                "content": "        if penalty is None:",
                                "type": "added"
                            },
                            {
                                "content": "            C = 1.0",
                                "type": "context"
                            },
                            {
                                "content": "        else:",
                                "type": "context"
                            },
                            {
                                "content": "            C = self.strength_C",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "Orange/widgets/model/owlogisticregression.py",
                            "type": "method",
                            "name": "OWLogisticRegression.create_learner",
                            "content": "class OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 105,
                            "end_lineno": 128,
                            "parent": {
                                "file_name": "Orange/widgets/model/owlogisticregression.py",
                                "type": "class",
                                "name": "OWLogisticRegression",
                                "content": "class OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 16,
                                "end_lineno": 140,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/widgets/model/owlogisticregression.py",
                            "type": "class",
                            "name": "OWLogisticRegression",
                            "content": "class OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 16,
                            "end_lineno": 140,
                            "parent": null
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                }
            ]
        },
        {
            "old_file_content": "# Test methods with long descriptive names can omit docstrings\n# pylint: disable=missing-docstring\nimport unittest\n\nimport numpy as np\n\nfrom Orange.classification import LogisticRegressionLearner\nfrom Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable\nfrom Orange.statistics.util import stats\nfrom Orange.widgets.model.owlogisticregression import (create_coef_table,\n                                                       OWLogisticRegression)\nfrom Orange.widgets.tests.base import (WidgetTest, WidgetLearnerTestMixin,\n                                       ParameterMapping)\n\n\nclass LogisticRegressionTest(unittest.TestCase):\n    def test_coef_table_single(self):\n        data = Table(\"titanic\")\n        learn = LogisticRegressionLearner()\n        classifier = learn(data)\n        coef_table = create_coef_table(classifier)\n        self.assertEqual(1, len(stats(coef_table.metas, None)))\n        self.assertEqual(len(coef_table), len(classifier.domain.attributes) + 1)\n        self.assertEqual(len(coef_table[0]), 1)\n\n    def test_coef_table_multiple(self):\n        data = Table(\"zoo\")\n        learn = LogisticRegressionLearner()\n        classifier = learn(data)\n        coef_table = create_coef_table(classifier)\n        self.assertEqual(1, len(stats(coef_table.metas, None)))\n        self.assertEqual(len(coef_table), len(classifier.domain.attributes) + 1)\n        self.assertEqual(len(coef_table[0]),\n                         len(classifier.domain.class_var.values))\n\n\nclass TestOWLogisticRegression(WidgetTest, WidgetLearnerTestMixin):\n    def setUp(self):\n        self.widget = self.create_widget(OWLogisticRegression,\n                                         stored_settings={\"auto_apply\": False})\n        self.init()\n        c_slider = self.widget.c_slider\n\n        def setter(val):\n            index = self.widget.C_s.index(val)\n            self.widget.C_s[c_slider.value()]\n            c_slider.setValue(index)\n\n        self.parameters = [\n            ParameterMapping('penalty', self.widget.penalty_combo,\n                             self.widget.penalty_types_short[:2]),\n            ParameterMapping('C', c_slider,\n                             values=[self.widget.C_s[0], self.widget.C_s[-1]],\n                             getter=lambda: self.widget.C_s[c_slider.value()],\n                             setter=setter)]\n\n    def test_output_coefficients(self):\n        \"\"\"Check if coefficients are on output after apply\"\"\"\n        self.assertIsNone(self.get_output(self.widget.Outputs.coefficients))\n        self.send_signal(self.widget.Inputs.data, self.data)\n        self.click_apply()\n        self.assertIsInstance(self.get_output(self.widget.Outputs.coefficients), Table)\n\n    def test_domain_with_more_values_than_table(self):\n        \"\"\"\n        When the data with a domain which has more values than\n        a table was sent, the widget threw error Invalid number of variable columns.\n        GH-2116\n        \"\"\"\n        table = Table(\"iris\")\n        cases = [slice(80), slice(90, 140),\n                 np.hstack((np.arange(30, dtype=int),\n                            np.arange(120, 140, dtype=int)))]\n        for case in cases:\n            data = table[case, :]\n            self.send_signal(self.widget.Inputs.data, data)\n            self.click_apply()\n\n    def test_coefficients_one_value(self):\n        \"\"\"\n        In case we have only two values of a target we get coefficients of only value.\n        Instead of writing \"coef\" or sth similar it is written a second value name.\n        GH-2116\n        \"\"\"\n        table = Table.from_list(\n            Domain(\n                [ContinuousVariable(\"a\"),\n                 ContinuousVariable(\"b\")],\n                [DiscreteVariable(\"c\", values=(\"yes\", \"no\"))]\n            ),\n            list(zip(\n                [1., 0.],\n                [0., 1.],\n                [\"yes\", \"no\"]))\n        )\n        self.send_signal(self.widget.Inputs.data, table)\n        self.click_apply()\n        coef = self.get_output(self.widget.Outputs.coefficients)\n        self.assertEqual(coef.domain[0].name, \"no\")\n        self.assertGreater(coef[2][0], 0.)\n\n    def test_target_with_nan(self):\n        \"\"\"\n        Rows with targets with nans are removed.\n        GH-2392\n        \"\"\"\n        table = Table(\"iris\")\n        with table.unlocked():\n            table.Y[:5] = np.NaN\n        self.send_signal(self.widget.Inputs.data, table)\n        coef1 = self.get_output(self.widget.Outputs.coefficients)\n        table = table[5:]\n        self.send_signal(self.widget.Inputs.data, table)\n        coef2 = self.get_output(self.widget.Outputs.coefficients)\n        self.assertTrue(np.array_equal(coef1, coef2))\n\n    def test_class_weights(self):\n        table = Table(\"iris\")\n        self.send_signal(self.widget.Inputs.data, table)\n        self.assertFalse(self.widget.class_weight)\n        self.widget.controls.class_weight.setChecked(True)\n        self.assertTrue(self.widget.class_weight)\n        self.click_apply()\n        self.assertEqual(self.widget.model.skl_model.class_weight, \"balanced\")\n        self.assertTrue(self.widget.Warning.class_weights_used.is_shown())\n\n    def test_no_penalty(self):\n        self.widget.set_penalty(\"none\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"none\")\n        self.assertEqual(lr.C, 1.0)\n        self.assertEqual(self.widget.c_label.text(), \"N/A\")\n        self.assertFalse(self.widget.c_slider.isEnabledTo(self.widget))\n\n        self.widget.set_penalty(\"l2\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"l2\")\n        self.assertEqual(self.widget.c_label.text(), \"C=1\")\n        self.assertTrue(self.widget.c_slider.isEnabledTo(self.widget))\n",
            "new_file_content": "# Test methods with long descriptive names can omit docstrings\n# pylint: disable=missing-docstring\nimport unittest\n\nimport numpy as np\n\nfrom Orange.classification import LogisticRegressionLearner\nfrom Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable\nfrom Orange.statistics.util import stats\nfrom Orange.widgets.model.owlogisticregression import (create_coef_table,\n                                                       OWLogisticRegression)\nfrom Orange.widgets.tests.base import (WidgetTest, WidgetLearnerTestMixin,\n                                       ParameterMapping)\n\n\nclass LogisticRegressionTest(unittest.TestCase):\n    def test_coef_table_single(self):\n        data = Table(\"titanic\")\n        learn = LogisticRegressionLearner()\n        classifier = learn(data)\n        coef_table = create_coef_table(classifier)\n        self.assertEqual(1, len(stats(coef_table.metas, None)))\n        self.assertEqual(len(coef_table), len(classifier.domain.attributes) + 1)\n        self.assertEqual(len(coef_table[0]), 1)\n\n    def test_coef_table_multiple(self):\n        data = Table(\"zoo\")\n        learn = LogisticRegressionLearner()\n        classifier = learn(data)\n        coef_table = create_coef_table(classifier)\n        self.assertEqual(1, len(stats(coef_table.metas, None)))\n        self.assertEqual(len(coef_table), len(classifier.domain.attributes) + 1)\n        self.assertEqual(len(coef_table[0]),\n                         len(classifier.domain.class_var.values))\n\n\nclass TestOWLogisticRegression(WidgetTest, WidgetLearnerTestMixin):\n    def setUp(self):\n        self.widget = self.create_widget(OWLogisticRegression,\n                                         stored_settings={\"auto_apply\": False})\n        self.init()\n        c_slider = self.widget.c_slider\n\n        def setter(val):\n            index = self.widget.C_s.index(val)\n            self.widget.C_s[c_slider.value()]\n            c_slider.setValue(index)\n\n        self.parameters = [\n            ParameterMapping('penalty', self.widget.penalty_combo,\n                             self.widget.penalty_types_short[:2]),\n            ParameterMapping('C', c_slider,\n                             values=[self.widget.C_s[0], self.widget.C_s[-1]],\n                             getter=lambda: self.widget.C_s[c_slider.value()],\n                             setter=setter)]\n\n    def test_output_coefficients(self):\n        \"\"\"Check if coefficients are on output after apply\"\"\"\n        self.assertIsNone(self.get_output(self.widget.Outputs.coefficients))\n        self.send_signal(self.widget.Inputs.data, self.data)\n        self.click_apply()\n        self.assertIsInstance(self.get_output(self.widget.Outputs.coefficients), Table)\n\n    def test_domain_with_more_values_than_table(self):\n        \"\"\"\n        When the data with a domain which has more values than\n        a table was sent, the widget threw error Invalid number of variable columns.\n        GH-2116\n        \"\"\"\n        table = Table(\"iris\")\n        cases = [slice(80), slice(90, 140),\n                 np.hstack((np.arange(30, dtype=int),\n                            np.arange(120, 140, dtype=int)))]\n        for case in cases:\n            data = table[case, :]\n            self.send_signal(self.widget.Inputs.data, data)\n            self.click_apply()\n\n    def test_coefficients_one_value(self):\n        \"\"\"\n        In case we have only two values of a target we get coefficients of only value.\n        Instead of writing \"coef\" or sth similar it is written a second value name.\n        GH-2116\n        \"\"\"\n        table = Table.from_list(\n            Domain(\n                [ContinuousVariable(\"a\"),\n                 ContinuousVariable(\"b\")],\n                [DiscreteVariable(\"c\", values=(\"yes\", \"no\"))]\n            ),\n            list(zip(\n                [1., 0.],\n                [0., 1.],\n                [\"yes\", \"no\"]))\n        )\n        self.send_signal(self.widget.Inputs.data, table)\n        self.click_apply()\n        coef = self.get_output(self.widget.Outputs.coefficients)\n        self.assertEqual(coef.domain[0].name, \"no\")\n        self.assertGreater(coef[2][0], 0.)\n\n    def test_target_with_nan(self):\n        \"\"\"\n        Rows with targets with nans are removed.\n        GH-2392\n        \"\"\"\n        table = Table(\"iris\")\n        with table.unlocked():\n            table.Y[:5] = np.NaN\n        self.send_signal(self.widget.Inputs.data, table)\n        coef1 = self.get_output(self.widget.Outputs.coefficients)\n        table = table[5:]\n        self.send_signal(self.widget.Inputs.data, table)\n        coef2 = self.get_output(self.widget.Outputs.coefficients)\n        self.assertTrue(np.array_equal(coef1, coef2))\n\n    def test_class_weights(self):\n        table = Table(\"iris\")\n        self.send_signal(self.widget.Inputs.data, table)\n        self.assertFalse(self.widget.class_weight)\n        self.widget.controls.class_weight.setChecked(True)\n        self.assertTrue(self.widget.class_weight)\n        self.click_apply()\n        self.assertEqual(self.widget.model.skl_model.class_weight, \"balanced\")\n        self.assertTrue(self.widget.Warning.class_weights_used.is_shown())\n\n    def test_no_penalty(self):\n        self.widget.set_penalty(None)\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, None)\n        self.assertEqual(lr.C, 1.0)\n        self.assertEqual(self.widget.c_label.text(), \"N/A\")\n        self.assertFalse(self.widget.c_slider.isEnabledTo(self.widget))\n\n        self.widget.set_penalty(\"l2\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"l2\")\n        self.assertEqual(self.widget.c_label.text(), \"C=1\")\n        self.assertTrue(self.widget.c_slider.isEnabledTo(self.widget))\n",
            "header": {
                "file": {
                    "path": "Orange/widgets/model/tests/test_owlogisticregression.py"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "c604817e4",
                "new_commit_hash": "47139172f",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/Orange/widgets/model/tests/test_owlogisticregression.py"
            },
            "plus_file": {
                "path": "b/Orange/widgets/model/tests/test_owlogisticregression.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 125,
                            "length": 10
                        },
                        "new_range": {
                            "start": 125,
                            "length": 10
                        },
                        "section": "class TestOWLogisticRegression(WidgetTest, WidgetLearnerTestMixin):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "        self.assertTrue(self.widget.Warning.class_weights_used.is_shown())",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    def test_no_penalty(self):",
                                "type": "context"
                            },
                            {
                                "content": "        self.widget.set_penalty(\"none\")",
                                "type": "deleted"
                            },
                            {
                                "content": "        self.widget.set_penalty(None)",
                                "type": "added"
                            },
                            {
                                "content": "        self.click_apply()",
                                "type": "context"
                            },
                            {
                                "content": "        lr = self.get_output(self.widget.Outputs.learner)",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertEqual(lr.penalty, \"none\")",
                                "type": "deleted"
                            },
                            {
                                "content": "        self.assertEqual(lr.penalty, None)",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(lr.C, 1.0)",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertEqual(self.widget.c_label.text(), \"N/A\")",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertFalse(self.widget.c_slider.isEnabledTo(self.widget))",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "Orange/widgets/model/tests/test_owlogisticregression.py",
                            "type": "method",
                            "name": "TestOWLogisticRegression.test_no_penalty",
                            "content": "class TestOWLogisticRegression(WidgetTest, WidgetLearnerTestMixin):\n    def setUp(self):\n        self.widget = self.create_widget(OWLogisticRegression,\n                                         stored_settings={\"auto_apply\": False})\n        self.init()\n        c_slider = self.widget.c_slider\n\n        def setter(val):\n            index = self.widget.C_s.index(val)\n            self.widget.C_s[c_slider.value()]\n            c_slider.setValue(index)\n\n        self.parameters = [\n            ParameterMapping('penalty', self.widget.penalty_combo,\n                             self.widget.penalty_types_short[:2]),\n            ParameterMapping('C', c_slider,\n                             values=[self.widget.C_s[0], self.widget.C_s[-1]],\n                             getter=lambda: self.widget.C_s[c_slider.value()],\n                             setter=setter)]\n\n    def test_output_coefficients(self):\n        \"\"\"Check if coefficients are on output after apply\"\"\"\n        self.assertIsNone(self.get_output(self.widget.Outputs.coefficients))\n        self.send_signal(self.widget.Inputs.data, self.data)\n        self.click_apply()\n        self.assertIsInstance(self.get_output(self.widget.Outputs.coefficients), Table)\n\n    def test_domain_with_more_values_than_table(self):\n        \"\"\"\n        When the data with a domain which has more values than\n        a table was sent, the widget threw error Invalid number of variable columns.\n        GH-2116\n        \"\"\"\n        table = Table(\"iris\")\n        cases = [slice(80), slice(90, 140),\n                 np.hstack((np.arange(30, dtype=int),\n                            np.arange(120, 140, dtype=int)))]\n        for case in cases:\n            data = table[case, :]\n            self.send_signal(self.widget.Inputs.data, data)\n            self.click_apply()\n\n    def test_coefficients_one_value(self):\n        \"\"\"\n        In case we have only two values of a target we get coefficients of only value.\n        Instead of writing \"coef\" or sth similar it is written a second value name.\n        GH-2116\n        \"\"\"\n        table = Table.from_list(\n            Domain(\n                [ContinuousVariable(\"a\"),\n                 ContinuousVariable(\"b\")],\n                [DiscreteVariable(\"c\", values=(\"yes\", \"no\"))]\n            ),\n            list(zip(\n                [1., 0.],\n                [0., 1.],\n                [\"yes\", \"no\"]))\n        )\n        self.send_signal(self.widget.Inputs.data, table)\n        self.click_apply()\n        coef = self.get_output(self.widget.Outputs.coefficients)\n        self.assertEqual(coef.domain[0].name, \"no\")\n        self.assertGreater(coef[2][0], 0.)\n\n    def test_target_with_nan(self):\n        \"\"\"\n        Rows with targets with nans are removed.\n        GH-2392\n        \"\"\"\n        table = Table(\"iris\")\n        with table.unlocked():\n            table.Y[:5] = np.NaN\n        self.send_signal(self.widget.Inputs.data, table)\n        coef1 = self.get_output(self.widget.Outputs.coefficients)\n        table = table[5:]\n        self.send_signal(self.widget.Inputs.data, table)\n        coef2 = self.get_output(self.widget.Outputs.coefficients)\n        self.assertTrue(np.array_equal(coef1, coef2))\n\n    def test_class_weights(self):\n        table = Table(\"iris\")\n        self.send_signal(self.widget.Inputs.data, table)\n        self.assertFalse(self.widget.class_weight)\n        self.widget.controls.class_weight.setChecked(True)\n        self.assertTrue(self.widget.class_weight)\n        self.click_apply()\n        self.assertEqual(self.widget.model.skl_model.class_weight, \"balanced\")\n        self.assertTrue(self.widget.Warning.class_weights_used.is_shown())\n\n    def test_no_penalty(self):\n        self.widget.set_penalty(\"none\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"none\")\n        self.assertEqual(lr.C, 1.0)\n        self.assertEqual(self.widget.c_label.text(), \"N/A\")\n        self.assertFalse(self.widget.c_slider.isEnabledTo(self.widget))\n\n        self.widget.set_penalty(\"l2\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"l2\")\n        self.assertEqual(self.widget.c_label.text(), \"C=1\")\n        self.assertTrue(self.widget.c_slider.isEnabledTo(self.widget))",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 127,
                            "end_lineno": 141,
                            "parent": {
                                "file_name": "Orange/widgets/model/tests/test_owlogisticregression.py",
                                "type": "class",
                                "name": "TestOWLogisticRegression",
                                "content": "class TestOWLogisticRegression(WidgetTest, WidgetLearnerTestMixin):\n    def setUp(self):\n        self.widget = self.create_widget(OWLogisticRegression,\n                                         stored_settings={\"auto_apply\": False})\n        self.init()\n        c_slider = self.widget.c_slider\n\n        def setter(val):\n            index = self.widget.C_s.index(val)\n            self.widget.C_s[c_slider.value()]\n            c_slider.setValue(index)\n\n        self.parameters = [\n            ParameterMapping('penalty', self.widget.penalty_combo,\n                             self.widget.penalty_types_short[:2]),\n            ParameterMapping('C', c_slider,\n                             values=[self.widget.C_s[0], self.widget.C_s[-1]],\n                             getter=lambda: self.widget.C_s[c_slider.value()],\n                             setter=setter)]\n\n    def test_output_coefficients(self):\n        \"\"\"Check if coefficients are on output after apply\"\"\"\n        self.assertIsNone(self.get_output(self.widget.Outputs.coefficients))\n        self.send_signal(self.widget.Inputs.data, self.data)\n        self.click_apply()\n        self.assertIsInstance(self.get_output(self.widget.Outputs.coefficients), Table)\n\n    def test_domain_with_more_values_than_table(self):\n        \"\"\"\n        When the data with a domain which has more values than\n        a table was sent, the widget threw error Invalid number of variable columns.\n        GH-2116\n        \"\"\"\n        table = Table(\"iris\")\n        cases = [slice(80), slice(90, 140),\n                 np.hstack((np.arange(30, dtype=int),\n                            np.arange(120, 140, dtype=int)))]\n        for case in cases:\n            data = table[case, :]\n            self.send_signal(self.widget.Inputs.data, data)\n            self.click_apply()\n\n    def test_coefficients_one_value(self):\n        \"\"\"\n        In case we have only two values of a target we get coefficients of only value.\n        Instead of writing \"coef\" or sth similar it is written a second value name.\n        GH-2116\n        \"\"\"\n        table = Table.from_list(\n            Domain(\n                [ContinuousVariable(\"a\"),\n                 ContinuousVariable(\"b\")],\n                [DiscreteVariable(\"c\", values=(\"yes\", \"no\"))]\n            ),\n            list(zip(\n                [1., 0.],\n                [0., 1.],\n                [\"yes\", \"no\"]))\n        )\n        self.send_signal(self.widget.Inputs.data, table)\n        self.click_apply()\n        coef = self.get_output(self.widget.Outputs.coefficients)\n        self.assertEqual(coef.domain[0].name, \"no\")\n        self.assertGreater(coef[2][0], 0.)\n\n    def test_target_with_nan(self):\n        \"\"\"\n        Rows with targets with nans are removed.\n        GH-2392\n        \"\"\"\n        table = Table(\"iris\")\n        with table.unlocked():\n            table.Y[:5] = np.NaN\n        self.send_signal(self.widget.Inputs.data, table)\n        coef1 = self.get_output(self.widget.Outputs.coefficients)\n        table = table[5:]\n        self.send_signal(self.widget.Inputs.data, table)\n        coef2 = self.get_output(self.widget.Outputs.coefficients)\n        self.assertTrue(np.array_equal(coef1, coef2))\n\n    def test_class_weights(self):\n        table = Table(\"iris\")\n        self.send_signal(self.widget.Inputs.data, table)\n        self.assertFalse(self.widget.class_weight)\n        self.widget.controls.class_weight.setChecked(True)\n        self.assertTrue(self.widget.class_weight)\n        self.click_apply()\n        self.assertEqual(self.widget.model.skl_model.class_weight, \"balanced\")\n        self.assertTrue(self.widget.Warning.class_weights_used.is_shown())\n\n    def test_no_penalty(self):\n        self.widget.set_penalty(\"none\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"none\")\n        self.assertEqual(lr.C, 1.0)\n        self.assertEqual(self.widget.c_label.text(), \"N/A\")\n        self.assertFalse(self.widget.c_slider.isEnabledTo(self.widget))\n\n        self.widget.set_penalty(\"l2\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"l2\")\n        self.assertEqual(self.widget.c_label.text(), \"C=1\")\n        self.assertTrue(self.widget.c_slider.isEnabledTo(self.widget))",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 37,
                                "end_lineno": 141,
                                "parent": null
                            }
                        },
                        {
                            "file_name": "Orange/widgets/model/tests/test_owlogisticregression.py",
                            "type": "class",
                            "name": "TestOWLogisticRegression",
                            "content": "class TestOWLogisticRegression(WidgetTest, WidgetLearnerTestMixin):\n    def setUp(self):\n        self.widget = self.create_widget(OWLogisticRegression,\n                                         stored_settings={\"auto_apply\": False})\n        self.init()\n        c_slider = self.widget.c_slider\n\n        def setter(val):\n            index = self.widget.C_s.index(val)\n            self.widget.C_s[c_slider.value()]\n            c_slider.setValue(index)\n\n        self.parameters = [\n            ParameterMapping('penalty', self.widget.penalty_combo,\n                             self.widget.penalty_types_short[:2]),\n            ParameterMapping('C', c_slider,\n                             values=[self.widget.C_s[0], self.widget.C_s[-1]],\n                             getter=lambda: self.widget.C_s[c_slider.value()],\n                             setter=setter)]\n\n    def test_output_coefficients(self):\n        \"\"\"Check if coefficients are on output after apply\"\"\"\n        self.assertIsNone(self.get_output(self.widget.Outputs.coefficients))\n        self.send_signal(self.widget.Inputs.data, self.data)\n        self.click_apply()\n        self.assertIsInstance(self.get_output(self.widget.Outputs.coefficients), Table)\n\n    def test_domain_with_more_values_than_table(self):\n        \"\"\"\n        When the data with a domain which has more values than\n        a table was sent, the widget threw error Invalid number of variable columns.\n        GH-2116\n        \"\"\"\n        table = Table(\"iris\")\n        cases = [slice(80), slice(90, 140),\n                 np.hstack((np.arange(30, dtype=int),\n                            np.arange(120, 140, dtype=int)))]\n        for case in cases:\n            data = table[case, :]\n            self.send_signal(self.widget.Inputs.data, data)\n            self.click_apply()\n\n    def test_coefficients_one_value(self):\n        \"\"\"\n        In case we have only two values of a target we get coefficients of only value.\n        Instead of writing \"coef\" or sth similar it is written a second value name.\n        GH-2116\n        \"\"\"\n        table = Table.from_list(\n            Domain(\n                [ContinuousVariable(\"a\"),\n                 ContinuousVariable(\"b\")],\n                [DiscreteVariable(\"c\", values=(\"yes\", \"no\"))]\n            ),\n            list(zip(\n                [1., 0.],\n                [0., 1.],\n                [\"yes\", \"no\"]))\n        )\n        self.send_signal(self.widget.Inputs.data, table)\n        self.click_apply()\n        coef = self.get_output(self.widget.Outputs.coefficients)\n        self.assertEqual(coef.domain[0].name, \"no\")\n        self.assertGreater(coef[2][0], 0.)\n\n    def test_target_with_nan(self):\n        \"\"\"\n        Rows with targets with nans are removed.\n        GH-2392\n        \"\"\"\n        table = Table(\"iris\")\n        with table.unlocked():\n            table.Y[:5] = np.NaN\n        self.send_signal(self.widget.Inputs.data, table)\n        coef1 = self.get_output(self.widget.Outputs.coefficients)\n        table = table[5:]\n        self.send_signal(self.widget.Inputs.data, table)\n        coef2 = self.get_output(self.widget.Outputs.coefficients)\n        self.assertTrue(np.array_equal(coef1, coef2))\n\n    def test_class_weights(self):\n        table = Table(\"iris\")\n        self.send_signal(self.widget.Inputs.data, table)\n        self.assertFalse(self.widget.class_weight)\n        self.widget.controls.class_weight.setChecked(True)\n        self.assertTrue(self.widget.class_weight)\n        self.click_apply()\n        self.assertEqual(self.widget.model.skl_model.class_weight, \"balanced\")\n        self.assertTrue(self.widget.Warning.class_weights_used.is_shown())\n\n    def test_no_penalty(self):\n        self.widget.set_penalty(\"none\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"none\")\n        self.assertEqual(lr.C, 1.0)\n        self.assertEqual(self.widget.c_label.text(), \"N/A\")\n        self.assertFalse(self.widget.c_slider.isEnabledTo(self.widget))\n\n        self.widget.set_penalty(\"l2\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"l2\")\n        self.assertEqual(self.widget.c_label.text(), \"C=1\")\n        self.assertTrue(self.widget.c_slider.isEnabledTo(self.widget))",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 37,
                            "end_lineno": 141,
                            "parent": null
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                }
            ]
        }
    ],
    "old_commit_hash": "f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831^",
    "new_commit_hash": "f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831",
    "commit_message": "Logistic regression: Fix penalty ('none' -> None)",
    "commit_date": "2024-09-06T13:44:48+02:00",
    "metadata": {}
}
{
    "repo_name": "orange3",
    "new_commit_hash": "f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831",
    "test_file_codes": [
        "# Test methods with long descriptive names can omit docstrings\n# pylint: disable=missing-docstring\nimport unittest\n\nimport numpy as np\n\nfrom Orange.classification import LogisticRegressionLearner\nfrom Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable\nfrom Orange.statistics.util import stats\nfrom Orange.widgets.model.owlogisticregression import (create_coef_table,\n                                                       OWLogisticRegression)\nfrom Orange.widgets.tests.base import (WidgetTest, WidgetLearnerTestMixin,\n                                       ParameterMapping)\n\n\nclass LogisticRegressionTest(unittest.TestCase):\n    def test_coef_table_single(self):\n        data = Table(\"titanic\")\n        learn = LogisticRegressionLearner()\n        classifier = learn(data)\n        coef_table = create_coef_table(classifier)\n        self.assertEqual(1, len(stats(coef_table.metas, None)))\n        self.assertEqual(len(coef_table), len(classifier.domain.attributes) + 1)\n        self.assertEqual(len(coef_table[0]), 1)\n\n    def test_coef_table_multiple(self):\n        data = Table(\"zoo\")\n        learn = LogisticRegressionLearner()\n        classifier = learn(data)\n        coef_table = create_coef_table(classifier)\n        self.assertEqual(1, len(stats(coef_table.metas, None)))\n        self.assertEqual(len(coef_table), len(classifier.domain.attributes) + 1)\n        self.assertEqual(len(coef_table[0]),\n                         len(classifier.domain.class_var.values))\n\n\nclass TestOWLogisticRegression(WidgetTest, WidgetLearnerTestMixin):\n    def setUp(self):\n        self.widget = self.create_widget(OWLogisticRegression,\n                                         stored_settings={\"auto_apply\": False})\n        self.init()\n        c_slider = self.widget.c_slider\n\n        def setter(val):\n            index = self.widget.C_s.index(val)\n            self.widget.C_s[c_slider.value()]\n            c_slider.setValue(index)\n\n        self.parameters = [\n            ParameterMapping('penalty', self.widget.penalty_combo,\n                             self.widget.penalty_types_short[:2]),\n            ParameterMapping('C', c_slider,\n                             values=[self.widget.C_s[0], self.widget.C_s[-1]],\n                             getter=lambda: self.widget.C_s[c_slider.value()],\n                             setter=setter)]\n\n    def test_output_coefficients(self):\n        \"\"\"Check if coefficients are on output after apply\"\"\"\n        self.assertIsNone(self.get_output(self.widget.Outputs.coefficients))\n        self.send_signal(self.widget.Inputs.data, self.data)\n        self.click_apply()\n        self.assertIsInstance(self.get_output(self.widget.Outputs.coefficients), Table)\n\n    def test_domain_with_more_values_than_table(self):\n        \"\"\"\n        When the data with a domain which has more values than\n        a table was sent, the widget threw error Invalid number of variable columns.\n        GH-2116\n        \"\"\"\n        table = Table(\"iris\")\n        cases = [slice(80), slice(90, 140),\n                 np.hstack((np.arange(30, dtype=int),\n                            np.arange(120, 140, dtype=int)))]\n        for case in cases:\n            data = table[case, :]\n            self.send_signal(self.widget.Inputs.data, data)\n            self.click_apply()\n\n    def test_coefficients_one_value(self):\n        \"\"\"\n        In case we have only two values of a target we get coefficients of only value.\n        Instead of writing \"coef\" or sth similar it is written a second value name.\n        GH-2116\n        \"\"\"\n        table = Table.from_list(\n            Domain(\n                [ContinuousVariable(\"a\"),\n                 ContinuousVariable(\"b\")],\n                [DiscreteVariable(\"c\", values=(\"yes\", \"no\"))]\n            ),\n            list(zip(\n                [1., 0.],\n                [0., 1.],\n                [\"yes\", \"no\"]))\n        )\n        self.send_signal(self.widget.Inputs.data, table)\n        self.click_apply()\n        coef = self.get_output(self.widget.Outputs.coefficients)\n        self.assertEqual(coef.domain[0].name, \"no\")\n        self.assertGreater(coef[2][0], 0.)\n\n    def test_target_with_nan(self):\n        \"\"\"\n        Rows with targets with nans are removed.\n        GH-2392\n        \"\"\"\n        table = Table(\"iris\")\n        with table.unlocked():\n            table.Y[:5] = np.NaN\n        self.send_signal(self.widget.Inputs.data, table)\n        coef1 = self.get_output(self.widget.Outputs.coefficients)\n        table = table[5:]\n        self.send_signal(self.widget.Inputs.data, table)\n        coef2 = self.get_output(self.widget.Outputs.coefficients)\n        self.assertTrue(np.array_equal(coef1, coef2))\n\n    def test_class_weights(self):\n        table = Table(\"iris\")\n        self.send_signal(self.widget.Inputs.data, table)\n        self.assertFalse(self.widget.class_weight)\n        self.widget.controls.class_weight.setChecked(True)\n        self.assertTrue(self.widget.class_weight)\n        self.click_apply()\n        self.assertEqual(self.widget.model.skl_model.class_weight, \"balanced\")\n        self.assertTrue(self.widget.Warning.class_weights_used.is_shown())\n\n    def test_no_penalty(self):\n        self.widget.set_penalty(None)\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, None)\n        self.assertEqual(lr.C, 1.0)\n        self.assertEqual(self.widget.c_label.text(), \"N/A\")\n        self.assertFalse(self.widget.c_slider.isEnabledTo(self.widget))\n\n        self.widget.set_penalty(\"l2\")\n        self.click_apply()\n        lr = self.get_output(self.widget.Outputs.learner)\n        self.assertEqual(lr.penalty, \"l2\")\n        self.assertEqual(self.widget.c_label.text(), \"C=1\")\n        self.assertTrue(self.widget.c_slider.isEnabledTo(self.widget))\n"
    ],
    "test_file_names": [
        "test_1.py"
    ],
    "setup_res_code": 0,
    "setup_res_stdout": "Starting Orange installation attempts...\nAttempting installation with Python 3.7...\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\nrunning build_ext\nbuilding 'Orange.classification._simple_tree' 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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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\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/_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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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\nbuilding 'Orange.classification._tree_scorers' 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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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\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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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\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\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\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/_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\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\nCreating /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/Orange3.egg-link (link to .)\nAdding Orange3 3.38.0.dev0+f9f4e59 to easy-install.pth file\nInstalling orange-canvas script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831\nProcessing dependencies for Orange3==3.38.0.dev0+f9f4e59\nSearching for xlsxwriter\nReading https://pypi.org/simple/xlsxwriter/\nDownloading https://files.pythonhosted.org/packages/a7/ea/53d1fe468e63e092cf16e2c18d16f50c29851242f9dd12d6a66e0d7f0d02/XlsxWriter-3.2.0-py3-none-any.whl#sha256=ecfd5405b3e0e228219bcaf24c2ca0915e012ca9464a14048021d21a995d490e\nBest match: XlsxWriter 3.2.0\nProcessing XlsxWriter-3.2.0-py3-none-any.whl\nInstalling XlsxWriter-3.2.0-py3-none-any.whl to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages\nAdding XlsxWriter 3.2.0 to easy-install.pth file\nInstalling vba_extract.py script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/XlsxWriter-3.2.0-py3.7.egg\nSearching for xlrd>=1.2.0\nReading https://pypi.org/simple/xlrd/\nDownloading https://files.pythonhosted.org/packages/a6/0c/c2a72d51fe56e08a08acc85d13013558a2d793028ae7385448a6ccdfae64/xlrd-2.0.1-py2.py3-none-any.whl#sha256=6a33ee89877bd9abc1158129f6e94be74e2679636b8a205b43b85206c3f0bbdd\nBest match: xlrd 2.0.1\nProcessing xlrd-2.0.1-py2.py3-none-any.whl\nInstalling xlrd-2.0.1-py2.py3-none-any.whl to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages\nAdding xlrd 2.0.1 to easy-install.pth file\nInstalling runxlrd.py script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/xlrd-2.0.1-py3.7.egg\nSearching for xgboost<2.1,>=1.7.4\nReading https://pypi.org/simple/xgboost/\nDownloading https://files.pythonhosted.org/packages/c3/eb/496aa2f5d356af4185f770bc76055307f8d1870e11016b10fd779b21769c/xgboost-2.0.3-py3-none-manylinux2014_x86_64.whl#sha256=30bd5f789fad467fd49e04e5d19e04238b931682c3951a514da5c2410b3bf59c\nBest match: xgboost 2.0.3\nProcessing xgboost-2.0.3-py3-none-manylinux2014_x86_64.whl\nInstalling xgboost-2.0.3-py3-none-manylinux2014_x86_64.whl to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages\nAdding xgboost 2.0.3 to easy-install.pth file\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/xgboost-2.0.3-py3.7-linux-x86_64.egg\nSearching for serverfiles\nReading https://pypi.org/simple/serverfiles/\nDownloading https://files.pythonhosted.org/packages/33/36/794fe1c4ed29b0f56a26d72e956baf0285d8fe9e29faf36797a28a8ad45b/serverfiles-0.3.1.tar.gz#sha256=5e10fc32e758791e3735bc08bce2ed4702a83b1e45ab96c5d59cc8aeecfbebe1\nBest match: serverfiles 0.3.1\nProcessing serverfiles-0.3.1.tar.gz\nWriting /tmp/easy_install-gj_b3wo7/serverfiles-0.3.1/setup.cfg\nRunning serverfiles-0.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-gj_b3wo7/serverfiles-0.3.1/egg-dist-tmp-kw650t2t\ncreating /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/serverfiles-0.3.1-py3.7.egg\nExtracting serverfiles-0.3.1-py3.7.egg to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages\nAdding serverfiles 0.3.1 to easy-install.pth file\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/serverfiles-0.3.1-py3.7.egg\nSearching for scipy>=1.9\nReading https://pypi.org/simple/scipy/\nDownloading https://files.pythonhosted.org/packages/d9/7b/2b8ac283cf32465ed08bc20a83d559fe7b174a484781702ba8accea001d6/scipy-1.15.0.tar.gz#sha256=300742e2cc94e36a2880ebe464a1c8b4352a7b0f3e36ec3d2ac006cdbe0219ac\nBest match: scipy 1.15.0\nProcessing scipy-1.15.0.tar.gz\nVerifying Orange installation...\n❌ Orange verification failed\nPython 3.7 installation failed, trying Python 3.8...\nAttempting installation with Python 3.8...\nrunning build_ext\nbuilding 'Orange.classification._simple_tree' extension\ncreating build/temp.linux-x86_64-cpython-38/Orange/classification\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/classification/_simple_tree.c -o build/temp.linux-x86_64-cpython-38/Orange/classification/_simple_tree.o\ncreating build/lib.linux-x86_64-cpython-38/Orange/classification\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/classification/_simple_tree.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/classification/_simple_tree.cpython-38-x86_64-linux-gnu.so\nbuilding 'Orange.widgets.utils._grid_density' extension\ncreating build/temp.linux-x86_64-cpython-38/Orange/widgets/utils\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/widgets/utils/_grid_density.cpp -o build/temp.linux-x86_64-cpython-38/Orange/widgets/utils/_grid_density.o\ncreating build/lib.linux-x86_64-cpython-38/Orange/widgets/utils\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -pthread -shared build/temp.linux-x86_64-cpython-38/Orange/widgets/utils/_grid_density.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/widgets/utils/_grid_density.cpython-38-x86_64-linux-gnu.so\nbuilding 'Orange.classification._tree_scorers' extension\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/classification/_tree_scorers.c -o build/temp.linux-x86_64-cpython-38/Orange/classification/_tree_scorers.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/classification/_tree_scorers.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/classification/_tree_scorers.cpython-38-x86_64-linux-gnu.so\nbuilding 'Orange.data._contingency' extension\ncreating build/temp.linux-x86_64-cpython-38/Orange/data\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/data/_contingency.c -o build/temp.linux-x86_64-cpython-38/Orange/data/_contingency.o\ncreating build/lib.linux-x86_64-cpython-38/Orange/data\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/data/_contingency.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/data/_contingency.cpython-38-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 -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/data/_io.c -o build/temp.linux-x86_64-cpython-38/Orange/data/_io.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/data/_io.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/data/_io.cpython-38-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 -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/data/_valuecount.c -o build/temp.linux-x86_64-cpython-38/Orange/data/_valuecount.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/data/_valuecount.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/data/_valuecount.cpython-38-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 -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/data/_variable.c -o build/temp.linux-x86_64-cpython-38/Orange/data/_variable.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/data/_variable.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/data/_variable.cpython-38-x86_64-linux-gnu.so\nbuilding 'Orange.distance._distance' extension\ncreating build/temp.linux-x86_64-cpython-38/Orange/distance\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/distance/_distance.c -o build/temp.linux-x86_64-cpython-38/Orange/distance/_distance.o\ncreating build/lib.linux-x86_64-cpython-38/Orange/distance\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/distance/_distance.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/distance/_distance.cpython-38-x86_64-linux-gnu.so\nbuilding 'Orange.preprocess._discretize' extension\ncreating build/temp.linux-x86_64-cpython-38/Orange/preprocess\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/preprocess/_discretize.c -o build/temp.linux-x86_64-cpython-38/Orange/preprocess/_discretize.o\ncreating build/lib.linux-x86_64-cpython-38/Orange/preprocess\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/preprocess/_discretize.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/preprocess/_discretize.cpython-38-x86_64-linux-gnu.so\nbuilding 'Orange.preprocess._relieff' extension\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/preprocess/_relieff.cpp -o build/temp.linux-x86_64-cpython-38/Orange/preprocess/_relieff.o\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -pthread -shared build/temp.linux-x86_64-cpython-38/Orange/preprocess/_relieff.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/preprocess/_relieff.cpython-38-x86_64-linux-gnu.so\nbuilding 'Orange.projection._som' extension\ncreating build/temp.linux-x86_64-cpython-38/Orange/projection\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8 -c Orange/projection/_som.c -o build/temp.linux-x86_64-cpython-38/Orange/projection/_som.o\ncreating build/lib.linux-x86_64-cpython-38/Orange/projection\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-38/Orange/projection/_som.o -L/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-38/Orange/projection/_som.cpython-38-x86_64-linux-gnu.so\ncopying build/lib.linux-x86_64-cpython-38/Orange/classification/_simple_tree.cpython-38-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-38/Orange/widgets/utils/_grid_density.cpython-38-x86_64-linux-gnu.so -> Orange/widgets/utils\ncopying build/lib.linux-x86_64-cpython-38/Orange/classification/_tree_scorers.cpython-38-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_contingency.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_io.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_valuecount.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_variable.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/distance/_distance.cpython-38-x86_64-linux-gnu.so -> Orange/distance\ncopying build/lib.linux-x86_64-cpython-38/Orange/preprocess/_discretize.cpython-38-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-38/Orange/preprocess/_relieff.cpython-38-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-38/Orange/projection/_som.cpython-38-x86_64-linux-gnu.so -> Orange/projection\nrunning develop\nrunning 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\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\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-cpython-38/Orange/classification/_simple_tree.cpython-38-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-38/Orange/widgets/utils/_grid_density.cpython-38-x86_64-linux-gnu.so -> Orange/widgets/utils\ncopying build/lib.linux-x86_64-cpython-38/Orange/classification/_tree_scorers.cpython-38-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_contingency.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_io.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_valuecount.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/data/_variable.cpython-38-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-38/Orange/distance/_distance.cpython-38-x86_64-linux-gnu.so -> Orange/distance\ncopying build/lib.linux-x86_64-cpython-38/Orange/preprocess/_discretize.cpython-38-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-38/Orange/preprocess/_relieff.cpython-38-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-38/Orange/projection/_som.cpython-38-x86_64-linux-gnu.so -> Orange/projection\nCreating /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/Orange3.egg-link (link to .)\nAdding Orange3 3.38.0.dev0+f9f4e59 to easy-install.pth file\nInstalling orange-canvas script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831\nProcessing dependencies for Orange3==3.38.0.dev0+f9f4e59\nSearching for xlsxwriter\nReading https://pypi.org/simple/xlsxwriter/\nDownloading https://files.pythonhosted.org/packages/a7/ea/53d1fe468e63e092cf16e2c18d16f50c29851242f9dd12d6a66e0d7f0d02/XlsxWriter-3.2.0-py3-none-any.whl#sha256=ecfd5405b3e0e228219bcaf24c2ca0915e012ca9464a14048021d21a995d490e\nBest match: XlsxWriter 3.2.0\nProcessing XlsxWriter-3.2.0-py3-none-any.whl\nInstalling XlsxWriter-3.2.0-py3-none-any.whl to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages\nAdding XlsxWriter 3.2.0 to easy-install.pth file\nInstalling vba_extract.py script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/XlsxWriter-3.2.0-py3.8.egg\nSearching for xlrd>=1.2.0\nReading https://pypi.org/simple/xlrd/\nDownloading https://files.pythonhosted.org/packages/a6/0c/c2a72d51fe56e08a08acc85d13013558a2d793028ae7385448a6ccdfae64/xlrd-2.0.1-py2.py3-none-any.whl#sha256=6a33ee89877bd9abc1158129f6e94be74e2679636b8a205b43b85206c3f0bbdd\nBest match: xlrd 2.0.1\nProcessing xlrd-2.0.1-py2.py3-none-any.whl\nInstalling xlrd-2.0.1-py2.py3-none-any.whl to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages\nAdding xlrd 2.0.1 to easy-install.pth file\ndetected new path './XlsxWriter-3.2.0-py3.8.egg'\nInstalling runxlrd.py script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/xlrd-2.0.1-py3.8.egg\nSearching for xgboost<2.1,>=1.7.4\nReading https://pypi.org/simple/xgboost/\nDownloading https://files.pythonhosted.org/packages/c3/eb/496aa2f5d356af4185f770bc76055307f8d1870e11016b10fd779b21769c/xgboost-2.0.3-py3-none-manylinux2014_x86_64.whl#sha256=30bd5f789fad467fd49e04e5d19e04238b931682c3951a514da5c2410b3bf59c\nBest match: xgboost 2.0.3\nProcessing xgboost-2.0.3-py3-none-manylinux2014_x86_64.whl\nInstalling xgboost-2.0.3-py3-none-manylinux2014_x86_64.whl to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages\nAdding xgboost 2.0.3 to easy-install.pth file\ndetected new path './xlrd-2.0.1-py3.8.egg'\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/xgboost-2.0.3-py3.8-linux-x86_64.egg\nSearching for serverfiles\nReading https://pypi.org/simple/serverfiles/\nDownloading https://files.pythonhosted.org/packages/33/36/794fe1c4ed29b0f56a26d72e956baf0285d8fe9e29faf36797a28a8ad45b/serverfiles-0.3.1.tar.gz#sha256=5e10fc32e758791e3735bc08bce2ed4702a83b1e45ab96c5d59cc8aeecfbebe1\nBest match: serverfiles 0.3.1\nProcessing serverfiles-0.3.1.tar.gz\nWriting /tmp/easy_install-wrrc7bbr/serverfiles-0.3.1/setup.cfg\nRunning serverfiles-0.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-wrrc7bbr/serverfiles-0.3.1/egg-dist-tmp-tfex_kbh\nAdding serverfiles 0.3.1 to easy-install.pth file\ndetected new path './xgboost-2.0.3-py3.8-linux-x86_64.egg'\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/serverfiles-0.3.1-py3.8.egg\nSearching for scipy>=1.9\nReading https://pypi.org/simple/scipy/\nDownloading https://files.pythonhosted.org/packages/d9/7b/2b8ac283cf32465ed08bc20a83d559fe7b174a484781702ba8accea001d6/scipy-1.15.0.tar.gz#sha256=300742e2cc94e36a2880ebe464a1c8b4352a7b0f3e36ec3d2ac006cdbe0219ac\nBest match: scipy 1.15.0\nProcessing scipy-1.15.0.tar.gz\nVerifying Orange installation...\n❌ Orange verification failed\nPython 3.7,3.8 installation failed, trying Python 3.8...\nAttempting installation with Python 3.10...\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\nrunning build_ext\nbuilding 'Orange.classification._simple_tree' extension\ncreating build/temp.linux-x86_64-cpython-310/Orange/classification\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/classification/_simple_tree.c -o build/temp.linux-x86_64-cpython-310/Orange/classification/_simple_tree.o\ncreating build/lib.linux-x86_64-cpython-310/Orange/classification\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/classification/_simple_tree.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/classification/_simple_tree.cpython-310-x86_64-linux-gnu.so\nbuilding 'Orange.widgets.utils._grid_density' extension\ncreating build/temp.linux-x86_64-cpython-310/Orange/widgets/utils\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/widgets/utils/_grid_density.cpp -o build/temp.linux-x86_64-cpython-310/Orange/widgets/utils/_grid_density.o\ncreating build/lib.linux-x86_64-cpython-310/Orange/widgets/utils\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -pthread -shared build/temp.linux-x86_64-cpython-310/Orange/widgets/utils/_grid_density.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/widgets/utils/_grid_density.cpython-310-x86_64-linux-gnu.so\nbuilding 'Orange.classification._tree_scorers' extension\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/classification/_tree_scorers.c -o build/temp.linux-x86_64-cpython-310/Orange/classification/_tree_scorers.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/classification/_tree_scorers.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/classification/_tree_scorers.cpython-310-x86_64-linux-gnu.so\nbuilding 'Orange.data._contingency' extension\ncreating build/temp.linux-x86_64-cpython-310/Orange/data\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/data/_contingency.c -o build/temp.linux-x86_64-cpython-310/Orange/data/_contingency.o\ncreating build/lib.linux-x86_64-cpython-310/Orange/data\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/data/_contingency.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/data/_contingency.cpython-310-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 -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/data/_io.c -o build/temp.linux-x86_64-cpython-310/Orange/data/_io.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/data/_io.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/data/_io.cpython-310-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 -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/data/_valuecount.c -o build/temp.linux-x86_64-cpython-310/Orange/data/_valuecount.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/data/_valuecount.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/data/_valuecount.cpython-310-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 -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/data/_variable.c -o build/temp.linux-x86_64-cpython-310/Orange/data/_variable.o\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/data/_variable.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/data/_variable.cpython-310-x86_64-linux-gnu.so\nbuilding 'Orange.distance._distance' extension\ncreating build/temp.linux-x86_64-cpython-310/Orange/distance\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/distance/_distance.c -o build/temp.linux-x86_64-cpython-310/Orange/distance/_distance.o\ncreating build/lib.linux-x86_64-cpython-310/Orange/distance\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/distance/_distance.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/distance/_distance.cpython-310-x86_64-linux-gnu.so\nbuilding 'Orange.preprocess._discretize' extension\ncreating build/temp.linux-x86_64-cpython-310/Orange/preprocess\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/preprocess/_discretize.c -o build/temp.linux-x86_64-cpython-310/Orange/preprocess/_discretize.o\ncreating build/lib.linux-x86_64-cpython-310/Orange/preprocess\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/preprocess/_discretize.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/preprocess/_discretize.cpython-310-x86_64-linux-gnu.so\nbuilding 'Orange.preprocess._relieff' extension\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/preprocess/_relieff.cpp -o build/temp.linux-x86_64-cpython-310/Orange/preprocess/_relieff.o\nc++ -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -pthread -shared build/temp.linux-x86_64-cpython-310/Orange/preprocess/_relieff.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/preprocess/_relieff.cpython-310-x86_64-linux-gnu.so\nbuilding 'Orange.projection._som' extension\ncreating build/temp.linux-x86_64-cpython-310/Orange/projection\ncc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include -I/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/include -I/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10 -c Orange/projection/_som.c -o build/temp.linux-x86_64-cpython-310/Orange/projection/_som.o\ncreating build/lib.linux-x86_64-cpython-310/Orange/projection\ncc -pthread -shared -Wl,--exclude-libs,ALL build/temp.linux-x86_64-cpython-310/Orange/projection/_som.o -L/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/lib -lm -o build/lib.linux-x86_64-cpython-310/Orange/projection/_som.cpython-310-x86_64-linux-gnu.so\ncopying build/lib.linux-x86_64-cpython-310/Orange/classification/_simple_tree.cpython-310-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-310/Orange/widgets/utils/_grid_density.cpython-310-x86_64-linux-gnu.so -> Orange/widgets/utils\ncopying build/lib.linux-x86_64-cpython-310/Orange/classification/_tree_scorers.cpython-310-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_contingency.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_io.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_valuecount.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_variable.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/distance/_distance.cpython-310-x86_64-linux-gnu.so -> Orange/distance\ncopying build/lib.linux-x86_64-cpython-310/Orange/preprocess/_discretize.cpython-310-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-310/Orange/preprocess/_relieff.cpython-310-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-310/Orange/projection/_som.cpython-310-x86_64-linux-gnu.so -> Orange/projection\nrunning develop\nrunning 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\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayscalars.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/npy_math.h won't be automatically included in the manifest: the path must be relative\ndependency /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ufuncobject.h won't be automatically included in the manifest: the path must be relative\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-cpython-310/Orange/classification/_simple_tree.cpython-310-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-310/Orange/widgets/utils/_grid_density.cpython-310-x86_64-linux-gnu.so -> Orange/widgets/utils\ncopying build/lib.linux-x86_64-cpython-310/Orange/classification/_tree_scorers.cpython-310-x86_64-linux-gnu.so -> Orange/classification\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_contingency.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_io.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_valuecount.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/data/_variable.cpython-310-x86_64-linux-gnu.so -> Orange/data\ncopying build/lib.linux-x86_64-cpython-310/Orange/distance/_distance.cpython-310-x86_64-linux-gnu.so -> Orange/distance\ncopying build/lib.linux-x86_64-cpython-310/Orange/preprocess/_discretize.cpython-310-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-310/Orange/preprocess/_relieff.cpython-310-x86_64-linux-gnu.so -> Orange/preprocess\ncopying build/lib.linux-x86_64-cpython-310/Orange/projection/_som.cpython-310-x86_64-linux-gnu.so -> Orange/projection\nCreating /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/Orange3.egg-link (link to .)\nAdding Orange3 3.38.0.dev0+f9f4e59 to easy-install.pth file\nInstalling orange-canvas script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nInstalled /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831\nProcessing dependencies for Orange3==3.38.0.dev0+f9f4e59\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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for xgboost==2.0.3\nBest match: xgboost 2.0.3\nAdding xgboost 2.0.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for scipy==1.15.0\nBest match: scipy 1.15.0\nAdding scipy 1.15.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for scikit-learn==1.6.0\nBest match: scikit-learn 1.6.0\nAdding scikit-learn 1.6.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for requests==2.32.3\nBest match: requests 2.32.3\nAdding requests 2.32.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for qtconsole==5.6.1\nBest match: qtconsole 5.6.1\nAdding qtconsole 5.6.1 to easy-install.pth file\nInstalling jupyter-qtconsole script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for PyYAML==6.0.2\nBest match: PyYAML 6.0.2\nAdding PyYAML 6.0.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pyqtgraph==0.13.7\nBest match: pyqtgraph 0.13.7\nAdding pyqtgraph 0.13.7 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pygments==2.19.1\nBest match: pygments 2.19.1\nAdding pygments 2.19.1 to easy-install.pth file\nInstalling pygmentize script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pip==24.3.1\nBest match: pip 24.3.1\nAdding pip 24.3.1 to easy-install.pth file\nInstalling pip script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling pip3 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pandas==2.2.3\nBest match: pandas 2.2.3\nAdding pandas 2.2.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for packaging==24.2\nBest match: packaging 24.2\nAdding packaging 24.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/setuptools/_vendor\nSearching for orange-widget-base==4.25.1\nBest match: orange-widget-base 4.25.1\nAdding orange-widget-base 4.25.1 to easy-install.pth file\ndetected new path './setuptools/_vendor'\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for orange-canvas-core==0.2.5\nBest match: orange-canvas-core 0.2.5\nAdding orange-canvas-core 0.2.5 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for openpyxl==3.1.5\nBest match: openpyxl 3.1.5\nAdding openpyxl 3.1.5 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for openTSNE==1.0.2\nBest match: openTSNE 1.0.2\nAdding openTSNE 1.0.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for numpy==1.26.4\nBest match: numpy 1.26.4\nAdding numpy 1.26.4 to easy-install.pth file\nInstalling f2py script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for networkx==3.4.2\nBest match: networkx 3.4.2\nAdding networkx 3.4.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for matplotlib==3.10.0\nBest match: matplotlib 3.10.0\nAdding matplotlib 3.10.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for keyrings.alt==5.0.2\nBest match: keyrings.alt 5.0.2\nAdding keyrings.alt 5.0.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for keyring==25.6.0\nBest match: keyring 25.6.0\nAdding keyring 25.6.0 to easy-install.pth file\nInstalling keyring script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for joblib==1.4.2\nBest match: joblib 1.4.2\nAdding joblib 1.4.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for httpx==0.28.1\nBest match: httpx 0.28.1\nAdding httpx 0.28.1 to easy-install.pth file\nInstalling httpx script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for catboost==1.2.7\nBest match: catboost 1.2.7\nAdding catboost 1.2.7 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for Bottleneck==1.4.2\nBest match: Bottleneck 1.4.2\nAdding Bottleneck 1.4.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for threadpoolctl==3.5.0\nBest match: threadpoolctl 3.5.0\nAdding threadpoolctl 3.5.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for urllib3==2.3.0\nBest match: urllib3 2.3.0\nAdding urllib3 2.3.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for ipykernel==6.29.5\nBest match: ipykernel 6.29.5\nAdding ipykernel 6.29.5 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for jupyter-client==8.6.3\nBest match: jupyter-client 8.6.3\nAdding jupyter-client 8.6.3 to easy-install.pth file\nInstalling jupyter-kernel script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling jupyter-kernelspec script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling jupyter-run script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for jupyter-core==5.7.2\nBest match: jupyter-core 5.7.2\nAdding jupyter-core 5.7.2 to easy-install.pth file\nInstalling jupyter script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling jupyter-migrate script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling jupyter-troubleshoot script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for traitlets==5.14.3\nBest match: traitlets 5.14.3\nAdding traitlets 5.14.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for tzdata==2024.2\nBest match: tzdata 2024.2\nAdding tzdata 2024.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for typing-extensions==4.12.2\nBest match: typing-extensions 4.12.2\ntyping-extensions 4.12.2 is already the active version in easy-install.pth\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/setuptools/_vendor\nSearching for qasync==0.27.1\nBest match: qasync 0.27.1\nAdding qasync 0.27.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for requests-cache==1.2.1\nBest match: requests-cache 1.2.1\nAdding requests-cache 1.2.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for docutils==0.21.2\nBest match: docutils 0.21.2\nAdding docutils 0.21.2 to easy-install.pth file\nInstalling docutils script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2html script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2html4 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2html5 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2latex script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2man script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2odt script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2pseudoxml script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2s5 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2xetex script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling rst2xml script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for et-xmlfile==2.0.0\nBest match: et-xmlfile 2.0.0\nAdding et-xmlfile 2.0.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pyparsing==3.2.1\nBest match: pyparsing 3.2.1\nAdding pyparsing 3.2.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pillow==11.1.0\nBest match: pillow 11.1.0\nAdding pillow 11.1.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for kiwisolver==1.4.8\nBest match: kiwisolver 1.4.8\nAdding kiwisolver 1.4.8 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for fonttools==4.55.3\nBest match: fonttools 4.55.3\nAdding fonttools 4.55.3 to easy-install.pth file\nInstalling fonttools script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling pyftmerge script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling pyftsubset script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling ttx script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for cycler==0.12.1\nBest match: cycler 0.12.1\nAdding cycler 0.12.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for contourpy==1.3.1\nBest match: contourpy 1.3.1\nAdding contourpy 1.3.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for jaraco.context==6.0.1\nBest match: jaraco.context 6.0.1\nAdding jaraco.context 6.0.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for jaraco.classes==3.4.0\nBest match: jaraco.classes 3.4.0\nAdding jaraco.classes 3.4.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for jaraco.functools==4.1.0\nBest match: jaraco.functools 4.1.0\nAdding jaraco.functools 4.1.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for importlib-metadata==8.5.0\nBest match: importlib-metadata 8.5.0\nAdding importlib-metadata 8.5.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for httpcore==1.0.7\nBest match: httpcore 1.0.7\nAdding httpcore 1.0.7 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for anyio==4.8.0\nBest match: anyio 4.8.0\nAdding anyio 4.8.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for plotly==5.24.1\nBest match: plotly 5.24.1\nAdding plotly 5.24.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for graphviz==0.20.3\nBest match: graphviz 0.20.3\nAdding graphviz 0.20.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for tornado==6.4.2\nBest match: tornado 6.4.2\nAdding tornado 6.4.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for matplotlib-inline==0.1.7\nBest match: matplotlib-inline 0.1.7\nAdding matplotlib-inline 0.1.7 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for ipython==8.31.0\nBest match: ipython 8.31.0\nAdding ipython 8.31.0 to easy-install.pth file\nInstalling ipython script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\nInstalling ipython3 script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for debugpy==1.8.11\nBest match: debugpy 1.8.11\nAdding debugpy 1.8.11 to easy-install.pth file\nInstalling debugpy script to /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/bin\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for comm==0.2.2\nBest match: comm 0.2.2\nAdding comm 0.2.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for platformdirs==4.3.6\nBest match: platformdirs 4.3.6\nAdding platformdirs 4.3.6 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for cattrs==24.1.2\nBest match: cattrs 24.1.2\nAdding cattrs 24.1.2 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for attrs==24.3.0\nBest match: attrs 24.3.0\nAdding attrs 24.3.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for backports.tarfile==1.2.0\nBest match: backports.tarfile 1.2.0\nbackports.tarfile 1.2.0 is already the active version in easy-install.pth\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/setuptools/_vendor\nSearching for more-itertools==10.5.0\nBest match: more-itertools 10.5.0\nAdding more-itertools 10.5.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for zipp==3.21.0\nBest match: zipp 3.21.0\nAdding zipp 3.21.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for tenacity==9.0.0\nBest match: tenacity 9.0.0\nAdding tenacity 9.0.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for stack-data==0.6.3\nBest match: stack-data 0.6.3\nAdding stack-data 0.6.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for cffi==1.17.1\nBest match: cffi 1.17.1\nAdding cffi 1.17.1 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pure-eval==0.2.3\nBest match: pure-eval 0.2.3\nAdding pure-eval 0.2.3 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for asttokens==3.0.0\nBest match: asttokens 3.0.0\nAdding asttokens 3.0.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for executing==2.1.0\nBest match: executing 2.1.0\nAdding executing 2.1.0 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nSearching for pycparser==2.22\nBest match: pycparser 2.22\nAdding pycparser 2.22 to easy-install.pth file\n\nUsing /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages\nFinished processing dependencies for Orange3==3.38.0.dev0+f9f4e59\nVerifying Orange installation...\n✅ Orange installation successful!\nSuccessfully installed orange using Python 3.10\n",
    "setup_res_stderr": "Using CPython 3.7.9\nCreating virtual environment at: .venv\nActivate with: source .venv/bin/activate\nResolved 18 packages in 74ms\nPrepared 18 packages in 2ms\nInstalled 18 packages in 48ms\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\n  × No solution found when resolving dependencies:\n  ╰─▶ Because the current Python version (3.7.9) does not satisfy Python>=3.8 and all of:\n          pandas>=1.4.0,<=1.4.4\n          pandas>=1.5.1,<=1.5.3\n          pandas>=2.0.1,<=2.0.3\n      depend on Python>=3.8, we can conclude that all of:\n          pandas>=1.4.0,<=1.4.4\n          pandas>=1.5.1,<=1.5.3\n          pandas>=2.0.1,<=2.0.3\n       cannot be used.\n      And because only the following versions of pandas are available:\n          pandas<=1.4.0\n          pandas==1.4.1\n          pandas==1.4.2\n          pandas==1.4.3\n          pandas==1.4.4\n          pandas==1.5.0\n          pandas==1.5.1\n          pandas==1.5.2\n          pandas==1.5.3\n          pandas==2.0.0\n          pandas==2.0.1\n          pandas==2.0.2\n          pandas==2.0.3\n          pandas==2.1.0\n          pandas==2.1.1\n          pandas==2.1.2\n          pandas==2.1.3\n          pandas==2.1.4\n          pandas==2.2.0\n          pandas==2.2.1\n          pandas==2.2.2\n          pandas==2.2.3\n      we can conclude that all of:\n          pandas>=1.4.0,<1.5.0\n          pandas>1.5.0,<2.0.0\n          pandas>2.0.0,<2.1.0\n       cannot be used. (1)\n\n      Because the current Python version (3.7.9) does not satisfy Python>=3.9 and pandas>=2.1.0 depends on Python>=3.9, we can\n      conclude that pandas>=2.1.0 cannot be used.\n      And because we know from (1) that all of:\n          pandas>=1.4.0,<1.5.0\n          pandas>1.5.0,<2.0.0\n          pandas>2.0.0,<2.1.0\n       cannot be used, we can conclude that all of:\n          pandas>=1.4.0,<1.5.0\n          pandas>1.5.0,<2.0.0\n          pandas>2.0.0\n       cannot be used.\n      And because you require one of:\n          pandas>=1.4.0,<1.5.0\n          pandas>1.5.0,<2.0.0\n          pandas>2.0.0\n      we can conclude that your requirements are unsatisfiable.\n\n      hint: Pre-releases are available for `pandas` in the requested range (e.g., 2.2.0rc0), but pre-releases weren't enabled\n      (try: `--prerelease=allow`)\n  × No solution found when resolving dependencies:\n  ╰─▶ Because the current Python version (3.7.9) does not satisfy Python>=3.8 and pyqtgraph>=0.13.1,<=0.13.3 depends on\n      Python>=3.8, we can conclude that pyqtgraph>=0.13.1,<=0.13.3 cannot be used.\n      And because only the following versions of pyqtgraph are available:\n          pyqtgraph<=0.13.1\n          pyqtgraph==0.13.2\n          pyqtgraph==0.13.3\n          pyqtgraph==0.13.4\n          pyqtgraph==0.13.5\n          pyqtgraph==0.13.6\n          pyqtgraph==0.13.7\n      we can conclude that pyqtgraph>=0.13.1,<0.13.4 cannot be used. (1)\n\n      Because the current Python version (3.7.9) does not satisfy Python>=3.9 and pyqtgraph>=0.13.4 depends on Python>=3.9, we\n      can conclude that pyqtgraph>=0.13.4 cannot be used.\n      And because we know from (1) that pyqtgraph>=0.13.1,<0.13.4 cannot be used, we can conclude that pyqtgraph>=0.13.1 cannot\n      be used.\n      And because you require pyqtgraph>=0.13.1, we can conclude that your requirements are unsatisfiable.\nResolved 2 packages in 3ms\nInstalled 2 packages in 49ms\n + psycopg2==2.9.9\n + pymssql==2.3.2\nResolved 5 packages in 23ms\nInstalled 4 packages in 445ms\n + joblib==1.3.2\n + scikit-learn==1.0.2\n + scipy==1.7.3\n + threadpoolctl==3.1.0\nIn file included from /home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m/Python.h:8,\n                 from Orange/classification/_simple_tree.c:781:\n/home/gcpuser/.local/share/uv/python/cpython-3.7.9-linux-x86_64-gnu/include/python3.7m/pyconfig.h:1504: warning: \"_GNU_SOURCE\" redefined\n 1504 | #define _GNU_SOURCE 1\n      | \nOrange/classification/_simple_tree.c:2: note: this is the location of the previous definition\n    2 | #define _GNU_SOURCE\n      | \nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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:3426:27: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 3426 |   __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:4872:27: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 4872 |   __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:5618:43: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5618 |           for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {\n      |                                           ^\nOrange/classification/_tree_scorers.c:5739:39: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5739 |           __pyx_t_20 = ((__pyx_v_left >= __pyx_v_min_leaf) != 0);\n      |                                       ^~\nOrange/classification/_tree_scorers.c:5745:53: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5745 |           __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:7206:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 7206 |         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:7863:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 7863 |         for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {\n      |                                         ^\nOrange/classification/_tree_scorers.c:7923:150: warning: comparison of integer expressions of different signedness: ‘__pyx_t_5numpy_int32_t’ {aka ‘int’} and ‘unsigned int’ [-Wsign-compare]\n 7923 |               __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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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:3944:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3944 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:3943:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3943 |   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:5094:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5094 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:5093:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5093 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_1get_winners’:\nOrange/projection/_som.c:3244:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3244 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:2892:7: note: ‘__pyx_v_win_y’ was declared here\n 2892 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:3233:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3233 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:2891:7: note: ‘__pyx_v_win_x’ was declared here\n 2891 |   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:5842:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5842 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:5841:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5841 |   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:4871:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4871 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_28, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:4389:7: note: ‘__pyx_v_win_y’ was declared here\n 4389 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:4860:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4860 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:4388:7: note: ‘__pyx_v_win_x’ was declared here\n 4388 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_3update’:\nOrange/projection/_som.c:3438:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3438 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/pkg_resources/__init__.py:119: PkgResourcesDeprecationWarning:  is an invalid version and will not be supported in a future release\n  PkgResourcesDeprecationWarning,\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.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,\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.7/site-packages/pkg_resources/__init__.py:119: PkgResourcesDeprecationWarning:  is an invalid version and will not be supported in a future release\n  PkgResourcesDeprecationWarning,\nerror: Couldn't find a setup script in /tmp/easy_install-xd3akycy/scipy-1.15.0.tar.gz\nUsing CPython 3.8.20\nCreating virtual environment at: .venv\nActivate with: source .venv/bin/activate\nResolved 15 packages in 94ms\nPrepared 15 packages in 5ms\nInstalled 15 packages in 122ms\n + cython==0.29.37\n + exceptiongroup==1.2.2\n + iniconfig==2.0.0\n + numpy==1.24.4\n + packaging==24.2\n + pluggy==1.5.0\n + pyqt5==5.15.11\n + pyqt5-qt5==5.15.16\n + pyqt5-sip==12.15.0\n + pyqtwebengine==5.15.7\n + pyqtwebengine-qt5==5.15.16\n + pytest==8.3.4\n + setuptools==75.3.0\n + tomli==2.2.1\n + wheel==0.45.1\n  × No solution found when resolving dependencies:\n  ╰─▶ Because the current Python version (3.8.20) does not satisfy Python>=3.9 and scikit-learn>=1.4.0 depends on Python>=3.9,\n      we can conclude that scikit-learn>=1.4.0 cannot be used.\n      And because only the following versions of scikit-learn are available:\n          scikit-learn<=1.4.0\n          scikit-learn==1.4.1.post1\n          scikit-learn==1.4.2\n          scikit-learn==1.5.0\n          scikit-learn==1.5.1\n          scikit-learn==1.5.2\n          scikit-learn==1.6.0\n      and you require scikit-learn>=1.4.0, we can conclude that your requirements are unsatisfiable.\n\n      hint: Pre-releases are available for `scikit-learn` in the requested range (e.g., 1.6.0rc1), but pre-releases weren't\n      enabled (try: `--prerelease=allow`)\nResolved 63 packages in 84ms\nInstalled 60 packages in 122ms\n + anyqt==0.2.0\n + asttokens==3.0.0\n + attrs==24.3.0\n + backcall==0.2.0\n + cattrs==24.1.2\n + certifi==2024.12.14\n + charset-normalizer==3.4.1\n + comm==0.2.2\n + commonmark==0.9.1\n + contourpy==1.1.1\n + cycler==0.12.1\n + debugpy==1.8.11\n + decorator==5.1.1\n + dictdiffer==0.9.0\n + docutils==0.20.1\n + executing==2.1.0\n + fonttools==4.55.3\n + idna==3.10\n + importlib-metadata==8.5.0\n + importlib-resources==6.4.5\n + ipykernel==6.29.5\n + ipython==8.12.3\n + jedi==0.19.2\n + jupyter-client==8.6.3\n + jupyter-core==5.7.2\n + kiwisolver==1.4.7\n + matplotlib==3.7.5\n + matplotlib-inline==0.1.7\n + nest-asyncio==1.6.0\n + orange-canvas-core==0.2.2\n + orange-widget-base==4.24.0\n + parso==0.8.4\n + pexpect==4.9.0\n + pickleshare==0.7.5\n + pillow==10.4.0\n + pip==24.3.1\n + platformdirs==4.3.6\n + prompt-toolkit==3.0.48\n + psutil==6.1.1\n + ptyprocess==0.7.0\n + pure-eval==0.2.3\n + pygments==2.19.1\n + pyparsing==3.1.4\n + pyqtgraph==0.13.3\n + python-dateutil==2.9.0.post0\n + pyzmq==26.2.0\n + qasync==0.27.1\n + qtconsole==5.6.1\n + qtpy==2.4.2\n + requests==2.32.3\n + requests-cache==1.2.1\n + six==1.17.0\n + stack-data==0.6.3\n + tornado==6.4.2\n + traitlets==5.14.3\n + typing-extensions==4.12.2\n + url-normalize==1.4.3\n + urllib3==2.2.3\n + wcwidth==0.2.13\n + zipp==3.20.2\nResolved 2 packages in 2ms\nInstalled 2 packages in 5ms\n + psycopg2==2.9.10\n + pymssql==2.3.2\nIn file included from /home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8/Python.h:8,\n                 from Orange/classification/_simple_tree.c:781:\n/home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/include/python3.8/pyconfig.h:1578: warning: \"_GNU_SOURCE\" redefined\n 1578 | #define _GNU_SOURCE 1\n      | \nOrange/classification/_simple_tree.c:2: note: this is the location of the previous definition\n    2 | #define _GNU_SOURCE\n      | \nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1940,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/classification/_tree_scorers.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/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:3426:27: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 3426 |   __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:4872:27: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 4872 |   __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:5618:43: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5618 |           for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {\n      |                                           ^\nOrange/classification/_tree_scorers.c:5739:39: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5739 |           __pyx_t_20 = ((__pyx_v_left >= __pyx_v_min_leaf) != 0);\n      |                                       ^~\nOrange/classification/_tree_scorers.c:5745:53: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 5745 |           __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:7206:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 7206 |         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:7863:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n 7863 |         for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {\n      |                                         ^\nOrange/classification/_tree_scorers.c:7923:150: warning: comparison of integer expressions of different signedness: ‘__pyx_t_5numpy_int32_t’ {aka ‘int’} and ‘unsigned int’ [-Wsign-compare]\n 7923 |               __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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1940,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/data/_contingency.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1940,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/data/_valuecount.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1940,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/distance/_distance.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1940,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/preprocess/_discretize.c:774:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1940,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/preprocess/_relieff.cpp:790:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1940,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/projection/_som.c:775:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/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:3944:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3944 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:3943:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3943 |   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:5094:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5094 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:5093:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5093 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_3update’:\nOrange/projection/_som.c:3438:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3438 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_1get_winners’:\nOrange/projection/_som.c:3244:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3244 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:2892:7: note: ‘__pyx_v_win_y’ was declared here\n 2892 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:3233:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 3233 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:2891:7: note: ‘__pyx_v_win_x’ was declared here\n 2891 |   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:5842:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5842 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:5841:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5841 |   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:4871:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4871 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_28, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:4389:7: note: ‘__pyx_v_win_y’ was declared here\n 4389 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:4860:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4860 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:4388:7: note: ‘__pyx_v_win_x’ was declared here\n 4388 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite'\n  warnings.warn(msg)\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite'\n  warnings.warn(msg)\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/setuptools/command/develop.py:41: EasyInstallDeprecationWarning: easy_install command is deprecated.\n!!\n\n        ********************************************************************************\n        Please avoid running ``setup.py`` and ``easy_install``.\n        Instead, use pypa/build, pypa/installer or other\n        standards-based tools.\n\n        See https://github.com/pypa/setuptools/issues/917 for details.\n        ********************************************************************************\n\n!!\n  easy_install.initialize_options(self)\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.\n!!\n\n        ********************************************************************************\n        Please avoid running ``setup.py`` directly.\n        Instead, use pypa/build, pypa/installer or other\n        standards-based tools.\n\n        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.\n        ********************************************************************************\n\n!!\n  self.initialize_options()\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/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite'\n  warnings.warn(msg)\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.8/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.\n!!\n\n        ********************************************************************************\n        Please avoid running ``setup.py`` directly.\n        Instead, use pypa/build, pypa/installer or other\n        standards-based tools.\n\n        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.\n        ********************************************************************************\n\n!!\n  self.initialize_options()\nerror: Couldn't find a setup script in /tmp/easy_install-daha6hya/scipy-1.15.0.tar.gz\nUsing CPython 3.10.16\nCreating virtual environment at: .venv\nActivate with: source .venv/bin/activate\nResolved 15 packages in 76ms\nPrepared 15 packages in 1ms\nInstalled 15 packages in 44ms\n + cython==3.0.11\n + exceptiongroup==1.2.2\n + iniconfig==2.0.0\n + numpy==2.2.1\n + packaging==24.2\n + pluggy==1.5.0\n + pyqt5==5.15.11\n + pyqt5-qt5==5.15.16\n + pyqt5-sip==12.16.1\n + pyqtwebengine==5.15.7\n + pyqtwebengine-qt5==5.15.16\n + pytest==8.3.4\n + setuptools==75.8.0\n + tomli==2.2.1\n + wheel==0.45.1\nResolved 62 packages in 26ms\nUninstalled 1 package in 11ms\nInstalled 60 packages in 532ms\n + anyio==4.8.0\n + backports-tarfile==1.2.0\n + baycomp==1.0.3\n + bottleneck==1.4.2\n + catboost==1.2.7\n + certifi==2024.12.14\n + cffi==1.17.1\n + chardet==5.2.0\n + charset-normalizer==3.4.1\n + contourpy==1.3.1\n + cryptography==44.0.0\n + cycler==0.12.1\n + et-xmlfile==2.0.0\n + fonttools==4.55.3\n + graphviz==0.20.3\n + h11==0.14.0\n + httpcore==1.0.7\n + httpx==0.28.1\n + idna==3.10\n + importlib-metadata==8.5.0\n + jaraco-classes==3.4.0\n + jaraco-context==6.0.1\n + jaraco-functools==4.1.0\n + jeepney==0.8.0\n + joblib==1.4.2\n + keyring==25.6.0\n + keyrings-alt==5.0.2\n + kiwisolver==1.4.8\n + matplotlib==3.10.0\n + more-itertools==10.5.0\n + networkx==3.4.2\n - numpy==2.2.1\n + numpy==1.26.4\n + openpyxl==3.1.5\n + opentsne==1.0.2\n + pandas==2.2.3\n + pillow==11.1.0\n + pip==24.3.1\n + plotly==5.24.1\n + pycparser==2.22\n + pyparsing==3.2.1\n + python-dateutil==2.9.0.post0\n + python-louvain==0.16\n + pytz==2024.2\n + pyyaml==6.0.2\n + requests==2.32.3\n + scikit-learn==1.6.0\n + scipy==1.15.0\n + secretstorage==3.3.3\n + serverfiles==0.3.1\n + six==1.17.0\n + sniffio==1.3.1\n + tenacity==9.0.0\n + threadpoolctl==3.5.0\n + typing-extensions==4.12.2\n + tzdata==2024.2\n + urllib3==2.3.0\n + xgboost==2.0.3\n + xlrd==2.0.1\n + xlsxwriter==3.2.0\n + zipp==3.21.0\nResolved 58 packages in 23ms\nInstalled 39 packages in 80ms\n + anyqt==0.2.0\n + asttokens==3.0.0\n + attrs==24.3.0\n + cattrs==24.1.2\n + comm==0.2.2\n + commonmark==0.9.1\n + debugpy==1.8.11\n + decorator==5.1.1\n + dictdiffer==0.9.0\n + docutils==0.21.2\n + executing==2.1.0\n + ipykernel==6.29.5\n + ipython==8.31.0\n + jedi==0.19.2\n + jupyter-client==8.6.3\n + jupyter-core==5.7.2\n + matplotlib-inline==0.1.7\n + nest-asyncio==1.6.0\n + orange-canvas-core==0.2.5\n + orange-widget-base==4.25.1\n + parso==0.8.4\n + pexpect==4.9.0\n + platformdirs==4.3.6\n + prompt-toolkit==3.0.48\n + psutil==6.1.1\n + ptyprocess==0.7.0\n + pure-eval==0.2.3\n + pygments==2.19.1\n + pyqtgraph==0.13.7\n + pyzmq==26.2.0\n + qasync==0.27.1\n + qtconsole==5.6.1\n + qtpy==2.4.2\n + requests-cache==1.2.1\n + stack-data==0.6.3\n + tornado==6.4.2\n + traitlets==5.14.3\n + url-normalize==1.4.3\n + wcwidth==0.2.13\nResolved 39 packages in 9ms\nInstalled 25 packages in 83ms\n + alabaster==1.0.0\n + astroid==3.3.8\n + babel==2.16.0\n + colorama==0.4.6\n + dill==0.3.9\n + imagesize==1.4.1\n + isort==5.13.2\n + jinja2==3.1.5\n + libcst==1.5.1\n + mando==0.7.1\n + markupsafe==3.0.2\n + mccabe==0.7.0\n + pylint==3.3.3\n + radon==6.0.1\n + recommonmark==0.7.1\n + snowballstemmer==2.2.0\n + sphinx==8.1.3\n + sphinxcontrib-applehelp==2.0.0\n + sphinxcontrib-devhelp==2.0.0\n + sphinxcontrib-htmlhelp==2.1.0\n + sphinxcontrib-jsmath==1.0.1\n + sphinxcontrib-qthelp==2.0.0\n + sphinxcontrib-serializinghtml==2.0.0\n + tomlkit==0.13.2\n + trubar==0.3.4\nResolved 2 packages in 2ms\nInstalled 2 packages in 5ms\n + psycopg2==2.9.10\n + pymssql==2.3.2\nperformance hint: Orange/preprocess/_relieff.pyx:63:5: Exception check on 'calc_difference' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'calc_difference' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'calc_difference' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:119:5: Exception check on 'k_nearest_reg' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'k_nearest_reg' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'k_nearest_reg' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:183:5: Exception check on 'k_nearest_per_class' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'k_nearest_per_class' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'k_nearest_per_class' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:161:23: Exception check after calling 'calc_difference' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'calc_difference' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'calc_difference' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:177:23: Exception check after calling 'calc_difference' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'calc_difference' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'calc_difference' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:201:23: Exception check after calling 'calc_difference' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'calc_difference' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'calc_difference' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:217:27: Exception check after calling 'calc_difference' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'calc_difference' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'calc_difference' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:250:25: Exception check after calling 'k_nearest_reg' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'k_nearest_reg' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'k_nearest_reg' to allow an error code to be returned.\nperformance hint: Orange/preprocess/_relieff.pyx:287:31: Exception check after calling 'k_nearest_per_class' will always require the GIL to be acquired.\nPossible solutions:\n\t1. Declare 'k_nearest_per_class' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.\n\t2. Use an 'int' return type on 'k_nearest_per_class' to allow an error code to be returned.\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py:270: UserWarning: Unknown distribution option: 'test_suite'\n  warnings.warn(msg)\nIn file included from /home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10/Python.h:8,\n                 from Orange/classification/_simple_tree.c:781:\n/home/gcpuser/.local/share/uv/python/cpython-3.10.16-linux-x86_64-gnu/include/python3.10/pyconfig.h:1621: warning: \"_GNU_SOURCE\" redefined\n 1621 | #define _GNU_SOURCE 1\n      | \nOrange/classification/_simple_tree.c:2: note: this is the location of the previous definition\n    2 | #define _GNU_SOURCE\n      | \nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/classification/_tree_scorers.c:1253:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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:20278:26: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n20278 |   __pyx_t_7 = (__pyx_v_N <= __pyx_v_min_leaf);\n      |                          ^~\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_6find_threshold_MSE’:\nOrange/classification/_tree_scorers.c:21847:26: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n21847 |   __pyx_t_1 = (__pyx_v_N <= __pyx_v_min_leaf);\n      |                          ^~\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_8find_binarization_MSE’:\nOrange/classification/_tree_scorers.c:22657:43: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n22657 |           for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {\n      |                                           ^\nOrange/classification/_tree_scorers.c:22778:38: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n22778 |           __pyx_t_20 = (__pyx_v_left >= __pyx_v_min_leaf);\n      |                                      ^~\nOrange/classification/_tree_scorers.c:22784:52: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n22784 |           __pyx_t_20 = ((__pyx_v_N - __pyx_v_left) >= __pyx_v_min_leaf);\n      |                                                    ^~\nOrange/classification/_tree_scorers.c: In function ‘__pyx_pf_6Orange_14classification_13_tree_scorers_14compute_predictions_csr’:\nOrange/classification/_tree_scorers.c:24434:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n24434 |         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:25156:41: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]\n25156 |         for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {\n      |                                         ^\nOrange/classification/_tree_scorers.c:25216:149: warning: comparison of integer expressions of different signedness: ‘__pyx_t_5numpy_int32_t’ {aka ‘int’} and ‘unsigned int’ [-Wsign-compare]\n25216 |               __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);\n      |                                                                                                                                                     ^~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/data/_contingency.c:1253:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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:5091:43: warning: ‘__pyx_v_decs’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5091 |           __pyx_v_value = ((__pyx_v_value * __pyx_v_decs) + (__pyx_v_c & 0xf));\n      |                            ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/data/_io.c:5261:23: warning: ‘__pyx_v_value’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 5261 |           __pyx_t_5 = PyFloat_FromDouble(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 223, __pyx_L5_error)\n      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nOrange/data/_io.c:1148:40: warning: ‘__pyx_v_attr_index’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 1148 |   #define PyInt_FromLong               PyLong_FromLong\n      |                                        ^~~~~~~~~~~~~~~\nOrange/data/_io.c:2863:7: note: ‘__pyx_v_attr_index’ was declared here\n 2863 |   int __pyx_v_attr_index;\n      |       ^~~~~~~~~~~~~~~~~~\nOrange/data/_io.c:4691:30: warning: ‘__pyx_v_atomp’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n 4691 |           (__pyx_v_atomp[0]) = 0;\n      |           ~~~~~~~~~~~~~~~~~~~^~~\nIn file included from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/data/_valuecount.c:1253:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/distance/_distance.c:1253:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/preprocess/_discretize.c:1252:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/preprocess/_relieff.cpp:1266:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,\n                 from /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,\n                 from Orange/projection/_som.c:1253:\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/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:20732:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n20732 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:20731:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n20731 |   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:22819:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n22819 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:22818:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n22818 |   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:21996:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n21996 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:21995:7: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n21995 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_1get_winners’:\nOrange/projection/_som.c:19911:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n19911 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:19558:7: note: ‘__pyx_v_win_y’ was declared here\n19558 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:19900:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n19900 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:19557:7: note: ‘__pyx_v_win_x’ was declared here\n19557 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_3update’:\nOrange/projection/_som.c:20161:7: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n20161 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c: In function ‘__pyx_pw_6Orange_10projection_4_som_7get_winners_sparse’:\nOrange/projection/_som.c:21717:223: warning: ‘__pyx_v_win_y’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n21717 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_28, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_y;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:21234:7: note: ‘__pyx_v_win_y’ was declared here\n21234 |   int __pyx_v_win_y;\n      |       ^~~~~~~~~~~~~\nOrange/projection/_som.c:21706:223: warning: ‘__pyx_v_win_x’ may be used uninitialized in this function [-Wmaybe-uninitialized]\n21706 |           *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_winners.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_winners.diminfo[0].strides, __pyx_t_27, __pyx_pybuffernd_winners.diminfo[1].strides) = __pyx_v_win_x;\n      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~\nOrange/projection/_som.c:21233:7: note: ‘__pyx_v_win_x’ was declared here\n21233 |   int __pyx_v_win_x;\n      |       ^~~~~~~~~~~~~\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py:270: UserWarning: Unknown distribution option: 'test_suite'\n  warnings.warn(msg)\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/setuptools/command/develop.py:41: EasyInstallDeprecationWarning: easy_install command is deprecated.\n!!\n\n        ********************************************************************************\n        Please avoid running ``setup.py`` and ``easy_install``.\n        Instead, use pypa/build, pypa/installer or other\n        standards-based tools.\n\n        See https://github.com/pypa/setuptools/issues/917 for details.\n        ********************************************************************************\n\n!!\n  easy_install.initialize_options(self)\n/home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831/.venv/lib/python3.10/site-packages/setuptools/_distutils/cmd.py:79: SetuptoolsDeprecationWarning: setup.py install is deprecated.\n!!\n\n        ********************************************************************************\n        Please avoid running ``setup.py`` directly.\n        Instead, use pypa/build, pypa/installer or other\n        standards-based tools.\n\n        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.\n        ********************************************************************************\n\n!!\n  self.initialize_options()\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'\nResolved 102 packages in 2.23s\nPrepared 1 package in 46.50s\nUninstalled 1 package in 0.24ms\nInstalled 1 package in 1ms\n - orange3==3.38.0.dev0+f9f4e59\n + orange3==3.38.0.dev0+f9f4e59 (from file:///home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831)\n",
    "new_commit_res_code": 0,
    "new_commit_res_stdout": "============================= test session starts ==============================\nplatform linux -- Python 3.10.16, pytest-8.3.4, pluggy-1.5.0\nrootdir: /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831\nconfigfile: pyproject.toml\nplugins: anyio-4.8.0, typeguard-4.3.0\ncollected 30 items\n\nr2e_tests/test_1.py sss...........................                       [100%]\n\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::LogisticRegressionTest::test_coef_table_multiple\nPASSED r2e_tests/test_1.py::LogisticRegressionTest::test_coef_table_single\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_class_weights\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_coefficients_one_value\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_domain_with_more_values_than_table\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_has_unconditional_apply\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_image_export\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_data\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_data_disconnect\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_data_learner_adequacy\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_preprocessor\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_preprocessor_disconnect\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_preprocessors\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_minimum_size\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_msg_base_class\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_no_penalty\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_coefficients\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_learner\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_learner_name\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_model\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_model_name\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_model_picklable\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_parameters\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_parameters_default\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_params_trigger_settings_changed\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_send_report\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_target_with_nan\nSKIPPED [1] .venv/lib/python3.10/site-packages/orangewidget/tests/base.py:248: image exporting not tested as .widget was not set\nSKIPPED [1] .venv/lib/python3.10/site-packages/orangewidget/tests/base.py:242: minimum size not tested as .widget was not set\nSKIPPED [1] .venv/lib/python3.10/site-packages/orangewidget/tests/base.py:254: msg base class not tested as .widget was not set\n======================== 27 passed, 3 skipped in 6.41s =========================\nWidgets left: 0    Max widgets: 1716 \n\n",
    "new_commit_res_stderr": "",
    "old_commit_res_code": 1,
    "old_commit_res_stdout": "============================= test session starts ==============================\nplatform linux -- Python 3.10.16, pytest-8.3.4, pluggy-1.5.0\nrootdir: /home/gcpuser/buckets/local_repoeval_bucket/repos/orange3_f9f4e59d016fb4e52f6480dcb0bc69a49ed0d831\nconfigfile: pyproject.toml\nplugins: anyio-4.8.0, typeguard-4.3.0\ncollected 30 items\n\nr2e_tests/test_1.py sss...............F...........                       [100%]\n\n=================================== FAILURES ===================================\n___________________ TestOWLogisticRegression.test_no_penalty ___________________\n\nself = <r2e_tests.test_1.TestOWLogisticRegression testMethod=test_no_penalty>\n\n    def test_no_penalty(self):\n>       self.widget.set_penalty(None)\n\nr2e_tests/test_1.py:128: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Orange.widgets.model.owlogisticregression.OWLogisticRegression object at 0x74c10d77f400>\npenalty = None\n\n    def set_penalty(self, penalty):\n>       self.penalty_type = self.penalty_types_short.index(penalty)\nE       ValueError: None is not in list\n\nOrange/widgets/model/owlogisticregression.py:98: ValueError\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::LogisticRegressionTest::test_coef_table_multiple\nPASSED r2e_tests/test_1.py::LogisticRegressionTest::test_coef_table_single\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_class_weights\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_coefficients_one_value\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_domain_with_more_values_than_table\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_has_unconditional_apply\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_image_export\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_data\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_data_disconnect\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_data_learner_adequacy\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_preprocessor\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_preprocessor_disconnect\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_input_preprocessors\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_minimum_size\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_msg_base_class\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_coefficients\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_learner\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_learner_name\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_model\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_model_name\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_output_model_picklable\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_parameters\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_parameters_default\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_params_trigger_settings_changed\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_send_report\nPASSED r2e_tests/test_1.py::TestOWLogisticRegression::test_target_with_nan\nSKIPPED [1] .venv/lib/python3.10/site-packages/orangewidget/tests/base.py:248: image exporting not tested as .widget was not set\nSKIPPED [1] .venv/lib/python3.10/site-packages/orangewidget/tests/base.py:242: minimum size not tested as .widget was not set\nSKIPPED [1] .venv/lib/python3.10/site-packages/orangewidget/tests/base.py:254: msg base class not tested as .widget was not set\nFAILED r2e_tests/test_1.py::TestOWLogisticRegression::test_no_penalty - Value...\n=================== 1 failed, 26 passed, 3 skipped in 4.53s ====================\nWidgets left: 0    Max widgets: 1716 \n\n",
    "old_commit_res_stderr": ""
}
Orange/widgets/model/owlogisticregression.py Orange/widgets/model/tests/test_owlogisticregression.py
We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[ISSUE]
**Title:** Setting `penalty` to `None` in Logistic Regression Raises `ValueError`

**Description:**
When configuring the Logistic Regression model to use no penalty by setting the `penalty` parameter to `None`, the application raises a `ValueError`. This occurs because `None` is not recognized as a valid option in the current list of penalty types.

**Example Code:**
```python
widget.set_penalty(None)
widget.click_apply()
lr = widget.get_output()
```

**Expected Behavior:**
Setting the `penalty` to `None` should disable regularization, allowing the Logistic Regression model to train without applying any penalty.

**Actual Behavior:**
A `ValueError` is raised with the message: `None is not in list`, indicating that `None` is not an accepted value for the `penalty` parameter.
[/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/widgets/model/owlogisticregression.py
from itertools import chain
import numpy as np
from AnyQt.QtCore import Qt

from orangewidget.report import bool_str

from Orange.data import Table, Domain, ContinuousVariable, StringVariable
from Orange.classification.logistic_regression import LogisticRegressionLearner
from Orange.widgets import settings, gui
from Orange.widgets.utils.owlearnerwidget import OWBaseLearner
from Orange.widgets.utils.signals import Output
from Orange.widgets.utils.widgetpreview import WidgetPreview
from Orange.widgets.widget import Msg


class OWLogisticRegression(OWBaseLearner):
    name = "Logistic Regression"
    description = "The logistic regression classification algorithm with " \
                  "LASSO (L1) or ridge (L2) regularization."
    icon = "icons/LogisticRegression.svg"
    replaces = [
        "Orange.widgets.classify.owlogisticregression.OWLogisticRegression",
    ]
    priority = 60
    keywords = "logistic regression"

    LEARNER = LogisticRegressionLearner

    class Outputs(OWBaseLearner.Outputs):
        coefficients = Output("Coefficients", Table, explicit=True)

    settings_version = 2
    penalty_type = settings.Setting(1)
    C_index = settings.Setting(61)
    class_weight = settings.Setting(False)

    C_s = list(chain(range(1000, 200, -50),
                     range(200, 100, -10),
                     range(100, 20, -5),
                     range(20, 0, -1),
                     [x / 10 for x in range(9, 2, -1)],
                     [x / 100 for x in range(20, 2, -1)],
                     [x / 1000 for x in range(20, 0, -1)]))
    strength_C = C_s[61]
    dual = False
    tol = 0.0001
    fit_intercept = True
    intercept_scaling = 1.0
    max_iter = 10000

    penalty_types = ("Lasso (L1)", "Ridge (L2)", "None")
    penalty_types_short = ["l1", "l2", "none"]

    class Warning(OWBaseLearner.Warning):
        class_weights_used = Msg("Weighting by class may decrease performance.")

    def add_main_layout(self):
        # this is part of init, pylint: disable=attribute-defined-outside-init
        box = gui.widgetBox(self.controlArea, box=True)
        self.penalty_combo = gui.comboBox(
            box, self, "penalty_type", label="Regularization type: ",
            items=self.penalty_types, orientation=Qt.Horizontal,
            callback=self._penalty_type_changed)
        self.c_box = box = gui.widgetBox(box)
        gui.widgetLabel(box, "Strength:")
        box2 = gui.hBox(gui.indentedBox(box))
        gui.widgetLabel(box2, "Weak").setStyleSheet("margin-top:6px")
        self.c_slider = gui.hSlider(
            box2, self, "C_index", minValue=0, maxValue=len(self.C_s) - 1,
            callback=self.set_c, callback_finished=self.settings_changed,
            createLabel=False)
        gui.widgetLabel(box2, "Strong").setStyleSheet("margin-top:6px")
        box2 = gui.hBox(box)
        box2.layout().setAlignment(Qt.AlignCenter)
        self.c_label = gui.widgetLabel(box2)
        self.set_c()

        box = gui.widgetBox(self.controlArea, box=True)
        self.weights = gui.checkBox(
            box, self,
            "class_weight", label="Balance class distribution",
            callback=self.settings_changed,
            tooltip="Weigh classes inversely proportional to their frequencies."
        )

    def set_c(self):
        self.strength_C = self.C_s[self.C_index]
        penalty = self.penalty_types_short[self.penalty_type]
        enable_c = penalty != "none"
        self.c_box.setEnabled(enable_c)
        if enable_c:
            fmt = "C={}" if self.strength_C >= 1 else "C={:.3f}"
            self.c_label.setText(fmt.format(self.strength_C))
        else:
            self.c_label.setText("N/A")

    def set_penalty(self, penalty):
        self.penalty_type = self.penalty_types_short.index(penalty)
        self._penalty_type_changed()

    def _penalty_type_changed(self):
        self.set_c()
        self.settings_changed()

    def create_learner(self):
        self.Warning.class_weights_used.clear()
        penalty = self.penalty_types_short[self.penalty_type]
        if self.class_weight:
            class_weight = "balanced"
            self.Warning.class_weights_used()
        else:
            class_weight = None
        if penalty == "none":
            C = 1.0
        else:
            C = self.strength_C
        return self.LEARNER(
            penalty=penalty,
            dual=self.dual,
            tol=self.tol,
            C=C,
            class_weight=class_weight,
            fit_intercept=self.fit_intercept,
            intercept_scaling=self.intercept_scaling,
            max_iter=self.max_iter,
            preprocessors=self.preprocessors,
            random_state=0
        )

    def update_model(self):
        super().update_model()
        coef_table = None
        if self.model is not None:
            coef_table = create_coef_table(self.model)
        self.Outputs.coefficients.send(coef_table)

    def get_learner_parameters(self):
        return (("Regularization", "{}, C={}, class weights: {}".format(
            self.penalty_types[self.penalty_type], self.C_s[self.C_index],
            bool_str(self.class_weight))),)


def create_coef_table(classifier):
    i = classifier.intercept
    c = classifier.coefficients
    if c.shape[0] > 2:
        values = [classifier.domain.class_var.values[int(i)] for i in classifier.used_vals[0]]
    else:
        values = [classifier.domain.class_var.values[int(classifier.used_vals[0][1])]]
    domain = Domain([ContinuousVariable(value) for value in values],
                    metas=[StringVariable("name")])
    coefs = np.vstack((i.reshape(1, len(i)), c.T))
    names = [[attr.name] for attr in classifier.domain.attributes]
    names = [["intercept"]] + names
    names = np.array(names, dtype=object)
    coef_table = Table.from_numpy(domain, X=coefs, metas=names)
    coef_table.name = "coefficients"
    return coef_table


if __name__ == "__main__":  # pragma: no cover
    WidgetPreview(OWLogisticRegression).run(Table("zoo"))

```
--- 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:** Setting `penalty` to `None` in Logistic Regression Raises `ValueError`

**Description:**
When configuring the Logistic Regression model to use no penalty by setting the `penalty` parameter to `None`, the application raises a `ValueError`. This occurs because `None` is not recognized as a valid option in the current list of penalty types.

**Example Code:**
```python
widget.set_penalty(None)
widget.click_apply()
lr = widget.get_output()
```

**Expected Behavior:**
Setting the `penalty` to `None` should disable regularization, allowing the Logistic Regression model to train without applying any penalty.

**Actual Behavior:**
A `ValueError` is raised with the message: `None is not in list`, indicating that `None` is not an accepted value for the `penalty` parameter.
[/ISSUE]
{
    "LogisticRegressionTest.test_coef_table_multiple": "PASSED",
    "LogisticRegressionTest.test_coef_table_single": "PASSED",
    "TestOWLogisticRegression.test_class_weights": "PASSED",
    "TestOWLogisticRegression.test_coefficients_one_value": "PASSED",
    "TestOWLogisticRegression.test_domain_with_more_values_than_table": "PASSED",
    "TestOWLogisticRegression.test_has_unconditional_apply": "PASSED",
    "TestOWLogisticRegression.test_image_export": "PASSED",
    "TestOWLogisticRegression.test_input_data": "PASSED",
    "TestOWLogisticRegression.test_input_data_disconnect": "PASSED",
    "TestOWLogisticRegression.test_input_data_learner_adequacy": "PASSED",
    "TestOWLogisticRegression.test_input_preprocessor": "PASSED",
    "TestOWLogisticRegression.test_input_preprocessor_disconnect": "PASSED",
    "TestOWLogisticRegression.test_input_preprocessors": "PASSED",
    "TestOWLogisticRegression.test_minimum_size": "PASSED",
    "TestOWLogisticRegression.test_msg_base_class": "PASSED",
    "TestOWLogisticRegression.test_no_penalty": "PASSED",
    "TestOWLogisticRegression.test_output_coefficients": "PASSED",
    "TestOWLogisticRegression.test_output_learner": "PASSED",
    "TestOWLogisticRegression.test_output_learner_name": "PASSED",
    "TestOWLogisticRegression.test_output_model": "PASSED",
    "TestOWLogisticRegression.test_output_model_name": "PASSED",
    "TestOWLogisticRegression.test_output_model_picklable": "PASSED",
    "TestOWLogisticRegression.test_parameters": "PASSED",
    "TestOWLogisticRegression.test_parameters_default": "PASSED",
    "TestOWLogisticRegression.test_params_trigger_settings_changed": "PASSED",
    "TestOWLogisticRegression.test_send_report": "PASSED",
    "TestOWLogisticRegression.test_target_with_nan": "PASSED"
}
diff --git a/Orange/widgets/model/owlogisticregression.py b/Orange/widgets/model/owlogisticregression.py
index 63c401b77..95db40a62 100644
--- a/Orange/widgets/model/owlogisticregression.py
+++ b/Orange/widgets/model/owlogisticregression.py
@@ -49,7 +49,7 @@ class OWLogisticRegression(OWBaseLearner):
     max_iter = 10000
 
     penalty_types = ("Lasso (L1)", "Ridge (L2)", "None")
-    penalty_types_short = ["l1", "l2", "none"]
+    penalty_types_short = ["l1", "l2", None]
 
     class Warning(OWBaseLearner.Warning):
         class_weights_used = Msg("Weighting by class may decrease performance.")
@@ -86,7 +86,7 @@ class OWLogisticRegression(OWBaseLearner):
     def set_c(self):
         self.strength_C = self.C_s[self.C_index]
         penalty = self.penalty_types_short[self.penalty_type]
-        enable_c = penalty != "none"
+        enable_c = penalty is not None
         self.c_box.setEnabled(enable_c)
         if enable_c:
             fmt = "C={}" if self.strength_C >= 1 else "C={:.3f}"
@@ -110,7 +110,7 @@ class OWLogisticRegression(OWBaseLearner):
             self.Warning.class_weights_used()
         else:
             class_weight = None
-        if penalty == "none":
+        if penalty is None:
             C = 1.0
         else:
             C = self.strength_C

{"Orange/widgets/model/owlogisticregression.py": "from itertools import chain\nimport numpy as np\nfrom AnyQt.QtCore import Qt\n\nfrom orangewidget.report import bool_str\n\nfrom Orange.data import Table, Domain, ContinuousVariable, StringVariable\nfrom Orange.classification.logistic_regression import LogisticRegressionLearner\nfrom Orange.widgets import settings, gui\nfrom Orange.widgets.utils.owlearnerwidget import OWBaseLearner\nfrom Orange.widgets.utils.signals import Output\nfrom Orange.widgets.utils.widgetpreview import WidgetPreview\nfrom Orange.widgets.widget import Msg\n\n\nclass OWLogisticRegression(OWBaseLearner):\n    name = \"Logistic Regression\"\n    description = \"The logistic regression classification algorithm with \" \\\n                  \"LASSO (L1) or ridge (L2) regularization.\"\n    icon = \"icons/LogisticRegression.svg\"\n    replaces = [\n        \"Orange.widgets.classify.owlogisticregression.OWLogisticRegression\",\n    ]\n    priority = 60\n    keywords = \"logistic regression\"\n\n    LEARNER = LogisticRegressionLearner\n\n    class Outputs(OWBaseLearner.Outputs):\n        coefficients = Output(\"Coefficients\", Table, explicit=True)\n\n    settings_version = 2\n    penalty_type = settings.Setting(1)\n    C_index = settings.Setting(61)\n    class_weight = settings.Setting(False)\n\n    C_s = list(chain(range(1000, 200, -50),\n                     range(200, 100, -10),\n                     range(100, 20, -5),\n                     range(20, 0, -1),\n                     [x / 10 for x in range(9, 2, -1)],\n                     [x / 100 for x in range(20, 2, -1)],\n                     [x / 1000 for x in range(20, 0, -1)]))\n    strength_C = C_s[61]\n    dual = False\n    tol = 0.0001\n    fit_intercept = True\n    intercept_scaling = 1.0\n    max_iter = 10000\n\n    penalty_types = (\"Lasso (L1)\", \"Ridge (L2)\", \"None\")\n    penalty_types_short = [\"l1\", \"l2\", \"none\"]\n\n    class Warning(OWBaseLearner.Warning):\n        class_weights_used = Msg(\"Weighting by class may decrease performance.\")\n\n    def add_main_layout(self):\n        # this is part of init, pylint: disable=attribute-defined-outside-init\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.penalty_combo = gui.comboBox(\n            box, self, \"penalty_type\", label=\"Regularization type: \",\n            items=self.penalty_types, orientation=Qt.Horizontal,\n            callback=self._penalty_type_changed)\n        self.c_box = box = gui.widgetBox(box)\n        gui.widgetLabel(box, \"Strength:\")\n        box2 = gui.hBox(gui.indentedBox(box))\n        gui.widgetLabel(box2, \"Weak\").setStyleSheet(\"margin-top:6px\")\n        self.c_slider = gui.hSlider(\n            box2, self, \"C_index\", minValue=0, maxValue=len(self.C_s) - 1,\n            callback=self.set_c, callback_finished=self.settings_changed,\n            createLabel=False)\n        gui.widgetLabel(box2, \"Strong\").setStyleSheet(\"margin-top:6px\")\n        box2 = gui.hBox(box)\n        box2.layout().setAlignment(Qt.AlignCenter)\n        self.c_label = gui.widgetLabel(box2)\n        self.set_c()\n\n        box = gui.widgetBox(self.controlArea, box=True)\n        self.weights = gui.checkBox(\n            box, self,\n            \"class_weight\", label=\"Balance class distribution\",\n            callback=self.settings_changed,\n            tooltip=\"Weigh classes inversely proportional to their frequencies.\"\n        )\n\n    def set_c(self):\n        self.strength_C = self.C_s[self.C_index]\n        penalty = self.penalty_types_short[self.penalty_type]\n        enable_c = penalty != \"none\"\n        self.c_box.setEnabled(enable_c)\n        if enable_c:\n            fmt = \"C={}\" if self.strength_C >= 1 else \"C={:.3f}\"\n            self.c_label.setText(fmt.format(self.strength_C))\n        else:\n            self.c_label.setText(\"N/A\")\n\n    def set_penalty(self, penalty):\n        self.penalty_type = self.penalty_types_short.index(penalty)\n        self._penalty_type_changed()\n\n    def _penalty_type_changed(self):\n        self.set_c()\n        self.settings_changed()\n\n    def create_learner(self):\n        self.Warning.class_weights_used.clear()\n        penalty = self.penalty_types_short[self.penalty_type]\n        if self.class_weight:\n            class_weight = \"balanced\"\n            self.Warning.class_weights_used()\n        else:\n            class_weight = None\n        if penalty == \"none\":\n            C = 1.0\n        else:\n            C = self.strength_C\n        return self.LEARNER(\n            penalty=penalty,\n            dual=self.dual,\n            tol=self.tol,\n            C=C,\n            class_weight=class_weight,\n            fit_intercept=self.fit_intercept,\n            intercept_scaling=self.intercept_scaling,\n            max_iter=self.max_iter,\n            preprocessors=self.preprocessors,\n            random_state=0\n        )\n\n    def update_model(self):\n        super().update_model()\n        coef_table = None\n        if self.model is not None:\n            coef_table = create_coef_table(self.model)\n        self.Outputs.coefficients.send(coef_table)\n\n    def get_learner_parameters(self):\n        return ((\"Regularization\", \"{}, C={}, class weights: {}\".format(\n            self.penalty_types[self.penalty_type], self.C_s[self.C_index],\n            bool_str(self.class_weight))),)\n\n\ndef create_coef_table(classifier):\n    i = classifier.intercept\n    c = classifier.coefficients\n    if c.shape[0] > 2:\n        values = [classifier.domain.class_var.values[int(i)] for i in classifier.used_vals[0]]\n    else:\n        values = [classifier.domain.class_var.values[int(classifier.used_vals[0][1])]]\n    domain = Domain([ContinuousVariable(value) for value in values],\n                    metas=[StringVariable(\"name\")])\n    coefs = np.vstack((i.reshape(1, len(i)), c.T))\n    names = [[attr.name] for attr in classifier.domain.attributes]\n    names = [[\"intercept\"]] + names\n    names = np.array(names, dtype=object)\n    coef_table = Table.from_numpy(domain, X=coefs, metas=names)\n    coef_table.name = \"coefficients\"\n    return coef_table\n\n\nif __name__ == \"__main__\":  # pragma: no cover\n    WidgetPreview(OWLogisticRegression).run(Table(\"zoo\"))\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:** Setting `penalty` to `None` in Logistic Regression Raises `ValueError`

**Description:**
When configuring the Logistic Regression model to use no penalty by setting the `penalty` parameter to `None`, the application raises a `ValueError`. This occurs because `None` is not recognized as a valid option in the current list of penalty types.

**Example Code:**
```python
widget.set_penalty(None)
widget.click_apply()
lr = widget.get_output()
```

**Expected Behavior:**
Setting the `penalty` to `None` should disable regularization, allowing the Logistic Regression model to train without applying any penalty.

**Actual Behavior:**
A `ValueError` is raised with the message: `None is not in list`, indicating that `None` is not an accepted value for the `penalty` parameter.
[/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/widgets/model/owlogisticregression.py
from itertools import chain
import numpy as np
from AnyQt.QtCore import Qt

from orangewidget.report import bool_str

from Orange.data import Table, Domain, ContinuousVariable, StringVariable
from Orange.classification.logistic_regression import LogisticRegressionLearner
from Orange.widgets import settings, gui
from Orange.widgets.utils.owlearnerwidget import OWBaseLearner
from Orange.widgets.utils.signals import Output
from Orange.widgets.utils.widgetpreview import WidgetPreview
from Orange.widgets.widget import Msg


class OWLogisticRegression(OWBaseLearner):
    name = "Logistic Regression"
    description = "The logistic regression classification algorithm with " \
                  "LASSO (L1) or ridge (L2) regularization."
    icon = "icons/LogisticRegression.svg"
    replaces = [
        "Orange.widgets.classify.owlogisticregression.OWLogisticRegression",
    ]
    priority = 60
    keywords = "logistic regression"

    LEARNER = LogisticRegressionLearner

    class Outputs(OWBaseLearner.Outputs):
        coefficients = Output("Coefficients", Table, explicit=True)

    settings_version = 2
    penalty_type = settings.Setting(1)
    C_index = settings.Setting(61)
    class_weight = settings.Setting(False)

    C_s = list(chain(range(1000, 200, -50),
                     range(200, 100, -10),
                     range(100, 20, -5),
                     range(20, 0, -1),
                     [x / 10 for x in range(9, 2, -1)],
                     [x / 100 for x in range(20, 2, -1)],
                     [x / 1000 for x in range(20, 0, -1)]))
    strength_C = C_s[61]
    dual = False
    tol = 0.0001
    fit_intercept = True
    intercept_scaling = 1.0
    max_iter = 10000

    penalty_types = ("Lasso (L1)", "Ridge (L2)", "None")
    penalty_types_short = ["l1", "l2", "none"]

    class Warning(OWBaseLearner.Warning):
        class_weights_used = Msg("Weighting by class may decrease performance.")

    def add_main_layout(self):
        # this is part of init, pylint: disable=attribute-defined-outside-init
        box = gui.widgetBox(self.controlArea, box=True)
        self.penalty_combo = gui.comboBox(
            box, self, "penalty_type", label="Regularization type: ",
            items=self.penalty_types, orientation=Qt.Horizontal,
            callback=self._penalty_type_changed)
        self.c_box = box = gui.widgetBox(box)
        gui.widgetLabel(box, "Strength:")
        box2 = gui.hBox(gui.indentedBox(box))
        gui.widgetLabel(box2, "Weak").setStyleSheet("margin-top:6px")
        self.c_slider = gui.hSlider(
            box2, self, "C_index", minValue=0, maxValue=len(self.C_s) - 1,
            callback=self.set_c, callback_finished=self.settings_changed,
            createLabel=False)
        gui.widgetLabel(box2, "Strong").setStyleSheet("margin-top:6px")
        box2 = gui.hBox(box)
        box2.layout().setAlignment(Qt.AlignCenter)
        self.c_label = gui.widgetLabel(box2)
        self.set_c()

        box = gui.widgetBox(self.controlArea, box=True)
        self.weights = gui.checkBox(
            box, self,
            "class_weight", label="Balance class distribution",
            callback=self.settings_changed,
            tooltip="Weigh classes inversely proportional to their frequencies."
        )

    def set_c(self):
        self.strength_C = self.C_s[self.C_index]
        penalty = self.penalty_types_short[self.penalty_type]
        enable_c = penalty != "none"
        self.c_box.setEnabled(enable_c)
        if enable_c:
            fmt = "C={}" if self.strength_C >= 1 else "C={:.3f}"
            self.c_label.setText(fmt.format(self.strength_C))
        else:
            self.c_label.setText("N/A")

    def set_penalty(self, penalty):
        self.penalty_type = self.penalty_types_short.index(penalty)
        self._penalty_type_changed()

    def _penalty_type_changed(self):
        self.set_c()
        self.settings_changed()

    def create_learner(self):
        self.Warning.class_weights_used.clear()
        penalty = self.penalty_types_short[self.penalty_type]
        if self.class_weight:
            class_weight = "balanced"
            self.Warning.class_weights_used()
        else:
            class_weight = None
        if penalty == "none":
            C = 1.0
        else:
            C = self.strength_C
        return self.LEARNER(
            penalty=penalty,
            dual=self.dual,
            tol=self.tol,
            C=C,
            class_weight=class_weight,
            fit_intercept=self.fit_intercept,
            intercept_scaling=self.intercept_scaling,
            max_iter=self.max_iter,
            preprocessors=self.preprocessors,
            random_state=0
        )

    def update_model(self):
        super().update_model()
        coef_table = None
        if self.model is not None:
            coef_table = create_coef_table(self.model)
        self.Outputs.coefficients.send(coef_table)

    def get_learner_parameters(self):
        return (("Regularization", "{}, C={}, class weights: {}".format(
            self.penalty_types[self.penalty_type], self.C_s[self.C_index],
            bool_str(self.class_weight))),)


def create_coef_table(classifier):
    i = classifier.intercept
    c = classifier.coefficients
    if c.shape[0] > 2:
        values = [classifier.domain.class_var.values[int(i)] for i in classifier.used_vals[0]]
    else:
        values = [classifier.domain.class_var.values[int(classifier.used_vals[0][1])]]
    domain = Domain([ContinuousVariable(value) for value in values],
                    metas=[StringVariable("name")])
    coefs = np.vstack((i.reshape(1, len(i)), c.T))
    names = [[attr.name] for attr in classifier.domain.attributes]
    names = [["intercept"]] + names
    names = np.array(names, dtype=object)
    coef_table = Table.from_numpy(domain, X=coefs, metas=names)
    coef_table.name = "coefficients"
    return coef_table


if __name__ == "__main__":  # pragma: no cover
    WidgetPreview(OWLogisticRegression).run(Table("zoo"))

```
--- 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