The end of GSoC

Google Summer of code is officially coming to an end. This was a fun ride. I’ll summarise everything I did during the summer and what I achieved in terms of my initial objectives.

In case you are new here, I’m Vishnu and I worked for SunPy under Google Summer of Code 2018. SunPy is an open source python library to assist solar physicists.



In case, you have more time, here is my whole experience.

My objectives for the summer where:

  • Refractor the function parse_time to return astropy.time.Time instead of datetime.datetime.
  • parse_time is used throughout SunPy code base. So, make changes to the rest of the code base so that the old functionality is restored even after changes to parse_time.
  • Migrate the whole SunPy code base to use astropy Time. This includes transitioning all the submodules in sunpy to use the new API.

This may sound easy on paper, but some of the things where quite challenging. For instance, astropy.time.Time did not have simple formatting methods like strftime and strptime. SunPy needed a lot of simple formatting. So I had to add that to astropy. Since astropy is under OpenAstronomy (the organisation which include both SunPy and AstroPy), the process was relatively easy. (Relevant PR: https://github.com/astropy/astropy/pull/7323 )

Other PR submitted to astropy include

  1. Fixing a bug that caused subclasses of Time act weird. ( https://github.com/astropy/astropy/pull/7453 )
  2. Add datetime.timedelta support for astropy.time.TimeDelta(PR: https://github.com/astropy/astropy/pull/7441 )

On the SunPy repo, I worked in a separate branch called time. The pull requests I made to that branch can be seen here( https://github.com/sunpy/sunpy/milestone/23?closed=1 ). The work done on each submodule is a seperate PR in the link above.

The PR to master can be seen here ( https://github.com/sunpy/sunpy/pull/2691 ).

All the initial objectives put forward in the beginning of GSoC is now complete. All that left is for the code to reviewed and tested by SunPy developers.