Determinar el número de versión de Bazar de Python sin llamar a bzr

Tengo un proyecto django (Python) que necesita saber en qué versión está su código en Bazar para fines de implementación. Esta es una aplicación web, por lo que no quiero hacer esto porque lanza un nuevo subprocess y no va a escalar.

import subprocess subprocess.Popen(["bzr", "revno"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() 

¿Hay alguna manera de analizar los repositorys de Bazaar para calcular el número de versión? Bazar está escrito en Python y contiene este código para calcular el revno, lo que me hace pensar que no es exactamente trivial.

 rh = self.revision_history() revno = len(rh) 

Editar: corrección final

 from bzrlib.branch import BzrBranch branch = BzrBranch.open_containing('.')[0] revno = len(branch.revision_history()) 

Editar: solución final pero de verdad esta vez

 from bzrlib.branch import BzrBranch branch = BzrBranch.open_containing('.')[0] revno = branch.last_revision_info()[0] 

Puede usar la API bzrlib de Bazaar para get información sobre cualquier repository Bazaar dado.

 >>> from bzrlib.branch import BzrBranch >>> branch = BzrBranch.open('.') >>> branch.last_revision_info() 

Más ejemplos están disponibles aquí .

Hazlo una vez y almacena el resultado en caching (en un DB / file, si es necesario) Dudo que la versión vaya a cambiar tanto.