 ed8d95182b
			
		
	
	
		ed8d95182b
		
	
	
	
	
		
			
			Save a bit of build time by passing the number of jobs option to sphinx. We cannot use the -j option from make because meson does not support setting build time parameters for custom targets. Use nproc instead or the equivalent sphinx option "-j auto", if that is available (version >=1.7.0). Also make sure our plugins support parallelism and report it properly to sphinx. Particularly, implement the merge_domaindata method in DBusDomain that is used to merge in data from other subprocesses. Tested-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de> Message-Id: <20230503203947.3417-2-farosas@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # QEMU Monitor Protocol Lexer Extension
 | |
| #
 | |
| # Copyright (C) 2019, Red Hat Inc.
 | |
| #
 | |
| # Authors:
 | |
| #  Eduardo Habkost <ehabkost@redhat.com>
 | |
| #  John Snow <jsnow@redhat.com>
 | |
| #
 | |
| # This work is licensed under the terms of the GNU GPLv2 or later.
 | |
| # See the COPYING file in the top-level directory.
 | |
| """qmp_lexer is a Sphinx extension that provides a QMP lexer for code blocks."""
 | |
| 
 | |
| from pygments.lexer import RegexLexer, DelegatingLexer
 | |
| from pygments.lexers.data import JsonLexer
 | |
| from pygments import token
 | |
| from sphinx import errors
 | |
| 
 | |
| class QMPExampleMarkersLexer(RegexLexer):
 | |
|     """
 | |
|     QMPExampleMarkersLexer lexes QMP example annotations.
 | |
|     This lexer adds support for directionality flow and elision indicators.
 | |
|     """
 | |
|     tokens = {
 | |
|         'root': [
 | |
|             (r'-> ', token.Generic.Prompt),
 | |
|             (r'<- ', token.Generic.Prompt),
 | |
|             (r' ?\.{3} ?', token.Generic.Prompt),
 | |
|         ]
 | |
|     }
 | |
| 
 | |
| class QMPExampleLexer(DelegatingLexer):
 | |
|     """QMPExampleLexer lexes annotated QMP examples."""
 | |
|     def __init__(self, **options):
 | |
|         super(QMPExampleLexer, self).__init__(JsonLexer, QMPExampleMarkersLexer,
 | |
|                                               token.Error, **options)
 | |
| 
 | |
| def setup(sphinx):
 | |
|     """For use by the Sphinx extensions API."""
 | |
|     try:
 | |
|         sphinx.require_sphinx('2.1')
 | |
|         sphinx.add_lexer('QMP', QMPExampleLexer)
 | |
|     except errors.VersionRequirementError:
 | |
|         sphinx.add_lexer('QMP', QMPExampleLexer())
 | |
| 
 | |
|     return dict(
 | |
|         parallel_read_safe = True,
 | |
|         parallel_write_safe = True
 | |
|     )
 |