Just looking at the function signatures there:
fn string_sum(_py: Python<'_>, m: &PyModule)
is the idea that the `Python` type represents the GIL and you're actually acquiring it from within your Rust application?