How to set a keymap for specific context and mode ?

Hi,
I’m doing a lot more of keymapping scripts these days for boosting temporarily specific tasks.
I get stuck a lot on the way of choosing the editor for the key to work on (with the keymap not overriding other contexts). And now I want a keymap in the 3D view but with specific mode (weight paint and texture paint)…

Is there a list somewhere of values available for this line :

km = addon.keymaps.new(name = "3D View", space_type = "VIEW_3D")

usually used like this :

addon_keymaps = []
def register_keymaps():
    addon = bpy.context.window_manager.keyconfigs.addon
    km = addon.keymaps.new(name = "3D View", space_type = "VIEW_3D")
    kmi = km.keymap_items.new("wtool.weight_quick_switch_1", type = "ONE", value = "PRESS", ctrl = True)


    addon_keymaps.append(km)

I’ve already had a hard time finding what to write for keymapping only in outliner, dopesheet or graph editor.
(here if you are interested):


km = addon.keymaps.new(name = "Outliner",space_type='OUTLINER', region_type='WINDOW')
km = addon.keymaps.new(name = "Dopesheet", space_type='DOPESHEET_EDITOR', region_type='WINDOW')
km = addon.keymaps.new(name = "Graph Editor",space_type='GRAPH_EDITOR', region_type='WINDOW')

But now my real problem is setting the keymap for specific mode.
For exemple :
I want my keymap to be effective only in weight paint mode:
using ctrl+1, ctrl+2 without affecting the behavior of this settings in object mode

How I can define that ?