| |
|
|
| """Generate the config.rst source from the currently installed version |
| of PocketSphinx. |
| |
| FIXME: This should be integrated into the Sphinx build but I haven't |
| figured out how to do that yet. |
| """ |
|
|
| from pocketsphinx import Decoder |
|
|
| PREAMBLE = """Configuration parameters |
| ======================== |
| |
| These are the parameters currently recognized by |
| `pocketsphinx.Config` and `pocketsphinx.Decoder` along with their |
| default values. |
| |
| .. method:: Config(*args, **kwargs) |
| |
| Create a PocketSphinx configuration. This constructor can be |
| called with a list of arguments corresponding to a command-line, in |
| which case the parameter names should be prefixed with a '-'. |
| Otherwise, pass the keyword arguments described below. For |
| example, the following invocations are equivalent:: |
| |
| config = Config("-hmm", "path/to/things", "-dict", "my.dict") |
| config = Config(hmm="path/to/things", dict="my.dict") |
| |
| The same keyword arguments can also be passed directly to the |
| constructor for `pocketsphinx.Decoder`. |
| |
| """ |
|
|
| config = Decoder.default_config() |
|
|
| |
| required = [] |
| other = [] |
| for arg in config.describe(): |
| if arg.required: |
| required.append(arg) |
| else: |
| other.append(arg) |
| required.sort(key=lambda a: a.name) |
| kwargs = required + other |
|
|
| print(PREAMBLE) |
| for arg in kwargs: |
| arg_text = f" :keyword {arg.type.__name__} {arg.name}: " |
| if arg.doc is not None: |
| arg_text += arg.doc |
| if arg.default is not None: |
| if arg.type == bool: |
| default = arg.default == "yes" |
| else: |
| default = arg.type(arg.default) |
| arg_text += f", defaults to ``{default}``" |
| print(arg_text) |
|
|