This is an example of loading code and dynamically creating a class based on the version requested.
project/init.py # in gist project/client/init.py # EMPTY project/client/v1_test.py # in gist project/client/v2_test.py # in gist
In [1]: from project import openshift
In [3]: openshift.v1().common()
Out[3]: 'operations defined in this object'
In [4]: openshift.v2().common()
Out[4]: 'operations defined in this object'
In [5]: openshift.v1().test('hi')
Out[5]: 'v1 hi'
In [6]: openshift.v2().test('hi')
Out[6]: 'v2 hi'
In [7]: v2 = openshift.v2()
In [8]: v1 = openshift.v1()
In [9]: v2.test('2')
Out[9]: 'v2 2'
In [10]: v1.test('1')
Out[10]: 'v1 1'