GSOC 21: Extensions to pytest-mpl

Hello,

I am a PhD student and would like participate in Google Summer of Code 21 with matplotlib. Most organizations require students to present themself to the community. Taking a look at the wiki entry I am not sure where I can apply or get more details about the projects. I am most interested in the 4th topic
extensions to pytest-mpl. Could anyone please tell me how I can reach the mentors?

Thank you :slight_smile:

Best
Daniel

This is a good place, as is our gitter channel (matplotlib/matplotlib - Gitter).

Assuming you have the same name on github, you have some nifty work up!

If you are interested in the testing machinery, you may also consider having a look at last year’s GSOC on handling baseline images in the test suite.

Thank you and sorry for the late reply. Yes indeed, my Github name is the same. So I briefly want to introduce my self.

I am doing my Ph.D. in numerical biophysics in the field of hierarchical Markov models of all-atom protein simulations. I did my B. Sc. and M. Sc. in physics were I learned c++ and python. 2018 I finally made the switch for daily plotting and data analysis from c+++gnuplot to python+matplotlib. Since then, I use matplotlib on a weekly-basis. Writing many scripts I even started to move some frequently used patterns into a pypi package prettypyplot. It still is in beta stage, but it should highlight that I am really interested in matplotlib :wink:

Since November 2019 I maintain the amazing icon pack ameixa were I mainly learned the basics of git. And now would like to participate in gsoc to make the next step: contributing to a larger project.

In case you want to see more in details you can check out my github page: https://braniii.github.io/

And I have two questions:

  • What are the requirements? I guess the project will be completely in python?
  • Could some of the mentors tell me how much time it takes. I saw that this year gsoc has announced a time-limit of 175 hours. Is this realistic?

Happy Eastern :slight_smile:
Daniel

As part of the process you propose the work you want to do. Most of our code is in Python (with some c++) and the work should contribute to an existing code base so I would expect it to be in Python.

Time wise, the expectation is 18 hours / wk over 10 weeks (see Frequently Asked Questions  |  Google Summer of Code  |  Google Developers ) so the proposed project should be on that scale (if you want to keep contributing after GSOC is over we would be happy to have you!).

If you interested in applying, please write up what you want to do with the pytest extension!

We are short on people who have time this summer to serve as mentors and we are going to be allocated a limited number of slots by NumFOCUS (who we are applying to GSOC under the umbrella of) so can not make any promises, but if you are interested please do apply.

That sounds good. Since I have never contributed to such a large source code before, it is hard for me to estimate the time of a project. In your organization’s wiki you proposed to implement the functionality of the internal matplotlib.testing submodule in pytest-mpl, see my first post. I guess this was meant to be a 180h project. Reading your post it seems to me that you are expecting more precise concepts of the project?
I guess a good start would be to make pytest-mpl not anymore dependent on testing, e.g. by integrating from matplotlib.testing.compare import compare_images into the package. Considering the huge amount of tests in mpl, I am not sure if it is realistic to make all use of pytest-mpl (only). Therefore, I will fully trust my potential mentor’s assessment.

And thank you for your help :slight_smile:

We definitely do not want to move our tests to pytest-mpl (which live in matplotlib.tests), but we want to move as much of our testing helpers as possible to pytest-mpl (and then import them back which will require solving a slightly circular dependency problem).

Yes, obviously! That would be a big mess. I meant by “moving” to use pytest-mpl functions instead of matplotlib.testing.