Pandas: RLS : 0.20.0

Créé le 18 avr. 2017  ·  50Commentaires  ·  Source: pandas-dev/pandas

Nous approchons de la version 0.20.0, nous ouvrons donc un problème pour suivre cela.

Problèmes/PR restants avec la balise 0.20 : https://github.com/pandas-dev/pandas/milestones/0.20.0
S'il reste d'autres choses, il est temps de parler

cc @pandas-dev/pandas-core

Release

Commentaire le plus utile

La version candidate 0.20.0 casse une grande partie de mon code et AFAICS, la casse concernait des modules auparavant non obsolètes, de sorte que les bibliothèques tierces n'ont pas eu le temps de s'adapter à la nouvelle API.

xréf : #16137, #16138

Je pense qu'il devrait être sérieusement envisagé de fournir une couche de compatibilité pour au moins une version mineure. Ce n'est pas difficile à faire et il n'est pas nécessaire de rester très longtemps, mais cela donnera aux bibliothèques tierces un changement pour s'adapter. Le travail requis est dans PR # 16140

Tous les 50 commentaires

L'objectif actuel pour la release candidate est ce vendredi je pense, @TomAugspurger ?

Oui, c'est le but.

c'est juste un RC ce vendredi. Nous avons probablement besoin de 2 semaines ou plus pour cela.

oui c'est ce que je voulais dire désolé pour le dérangement

Faire le RC ce soir ou tôt demain. Parmi les problèmes restants, # 16088 est un bloqueur et # 16086 serait bien. Tout me manque?

@jreback avez-vous une préférence pour le marquage v0.21.dev immédiatement après le marquage du RC, plutôt que d'attendre pour marquer v0.21.dev jusqu'à la version 0.20 complète ? Si nous étiquetons 0.21.dev maintenant, nous pouvons fusionner tout ce que nous voulons dans master, et je rétroporterai simplement tout ce qui doit être rétroporté d'ici la version 0.20.

non ce sont bien. Je vais jeter un oeil dans quelques-uns.

hmm ça fait bizarre de taguer 0.21.dev avant 0.20.0.

hmm ça fait bizarre de taguer 0.21.dev avant 0.20.0.

Je ne pense pas qu'il y ait quelque chose d'étrange à cela. C'est juste un choix pratique à faire quand on branche la branche 0.20.x (le balisage n'en est qu'une conséquence) : maintenant avec le rc, ou seulement après la version finale.

Pour moi, les deux options sont OK. La création de branches facilite désormais un peu la progression / la fusion des PR (nous devons être moins préoccupés par le PR que nous fusionnons ou qui doit attendre la sortie de la version 0.20), mais c'est plus de travail pour Tom de rétroporter.

@TomAugspurger , il y a encore des problèmes de doc ouverts pour 0.20, mais vous n'avez pas à vous en soucier trop, car pour les rc, nous pointons généralement vers les docs de développement qui sont encore mises à jour (je veux dire, marquer le rc ne gèle pas le docs, comme c'est le cas avec la version finale)

ok ouvert à tout marquage qui a du sens.

oui, les problèmes de documentation peuvent certainement être résolus après (ainsi qu'un petit nombre de correctifs supplémentaires, déjà marqués pour 0.20.0). principalement celui du tri.

@TomAugspurger ok toutes les choses sur ma liste sont fusionnées.

👍 Construire maintenant et tester localement. Je taguerai probablement ce soir.

Conda-forge n'a pas encore choisi les éléments de pré-version, donc j'attendrai probablement jusqu'à demain pour faire des annonces (il faut terminer la configuration de cette machine virtuelle Windows).

ok lmk si tu as besoin de quelque chose
mais ne sera pas là la majeure partie de demain

Ok, tagué et publié sur github. Faire tous les trucs de conda et les annonces de la liste de diffusion demain.

Je viens d'envoyer le mail d'annonce. Toutes les roues sont sur PyPI. Notre canal conda propose des packages pour OSX et Windows 64 bits. Je n'ai pas encore configuré d'environnement Windows 32 bits. Les packages Linux devraient être disponibles sous peu (compilés 0.19.2 par accident).

merci @TomAugspurger !

Puisque nous n'avons pas marqué 0.21.0.dev (je pense que nous devrions le faire après la balise de 0.20.0 final), nous allons continuer à fusionner de petites choses à maîtriser.

Le #16111 pourrait-il être corrigé avant la 0.20.final ? C'est un bogue qui fait planter tout l'interpréteur Python de Pandas, ne laissant aucune trace ou indice sur ce qui s'est mal passé.

Cependant, je n'ai pas les capacités de résoudre ce problème moi-même, alors considérez cela comme un simple appel d'un utilisateur satisfait. De plus, j'ai créé ma propre solution de contournement (non optimale), mais cela pourrait surprendre négativement les autres lorsque cela se produit ...

EDIT : Cela a été pris en charge. Merci!

La version candidate 0.20.0 casse une grande partie de mon code et AFAICS, la casse concernait des modules auparavant non obsolètes, de sorte que les bibliothèques tierces n'ont pas eu le temps de s'adapter à la nouvelle API.

xréf : #16137, #16138

Je pense qu'il devrait être sérieusement envisagé de fournir une couche de compatibilité pour au moins une version mineure. Ce n'est pas difficile à faire et il n'est pas nécessaire de rester très longtemps, mais cela donnera aux bibliothèques tierces un changement pour s'adapter. Le travail requis est dans PR # 16140

C'est pourquoi nous voulons que les gens testent avec le rc, merci beaucoup pour vos commentaires @dhirschfeld !

Y a-t-il des problèmes/correctifs restants que les gens veulent pour 0.20 ? https://github.com/pandas-dev/pandas/pull/16171 est le seul bloqueur que je vois.

Je ferai probablement la sortie mardi ou mercredi si cela fonctionne pour tout le monde.

après # 16223 et les correctifs de documentation restants, je pense qu'il est bon d'y aller. Nous pourrions faire un rc2 (peut-être juste des paquets conda). Pour une vérification rapide ? à vous @TomAugspurger

Ouais, je pourrais aller dans les deux sens sur un RC2... Peut-être qu'un seul pour les packages conda, et tester contre dask, statsmodels, etc.

sûr que ça marche.

Dois-je même pousser un RC2 vers PyPI ? Ou simplement étiqueter, pousser vers github, puis créer les paquets conda ?

non, je ferais juste des packages de conda.

Je vais faire le RC2 maintenant.

Nous avons les deux problèmes de documentation en suspens, mais ceux-ci peuvent se situer entre RC2 et la version.

@jreback quelques échecs GBQ sur le maître

Cela pourrait-il être lié à https://github.com/pydata/pandas-gbq/pull/34 ? (je n'ai pas regardé ce PR)

J'ai redémarré sur master. cela devrait fonctionner. J'ai publié une nouvelle version de gbq car j'utilisais PandasError (que nous avons supprimé)

ces gbq échouent parfois si plusieurs choses s'exécutent dessus (par exemple, la balise 0.20rc2 et le maître sont tous deux lancés en même temps).

Dask, statsmodels et seaborn avaient tous l'air OK sur rc2. J'ai fait une construction et un test Windows localement, et cela a également réussi.

super @TomAugspurger

ouais master est vert maintenant (et rc2 je viens de redémarrer ces builds).

J'obtiens trois échecs de test sur win-amd64-py3.6.1 avec numpy-1.11.3+mkl. L'échec test_shim est corrigé par #16239

running: pytest --skip-slow --skip-network X:\Python36\lib\site-packages\pandas
<snip>
================================== FAILURES ===================================
__________________________________ test_shim __________________________________

    def test_shim():
        # https://github.com/pandas-dev/pandas/pull/16059
        # Remove in 0.21
        with tm.assert_produces_warning(FutureWarning,
                                        check_stacklevel=False):
>           from pandas.formats.style import Styler as _styler  # noqa
E           ModuleNotFoundError: No module named 'pandas.formats'

X:\Python36\lib\site-packages\pandas\tests\io\formats\test_style.py:866: ModuleNotFoundError
______________________ TestSeriesAnalytics.test_overflow ______________________

self = <pandas.tests.series.test_analytics.TestSeriesAnalytics object at 0x0000019B01E52400>

    def test_overflow(self):
        # GH 6915
        # overflowing on the smaller int dtypes
        for dtype in ['int32', 'int64']:
            v = np.arange(5000000, dtype=dtype)
            s = Series(v)

            # no bottleneck
            result = s.sum(skipna=False)
            assert int(result) == v.sum(dtype='int64')
            result = s.min(skipna=False)
            assert int(result) == 0
            result = s.max(skipna=False)
            assert int(result) == v[-1]

            # use bottleneck if available
            result = s.sum()
>           assert int(result) == v.sum(dtype='int64')
E           AssertionError: assert 1642668640 == 12499997500000
E            +  where 1642668640 = int(1642668640)
E            +  and   12499997500000 = <built-in method sum of numpy.ndarray object at 0x0000019B061C0CB0>(dtype='int64')
E            +    where <built-in method sum of numpy.ndarray object at 0x0000019B061C0CB0> = array([      0,       1,       2, ..., 4999997, 4999998, 4999999], dtype=int64).sum

X:\Python36\lib\site-packages\pandas\tests\series\test_analytics.py:69: AssertionError
________________________ TestSeriesAnalytics.test_sum _________________________

self = <pandas.tests.series.test_analytics.TestSeriesAnalytics object at 0x0000019B69C32EB8>

    def test_sum(self):
>       self._check_stat_op('sum', np.sum, check_allna=True)

X:\Python36\lib\site-packages\pandas\tests\series\test_analytics.py:96:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X:\Python36\lib\site-packages\pandas\tests\series\test_analytics.py:556: in _check_stat_op
    testit()
X:\Python36\lib\site-packages\pandas\tests\series\test_analytics.py:535: in testit
    assert_almost_equal(float(f(s)), float(alternate(s.values)))
X:\Python36\lib\site-packages\pandas\util\testing.py:177: in assert_almost_equal
    **kwargs)
pandas\_libs\testing.pyx:59: in pandas._libs.testing.assert_almost_equal (pandas\_libs\testing.c:4156)
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   AssertionError: expected 1099511628275500.00000 but got 499500.00000, with decimal 5

pandas\_libs\testing.pyx:209: AssertionError
=========================== pytest-warning summary ============================
WC1 X:\Python36\lib\site-packages\pandas\tests\test_config.py cannot collect test class 'TestConfig' because it has a __init__ constructor
 3 failed, 9606 passed, 542 skipped, 21 xfailed, 1 xpassed, 1 pytest-warnings in 631.87 seconds

@cgohlke merci. C'est sur windows 32 bits ?

Il s'agit de Python 3.6.1 64 bits de python.org sur Windows 10.

test_overflow et test_sum passent après la désinstallation de bottleneck-1.2.0.

test_overflow et test_sum réussissent après la désinstallation de bottleneck-1.2.0.

Merci, je suis capable de reproduire sur ma machine virtuelle Windows avec le goulot d'étranglement installé (je ne l'avais pas installé plus tôt). Jetez un oeil à ce qui se passe maintenant.

nous pourrions ne pas avoir de goulot d'étranglement installé pour les versions de test de Windows

sautez-les pour l'instant

nous testons sur 2.7 avec goulot d'étranglement sur Windows, mais pas sur 3.6... ajouterons et sauterons/corrigerons ceux-ci.

nous testons sur 2.7 avec goulot d'étranglement sur Windows, mais pas sur 3.6... ajouterons et sauterons/corrigerons ceux-ci.

Oui, c'est définitivement dans le goulot d'étranglement. Faites-vous un PR pour les avoir ignorés, ou devrais-je ?

tester maintenant

xa échoué à ces tests : https://ci.appveyor.com/project/jreback/pandas/build/1.0.3686
fusion sur passe (je pense que nous avons un problème avec ce débordement de toute façon, ici : https://github.com/pandas-dev/pandas/issues/15453)

donc quand je résoudrai les problèmes de goulot d'étranglement dans la version 0.21.0, cela résoudra ce problème.

@jreback merci, le problème de goulot d'étranglement est ici : https://github.com/kwgoodman/bottleneck/issues/163

@TomAugspurger ok tout lgtm. en supposant que le maître termine et passe. couper quand vous êtes prêt. (évidemment, si vous voyez des choses doc quand vous faites, veuillez pousser les correctifs).

@jreback the whatsnew mentionne un nouveau hash_tuples . Voulons-nous exposer cela dans pandas.util avec hash_pandas_object ?

ce n'est pas public ça pourrait l'être je suppose

Je demande seulement car c'était dans un élément de note de version. Cependant, dask ne l'utilise pas, alors peut-être le garder privé pour l'instant ?

ouais est censé être privé

OT - la date de la nouvelle note doit être modifiée

Je l'ai dans https://github.com/pandas-dev/pandas/pull/16245

Je vais pousser un autre commit en supprimant cette référence à hash_tuples , puis le marquer. Je vais attendre que cette construction de doc se termine en premier.

La version 0.20 est-elle sortie ? pandas.pydata.org indique que 0.19.2 est la version actuelle.

rafraîchir et vous verrez.

Cette page vous a été utile?
0 / 5 - 0 notes