title: How to listen for events in Python with Infura (2019 year end)?
body: <p>web3py 5.3.0 latest doc gives example of eventFilter --</p>
  
  <p><a href="https://web3py.readthedocs.io/en/latest/contracts.html#event-log-object" rel="nofollow noreferrer">https://web3py.readthedocs.io/en/latest/contracts.html#event-log-object</a></p>
  
  <pre><code>transfer_filter = my_token_contract.eventFilter('Transfer', 
      {'filter': {'_from': '0xDc3A9Db694BCdd55EBaE4A89B22aC6D12b3F0c24'}})
  </code></pre>
  
  <p>which results in error --</p>
  
  <pre><code>*** AttributeError: 'Contract' object has no attribute 'ContractEvents'
  </code></pre>
  
  <p>While I have raised this issue to web3.py on github -- </p>
  
  <p><a href="https://github.com/ethereum/web3.py/issues/1508" rel="nofollow noreferrer">https://github.com/ethereum/web3.py/issues/1508</a></p>
  
  <p>Can someone please share working example of listening to Ethereum events in Python <strong>with Infura</strong> websocket, which does not support createFilter?</p>