As we all (probably) know now, our Plasma factory implementation got finished much sooner than expected. So, I’ve been mostly lurking around since my last blog post adding features in our plasma pie, discovering bugs under our plasma bed, reviewing plasma requests, gazing at stars made of plasma, etc.
I’ll talk about some of the progress that’s being made in PlasmaPy. I made a PR
(#483) that allows us to pass collections
particle_input decorator. This was my first time working with decorators in real
world programming. It seems like it turned out pretty well. Oh and
#493 was cute.
I also moved around tests for our plasma subclasses
One thing I noticed during this PR that it is important to have
__init__.py in each of
your directory, otherwise any tests in directories without
__init__.py are not going
to be picked up with
./setup.py test! However, they seem to work when using
directly though. I found a similar problem with
#494 which shot up our coverage from
93.18% and 95.38%. It is pretty surprising, a single empty
__init__.py can do wonders.
So, if anyone is reading this uses
./setup.py test in their projects right now, you better
take care of such stuff in your codebase. You really don’t want to be writing tests only
to realize it later on that they aren’t even being executed.
Also, we recently shifted to CodeCov instead of Coveralls. Why? Hint: It’s more than just bright lovely pink color, but I’ll leave out the minor details.
We are currently fighting with
coveragerc not being picked up by
#497). So, some stuff like
# coveralls: ignore
does not get respected and
coverage marks these lines in red (meaning that they aren’t covered)
instead of just leaving them whitish (ignoring them).
We could replace
# coveralls: ignore with
# pragma: no cover since that is the
coverage and it works with CodeCov integration
(ritiek/PlasmaPy#3) but this might
leave other future additions to
coveragerc still a problem. There is a workaround that seems
to be sort of working (ritiek/PlasmaPy#4, do
notice it further shoots up our coverage from 95.38% to 96.69%!) and is probably bit ugly but
should hopefully suffice for the moment if we can’t find a better solution.
The next little bit related to GSoC is that I am going to create a Plasma subclass which reads HDF5 files that are based upon OpenPMD format using h5py python module and then expose relevant attributes of information. I suspect it isn’t going to be a big task but we’ll get to shed light on further details once we see this little bit happen in PlasmaPy.
OK that would be all for now. Happy plasma pie baking, bye!