Put together last night after too much coffee. You Like?
Nice job. I believe it may useful to lots of people.
Here is one remark, though.
I noticed that you do not adhere to the principle of spelling heptatonic scales (such as the major, melodic minor, harmonic minor, harmonic major scale, and their modes) with using all 7 name letters A, B, C, D, E, F, G once, equiped with the appropriate alteration #, b, x (double sharp), bb where needed. Instead you are using an enharmonic spelling for some notes of the scale, resulting in some scales that have 2 "F"s and no "G" for example.
While your motivation for using enharmonic spelling is quite clear (typically avoid writing E#, Cb or Abb, because some people find it easier to read F, B and G instead), I find that this practice has the inconvenient of making the harmonic role the various scale degrees quite obscure, and makes transposition to a different key quite awkward.
For example: if C major is C, D, E, F, G, A, B it makes more much sense (to me) to write that C# major as C#, D#, E#, F#, G#, A#, B#, instead C#, D#, F , F#, G#, Bb, C as you propose. While it is immediately obvious (to me) that (in C# major) the 3rd of the I chord (C# major) is E#, that A# is the 3rd of the IV chord (F# major) and B# the leading tone of the scale, using F, Bb, and C, respectively, as you propose, makes my brain melt and my ears bleed.(*)
I understand that these things are essentially a matter of personal preferences, and that every one needs to use what works for themselves; but it would be good to inform users of your program of the choices you have made in this respect, and (maybe) to offer as an option the "rigorous" spelling.
(*)I get the same kind of ear bleeding when playing an F blues, and the guitar player calls the IV chord "A#"!!
(actually, guitar players would most likely put a capo on fret 1 to play an F blues, and then call the IV chor "A"!)