astropy@GSoC Blog Post #3, Week 3

So, it's the start of the 3rd week now. I will be virtually meeting Aarya and Moritz again Tom.

For the past few weeks now, I have been pushing commits to a Draft PR https://github.com/astropy/astropy/pull/11835 on GitHub. I wanted to have something working quite early in the project, in order to be able to pinpoint accurately when something doesn't work. This is why I started with directly adding the cdspyreadme code within Astropy. Afterwards, I am also writing the code from scratch. As more of the required features from cdspyreadme get integrated into cds.py, those files and codes added earlier will be removed.

About the reading/writing to Machine Readable Table format, in fact I wrote about it briefly in my GSoC Proposal that I could attempt it as an extension. I don't have an opinion on whether or not it should have it's own format classes etc. However, since the title of my GSoC project is to Add a CDS format writer to Astropy, I would prefer to work on the CDS format writer first and then on the MRT format. The MRT header anyway appears to be a bit simpler than the CDS header, so there shouldn't be much difficulty in the extension.

So, in a nutshell, this is my workflow:
  • Try out directly using cdspyreadme from within Astropy.
  • Add CdsData.write method.
  • Add a ByteByByte writer.
  • Write features to add complete ReadMe to the Header, starting off with having both ReadMe and Data in a single file.
  • Have features for writing separate CDS ReadMe and Data file.
  • Further work on some specific table columns, for instance, those containing Units and Coordinates.
  • Add appropriate tests along the way.
  • Resolve other issues that come up.
  • MRT format reader/writer.

I have completed the first three tasks and will now work on the fourth. I think by the time this finishes, a separate CDSColumn.py won't be required. I can open another PR which adds the Data writer, in the meantime.

Let's see how it goes!