How to create a custom OAuth for my connector?

I want to use a custom OAuth1 for my connector but today only OAuth2 is implemented in the Airbyte CDK.

Other questions that came up in our Slack channel was (made by Emily Cogsdill):

Hi team - I am working on a Twitter integration and have been struggling a little bit with authenticating using Airbyte’s HttpSource class. The endpoints we need to hit require OAuth 1.0, but currently only OAuth2 is supported (basically you pass a bearer token into the request). Typically when people need to use OAuth1 the recommendation is to just use the implementation by the requests library, but this does not seem to fit into an extension/modification of the Airbyte CDK without considerable additional development.
We were hoping to leverage the HttpSource class to make use of its methods for pagination, retry, etc. Currently that feels like a non-starter because of Twitter’s requirement of OAuth1 for certain endpoints.
Before going off and creating an Http API source connector largely from scratch (doing my own pagination etc), I wanted to check here first to see if there is some solution I might not be considering that would enable us to use the HttpSource while authenticating with OAuth1.0. Does anyone here in the community have ideas? It seems that people periodically inquire about Twitter connectors but I have not yet seen them actually be created (again, specifically for endpoints requiring OAuth1 - those that require OAuth2 work just fine with the CDK)

Authenticators can extend requests.auth.AuthBase so you can create an OAuth1 object.

oauth = OAuth1( 

return [MyStream(authenticator=oauth)]