-
Notifications
You must be signed in to change notification settings - Fork 58
Description
I was looking at finishing #563 (replacing quaternion.symmetry.Symmetry with quaternion.symmetry.PointGroup) and started to think about this conversation from last year (paraphrased slightly):
... but to maybe put a finer point to [the] suggestion. My problem is the names of the modules.
...
from orix.crystal_map import Phaseconfused me for a for a long while. And looking through the modules now I don't really have the first guess as to where the symmetries and point groups would be imported.Quaternion -> transform
Crystal_map-> ???
Originally posted by @CSSFrancis in #573
My problem is the names of the modules.
I agree with you, but I don't think it's worth it to move classes. I suggest to keep it as-is just because current users are used to it.
The module names are historical. When we introduced the crystal map, we first thought of that, and then that we needed a class for crystallographic phases (symmetry + unit cell). The class was placed in the crystal map module since it was to be used there. Then, of course, it became required for crystal directions (the Miller class), and suddenly it doesn't make much sense for the phase class to be in the crystal map module.
looking through the modules now I don't really have the first guess as to where the symmetries and point groups would be imported
The symmetry class was placed in the quaternion module because it subclasses the quaternion class. I would not do it like that if I were to write the class again, but it's not worth it to change that fact, I think.
Originally posted by @hakonanes in #573
Before I spend a bunch of time making a new class in quaternion.symmetry, what are people's thoughts on adding an orix.xtal module that contains Phase, PhaseList, Symmetry, and PointGroup? IE, take all the scattered class functions from across orix that deal with symmetry and crystallogrphy and put them in one spot?
This, to me, would be the most logical rearrangement, and we could leave behind warning functions for a few versions that reference the Class's new locations. Since they are major functionality change as well, we could even copy what @ericpre did in rsciio and leave the warnings in until orix 1.0.0.