Currently, our RPC for the SDK is using gRPC. If you look around in https://github.com/hashicorp/terraform a bit, you can find the protobuf files describing the protocol. There are also some docs on the protocol and resource lifecycles.
I’m being intentionally vague about this because right now the only support we offer is for building providers with our Go SDK. The technical ability for providers to be written in Python exists, but the support structures for it–places to ask questions, well-defined documents making it easy, communication channels tailored to developers operating at the protocol level, and tooling to support it–do not. Provider developers could, in theory, write a Python provider, but I would strongly encourage not doing that.
While we’re not closing the door on implementing providers in other languages, at the moment we’re focused on ensuring the developer experience with our Go SDK is up to our expectations. Other languages is a thing we’re keeping in the back of our minds, but it’s not something we’re actively investigating supporting at this time.