/command-doc-generator

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

CCS command documentation helper

License CI PyPI

List the available commands information such as the name, the level, the type and the description.

Usage

parse

Use the command-line tool ccsdoc to list the commands and configuration parameters either on a given file or in a directory.

  • on a single file
    ccsdoc parse --path JavaFile.java
    
  • on a full directory to process recursively all .java files
    ccsdoc parse --path java_project_dir
    

Commands or configuration parameters can be output to a directory.

ccsdoc parse --path JavaFile.java --to javafile_commands.csv

By default, both commands and configuration parameters are returned. In case only one of them is desired, pass in the corresponding flag: --commands or --params.

Use ccsdoc parse -h for details about the available options.

convert

The CSV table containing the commands can be converted to the desired format using pandoc

# e.g. here to Microsoft Word
ccsdoc convert javafile_commands.csv --to docx

Examples

Working examples

$ ccsdoc parse --path simulation/SimuEPOSController.java
SimuEPOSController: simulation/SimuEPOSController.java

Command[name=setPosition, type=ACTION, level=ENGINEERING1, desc='For simulator only : update position with a position given as argument.', args=(int actualPosition)]
Command[name=checkFault, type=QUERY, level=ENGINEERING1, desc='Check if the controller is in fault.']
Command[name=enableAndWriteRelativePosition, type=ACTION, level=ENGINEERING3, desc='Enable controller and go to relative position. Doesn't check condition. Danger !!!!', args=(int pos)]
$ ccsdoc parse --path Autochanger.java --params
Autochanger: Autochanger.java

ConfigurationParameter[name=timeToUpdateProtectionSystem, type=long, desc='Time to wait until protection system signals are updated', category=autochanger, units=milliseconds, range=[UNDEFINED, UNDEFINED]]
ConfigurationParameter[name=waitTimeForBrakeOC, type=int, desc='Time to wait between activatebrake and disableoperation for online clamps', category=autochanger, units=milliseconds, range=[UNDEFINED, UNDEFINED]]
ConfigurationParameter[name=waitTimeForBrakeLR, type=int, desc='Time to wait between activatebrake and disableoperation for linear rails', category=autochanger, units=milliseconds, range=[UNDEFINED, UNDEFINED]]

Missing argument example

$ ccsdoc parse --path SimuLoaderStandalonePlutoGateway.java
SimuLoaderStandalonePlutoGateway:
=> simulation/SimuLoaderStandalonePlutoGateway.java: issue at line 39: Missing command argument 'description'.

Installation

pip install ccsdoc

Author

Alexandre Boucaud aboucaud@apc.in2p3.fr (CNRS/IN2P3)

License

BSD 3-Clause license, see the LICENSE file for more information