github / github/codeql

LGTM.com - false positive for `sklearn.base.BaseEstimator._more_tags()`

Ouverte
#9,889 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
acknowledged false-positive Python
Langage dominant
CodeQL
Étoiles
10.1k
Forks
2.1k
Merge moyen
2 j 15 h
PR mergées (30 j)
141

Description

**Description of the false positive**
Using multiple base classes from `sklearn.base` together, e.g.,
```python
from sklearn.base import BaseEstimator, ClusterMixin

class Clustering(ClusterMixin, BaseEstimator):
...
```
LGTM identifies following error: `Base classes have conflicting values for attribute '_more_tags': Function _more_tags and Function _more_tags.`

I think that this is a false positive, because both functions `_more_tags` are used via the `inspect.getmro` function
```python
def _get_tags(self):
collected_tags = {}
for base_class in reversed(inspect.getmro(self.__class__)):
if hasattr(base_class, "_more_tags"):
# need the if because mixins might not have _more_tags
# but might do redundant work in estimators
# (i.e. calling more tags on BaseEstimator multiple times)
more_tags = base_class._more_tags(self)
collected_tags.update(more_tags)
return collected_tags
```
Checkout the [full definition](https://github.com/scikit-learn/scikit-learn/blob/baf0ea25d6dd034403370fea552b21a6776bef18/sklearn/base.py#L348-L357)

**URL to the alert on the project page on LGTM.com**
https://lgtm.com/projects/g/moldyn/MoSAIC/snapshot/c1df9c1a96a193a3e400986fb71b550bf0c42e2f/files/src/mosaic/clustering.py?sort=name&dir=ASC&mode=heatmap#x8e6a118dd37a8a7:1

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.