easy solution RIGHT HERE;
Import your required libraries
from web3 import Web3, HTTPProvider
Intialize your infura node in a variable
w3 = Web3(Web3.HTTPProvider("https://rinkeby.infura.io/v3/YOUR_INFURA_KEY"))
aand.. the most SIMPLE part, which TOOK OVER THREE WEEKS to figure out because the documentation is absolutely horrenous ;
inject the damn ...
Web3 and Metamask are all you need to connect to Rinkeby. You don't need Infura, Geth, or Parity. For state modifying, check out the method send command:
myContract.methods.myMethod([param1[, param2[, ...]]]).send(options[, callback])
Well it is a testnet.
Without knowing what has happened here are some alternatives:
1) Some new network feature is being tested and it didn't work out very well (unlikely option)
2) There simply aren't enough validators online
3) The tools I (we?) use to check the status are malfunctioning
4) Some other malfunction in the network. Unlikely.