Feedback on Pitch Constellation/ Chromatic Circle in Python Project
Immutable sequences
Convert notes and the values in scale from list literals [] to tuple literals () since it's expected that they cannot and will not change.
Musical theory
Consider distinguishing between harmonic and melodic minor, which are different scales.
Global code
Move
rootkey = input(&quot;Enter the root Note: &quot;).upper()

into your main(). Also, your constructor
def __init__(self, key):
    self.rootkey = rootkey

needs to refer to its key argument and not the rootkey global.
Shadowing
def shift(self, rootkey, index=0, s=0,):

has a number of issues:

You're shadowing the global rootkey with an identically-named argument
You shouldn't have a rootkey argument at all, since it's already a member on self

Loop like a native
Consider renaming index and s to first_index and first_s, so that you can replace your while with
for index, s in zip(
    range(first_index, 12),
    range(first_s, 12)
):

Inner prints
Delete the print from here:
            print(new_notes)
            return new_notes

If you want to print it, do so at the outer level.
Logic by exception
Consider writing
mode = input(&quot;Enter the mode: &quot;).lower()
try:
    x = scale.get(mode)
    keymode = [key[i] for i in x]
    print(keymode)
except:
    if mode not in scale:
        print(&quot;Scale not in list. Please start the program again.&quot;)
    return

as
mode_name = input(&quot;Enter the mode: &quot;).lower()
mode = scale.get(mode_name)
if mode is None:
    print(f&quot;Scale {mode_name} not in list. Please start the program again.&quot;)
else:
    key_mode = [key[i] for i in mode]
    print(key_mode)

In other words, where possible do not rely on exceptions (especially with no type specified) to govern your logic; and avoid a double-dictionary lookup by using get.