llamar y controlar git bash desde python script en windows

por favor, ayúdenme, si es posible, sobre el problema que estoy enfrentando. (He realizado una búsqueda exhaustiva, muchas sugerencias parecían prometedoras, pero no he logrado llegar donde yo quería).

Estoy trabajando en Windows (7 -64 bit) y me gustaría diseñar una secuencia de commands python que saque automáticamente de git (y luego realice otras acciones). El problema es que los repositorys de git en nuestra compañía están diseñados de tal manera que, al abrir git-bash, usamos una function especial de 'asistencia' (git_help_fn) que permite alternar entre repositorys, extraerlos y fusionarlos automáticamente. Esto significa que no puedo usar los commands incorporados de python git. Lo que hago manualmente es:

git_help_fn -r1 % in order to move to r1 repo git pull git_help_fn -r2 % in order to move to r2 repo git pull 

Entonces, lo que estoy buscando es una forma de llamar a git-bash desde python e interactuar con él, proporcionando commands pnetworkingefinidos (como los anteriores) y, al less al principio, una contraseña codificada (solo para ver si funciona) .

Después de muchas búsquedas y testings con el subprocess de Python y los bashs de escritura / lectura stdin / stdout, concluí que el module winexpect es lo que necesito.

Sin embargo, lo más lejos que he ido es usando:

 child = winspawn(os.system('start "" "C:\\Program Files (x86)\\Git\\bin\\sh.exe" --login')) 

De esta manera, se abre git bash, puedo escribir a mano, pero no puedo pasar ningún command a través de python. Python devuelve un error:

 File "C:\Python27\lib\site-packages\winpexpect-1.5-py2.7.egg\winpexpect.py", line 346, in __init__ logfile=logfile, cwd=cwd, env=env) File "C:\Python27\lib\site-packages\winpexpect-1.5-py2.7.egg\pexpect.py", line 429, in __init__ self._spawn (command, args) File "C:\Python27\lib\site-packages\winpexpect-1.5-py2.7.egg\winpexpect.py", line 362, in _spawn args = split_command_line(command) File "C:\Python27\lib\site-packages\winpexpect-1.5-py2.7.egg\winpexpect.py", line 78, in split_command_line for c in itertools.chain(cmdline, ['EOI']): # Mark End of Input TypeError: 'int' object is not iterable 

Me imagino eso, lo que estoy tratando de hacer no es algo demasiado complicado. Sin embargo, no soy un progtwigdor experimentado y he llegado a un callejón sin salida. Cualquier ayuda sería muy apreciada. Gracias de antemano, Thanos