Source code for bokeh.command.subcommands.json
'''
To generate the serialized JSON representation for a Bokeh application
from a single Python script, pass the script name to ``bokeh json`` on the
command line:
.. code-block:: sh
bokeh json app_script.py
The generated JSON will be saved in the current working directory with
the name ``app_script.json``.
Applications can also be created from directories. The directory should
contain a ``main.py`` (and any other helper modules that are required) as
well as any additional assets (e.g., theme files). Pass the directory name
to ``bokeh json`` to generate the JSON:
.. code-block:: sh
bokeh json app_dir
By default, the generated JSON is output as one line, with no indentation.
To generate "pretty printed" JSON on multiple lines, you can specify an
indentation level with the ``--indent`` argument:
.. code-block:: sh
bokeh json app_script.py --indent=2
'''
from __future__ import print_function
from .file_output import FileOutputSubcommand
[docs]class JSON(FileOutputSubcommand):
''' Subcommand to output applications as serialized JSON
'''
#: name for this subcommand
name = "json"
#: file extension for output generated by this :class:`~bokeh.command.subcommands.file_output.FileOutputSubcommand`
extension = "json"
help = "Create JSON files for one or more applications"
args = (
FileOutputSubcommand.files_arg("JSON"),
('--indent', dict(
metavar='LEVEL',
type=int,
help="indentation to use when printing",
default=None
)),
) + FileOutputSubcommand.other_args()
[docs] def file_contents(self, args, doc):
'''
'''
return doc.to_json_string(indent=args.indent)