Open Source¶
While most of my coding time is devoted to internal Schneider Electric software, I maintain some open source activity focused on addressing "common" transverse issues. Quality is "best effort given the allocated time".
Footprint¶
Below is the number of packages downloads for my python codes, in million of downloads per year:
I also contribute to other's codes. Below is an attempt to present both activities.
Disclaimer
The distinction below between "significant" and "other" contributions should be understood as "my own perception of the impact of my work", and by no means any sort of judgement about the quality of the projects cited below.
Significant contributions¶
Author¶
m5pyscikit-learn-compliant M5 prime (M5’) model trees for python, 2022
Publication: PyConDE PyData 2022mkdocs-gallerybringing all features of the great sphinx-gallery on mkdocs, 2021qdscreena python implementation of the quasi-determinism screening algorithm, 2021
Publication: ECML PKDD 2022odsclient, a non-official python client for opendatasoft API (e.g. datasets retrieval for benchmarks), 2020pyfields, eases object-oriented python with easy and user-friendly type and value validation, 2019pytest-cases, to separate test cases from test functions for benchmarks, 2018
Publication: Europython 2021pytest-harvest, apytestextension to generate reproducible tests/benchmark result tables easily,2018autoclass, removes boilerplate code from python classes, 2017azmlclient, a non-official python client for AzureML API (e.g. analytics web services), 2016octminer, an interface between Rapidminer and Octave to execute Octave code within Rapidminer processes, 2012.
Publication: RCOMM 2012xml-java-osgi, a stack of packaged xml bundles with small footprint for embedded OSGi, 2009osgi-dpwsdriver, a dpws (Devices Profile for Web Services) driver for OSGi compliant with RFP 86, 2007
Publications: OSGi Alliance 2007, RFP 86 , RFC08. Also used in AINA 2008, ICMDM 2011...
Contributor¶
pandas, significantly improved performance ofPeriod's default formatter, 2023pandas, added tests forPeriodstr and repr, 2023pandas, fixed non-utf8 locale-relatedPeriodformatting issue, 2022pandas, fixed locale-related issue in the testing tools, 2022pandas, improved performance for date/time formatting and SQL time inserts, 2022pandas, fixedPeriodandPeriodIndexformatting, 2022scikit-learn, improved R² and explained variance scores through a newforce_finiteparameter, 2022pandas, improved documentation forto_datetime– in particular about timezone handling, 2022scikit-learn, added a new randomized SVD solver toKernelPCA, 2021scikit-learn, fixedKernelPCA's numerical consistency between 32-64bits, 2020scikit-learn, fixed pseudo-random number generator forlibsvmandliblinear, 2020scikit-learn, added checks for eigenvalue decomposition numerical/conditioning issues inKernelPCA, 2019scikit-learn, fixed transform issue inKernelPCAwhen zero eigenvalues are present and not removed, 2019MATLAB, fixed 3 bugs inR2009time series toolbox (Rounding and conversion errors in several functions), 2010wsman-osgi, a Java OSGI implementation of the DMTF WS-Management specification, 2008dpws4j, a dpws (Devices Profile for Web Services) driver for java, various contributions, 2007
Coach¶
scikit-learnfaster eigendecomposition for Isomap & KernelPCA, 2025 (under finalization)scikit-learnreplacement of the Yeo-Johnson power transformer implementation by scipy’s >= 1.9, 2025scikit-learn, statistical uniformity tests of the new libsvm/liblinear pseudo-random number generator, 2020
Other contributions¶
Author¶
genbadge, a code quality badge generator to motivate coders through gamification, 2021marshmallow-pyfields, to generate marshmallow schemas from classes using pyfields, 2020doit-api, a pythonic API for doit, 2020vtypes, validating types for python: isinstance() validates both type and value, 2020pytest-pilot, a pytest extension to slice in a test base more easily (e.g. for large benchmarks), 2019fprules, make-like file pattern rules for build tools such as doit, 2019decopatch, (labelled “critical” project by PyPi in 2023) python decorators made easy, 2019makefun, (labelled “critical” project by PyPi in 2022) a toolbox for dynamic functions creation with a given signature, 2019getversion, get the version number of any python module or package, reliably, 2019pytest-steps, a pytest extension to create step-wise / incremental tests in pytest, 2018yamlable, a thin wrapper of PyYaml to convert python objects to YAML and back., 2018spawny, a library to help spawning python processes from other places e.g. from MATLAB, 2017mini-lambda, a library to create symbolic single variable expressions (simple lambdas) in python, 2017valid8, a validation toolbox for python, 2017envswitch, a very simple GUI to easily switch between environments, in particular HTTP proxies, 2017[
] (https://github.com/smarie/env-switcher-gui/releases)
pyqt5-minimal, a minimal version of the PyQt5 GPL package for lightweight distributions, 2017parsyfiles, a declarative parsing framework in python based on type declarations, 2017commonsjavaosgi, utils for java and OSGi, e.g. exec environments, jsr support for embedded, etc., 2009
Contributor¶
panderaperformance improvement for the check_nullable checker with pandas backend, 2024mkdocs-bibtexadded logging, 2024mkdocs-bibtexfixed utf-8 encoding errors with pandoc, 2024mkdocsconfiguration objects validation improvement, 2022pytest-xdistadded non-regression tests for warning serialization across distributed workers, 2022requests-oauthlibfixed an issue where the ssl certificate verification flag was ignored, 2022requests-oauthlibfixed an issue where the client scope was not used, 2022setuptools_scmsupport for custom and non-normalizing version processors, 2021requestdocumentation on usage with HTTP(s) proxies, 2020noxability to work with no venv_backend, and to better configure default/forced backend (even none), 2020noxability to execute an existing conda session when user is offline, 2020pyLODEfixed package imports/initialization, 2020noxfixed package installation using conda when version constraints are used, 2020noxfixed default python paths using conda, 2020oauth-libfix authorization token scope inconsistency, 2020oauth-libfix for default values passing 2, 2020oauth-libfix for default values passing, 2020PyCharmfixed autocomplete: added support for descriptors and metaclass members, 2020pytestimproved time counters used to compute tests duration, to have more precise durations, 2020pytest-xdistnew API to detect worker status in distributed testing., 2020typing-inspectretro-compatibility with python 3.5.0 and 3.5.1, 2020typing-inspectretro-compatibility with python 3.5.2 and 3.5.3, 2020attrsfix for a bug happening in an edge case, 2020funcsigsretrocompatibility: added support forfollow_wrapped(aligned with latest python versions), 2020pytest-profilefixed SVG profiling report on windows, 2019stdlib-listnew API to check if a module is part of stdlib, 2019typing-inspectnew API to check if a type is optional, and type variable helpers, 2018enforcevarious type-based validation improvements, 2018decoratoradded support for generators, 2018blync4CIadded support for multiple lights, and various improvements, 2016windows-azure-storage-pluginvarious usability improvements, 2015ws-management4ja Java implementation of DMTF's WS-Management standard for dpws4j, 2008ws-sec4jimplementation of the WS-Security standard for dpws4j, 2007