Initial aproach to generate docs
This commit is contained in:
parent
954f36b6a0
commit
8d3ea2ff1e
|
@ -0,0 +1,132 @@
|
||||||
|
---
|
||||||
|
- module_name: client
|
||||||
|
doc: >
|
||||||
|
|
||||||
|
# - CLASSES ------------------------------
|
||||||
|
classes:
|
||||||
|
- class_name: Client
|
||||||
|
doc: >
|
||||||
|
Client used to connect to a Carla server
|
||||||
|
|
||||||
|
# - PROPERTIES -------------------------
|
||||||
|
instance_variables:
|
||||||
|
|
||||||
|
# - METHODS ----------------------------
|
||||||
|
methods:
|
||||||
|
- def_name: __init__
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
- param_name: host
|
||||||
|
type: str
|
||||||
|
doc: >
|
||||||
|
IP where Carla is running
|
||||||
|
- param_name: port
|
||||||
|
type: int
|
||||||
|
doc: >
|
||||||
|
Port where Carla is running
|
||||||
|
- param_name: worker_threads
|
||||||
|
type: int
|
||||||
|
default: 0
|
||||||
|
doc: >
|
||||||
|
Number of working threads
|
||||||
|
doc: >
|
||||||
|
Client constructor
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: set_timeout
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
- param_name: seconds
|
||||||
|
type: float
|
||||||
|
doc: >
|
||||||
|
New timeout value in seconds
|
||||||
|
doc: >
|
||||||
|
Sets the server timeout in seconds
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: get_client_version
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
return: str
|
||||||
|
doc: >
|
||||||
|
Get the client version as a string
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: get_server_version
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
return: str
|
||||||
|
doc: >
|
||||||
|
Get the server version as a string
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: get_world
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
Get the server version as a string
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: get_available_maps
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: reload_world
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: load_world
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
- param_name: map_name
|
||||||
|
type: str
|
||||||
|
doc: >
|
||||||
|
Name of the map to load
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: start_recorder
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
- param_name: filename
|
||||||
|
type: str
|
||||||
|
doc: >
|
||||||
|
Name of the recorder file to load
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: stop_recorder
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: show_recorder_file_info
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: show_recorder_collisions
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: show_recorder_actors_blocked
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: replay_file
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: set_replayer_time_factor
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: apply_batch
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: apply_batch_sync
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
...
|
|
@ -0,0 +1,128 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de
|
||||||
|
# Barcelona (UAB).
|
||||||
|
#
|
||||||
|
# This work is licensed under the terms of the MIT license.
|
||||||
|
# For a copy, see <https://opensource.org/licenses/MIT>.
|
||||||
|
|
||||||
|
import os
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
class MarkdownFile:
|
||||||
|
def __init__(self):
|
||||||
|
self._data = ""
|
||||||
|
self._list_depth = 0
|
||||||
|
self.endl = ' \n'
|
||||||
|
|
||||||
|
def data(self):
|
||||||
|
return str(self._data)
|
||||||
|
|
||||||
|
def push_list(self):
|
||||||
|
self._list_depth = (self._list_depth + 1)
|
||||||
|
|
||||||
|
def pop_list(self):
|
||||||
|
self._list_depth = max(self._list_depth - 1, 0)
|
||||||
|
|
||||||
|
def list_depth(self):
|
||||||
|
if self._list_depth == 0:
|
||||||
|
return ''
|
||||||
|
return ''.join([' ' * (self._list_depth + 1)])
|
||||||
|
|
||||||
|
def list_item(self, buf):
|
||||||
|
self._data = ''.join([self._data, self.list_depth()[:-2], '* ', buf])
|
||||||
|
|
||||||
|
def numeric_list_item(self, buf):
|
||||||
|
self._data = ''.join([self._data, self.list_depth(), '1. ', buf])
|
||||||
|
|
||||||
|
def text(self, buf):
|
||||||
|
self._data = ''.join([self._data, self.list_depth(), buf])
|
||||||
|
|
||||||
|
def title(self, strongness, buf):
|
||||||
|
self._data = ''.join([
|
||||||
|
self._data, '\n', self.list_depth(), '#' * strongness, ' ', buf, '\n'])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def italic(cls, buf):
|
||||||
|
return ''.join(['_', buf, '_'])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def bold(cls, buf):
|
||||||
|
return ''.join(['**', buf, '**'])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def code(cls, buf):
|
||||||
|
return ''.join(['`', buf, '`'])
|
||||||
|
|
||||||
|
def code_block(self, buf, language=''):
|
||||||
|
return ''.join(['```', language, '\n', self.list_depth(), buf, '\n', self.list_depth(), '```\n'])
|
||||||
|
|
||||||
|
|
||||||
|
class YamlIO:
|
||||||
|
"""YAML loader and writer"""
|
||||||
|
|
||||||
|
def __init__(self, file_path):
|
||||||
|
"""Constructor that loads the yaml file"""
|
||||||
|
with open(file_path) as yaml_file:
|
||||||
|
self.data = yaml.safe_load(yaml_file)
|
||||||
|
|
||||||
|
def gen_markdown(self):
|
||||||
|
"""Generates the markdown file"""
|
||||||
|
md_data = ''
|
||||||
|
for module in self.data:
|
||||||
|
# print('Generating module: ' + module['module_name'])
|
||||||
|
md = MarkdownFile()
|
||||||
|
if module['classes']:
|
||||||
|
for c in module['classes']:
|
||||||
|
class_name = c['class_name']
|
||||||
|
doc = c['doc']
|
||||||
|
variables = c['instance_variables']
|
||||||
|
methods = c['methods']
|
||||||
|
|
||||||
|
md.title(2, ''.join([md.italic('class'), ' ', md.code('carla.' + class_name)]))
|
||||||
|
md.text(doc)
|
||||||
|
|
||||||
|
if variables:
|
||||||
|
md.title(4, 'Instance Variables')
|
||||||
|
md.push_list()
|
||||||
|
for var in variables:
|
||||||
|
md.list_item(''.join([md.code(var['var_name']), md.endl]))
|
||||||
|
md.text(var['doc'])
|
||||||
|
md.pop_list()
|
||||||
|
|
||||||
|
if methods:
|
||||||
|
md.title(4, 'Methods')
|
||||||
|
md.push_list()
|
||||||
|
for m in methods:
|
||||||
|
param = ''
|
||||||
|
for p in m['params']:
|
||||||
|
p_type = ''.join([': ', str(p['type'])]) if 'type' in p else ''
|
||||||
|
default = ''.join([' = ', str(p['default'])]) if 'default' in p else ''
|
||||||
|
param = ''.join([param, p['param_name'], p_type, default, ', '])
|
||||||
|
param = param[:-2] # delete the last ', '
|
||||||
|
return_type = ''.join([' -> ', m['return']]) if 'return' in m else ''
|
||||||
|
md.list_item(''.join([md.code(''.join([m['def_name'], '(', param, ')', return_type])), md.endl]))
|
||||||
|
if 'doc' in m and m['doc'] is not '':
|
||||||
|
doc = m['doc'].strip()
|
||||||
|
md.text(''.join([doc, md.endl]))
|
||||||
|
md.pop_list()
|
||||||
|
md_data = ''.join([md_data, md.data().strip()])
|
||||||
|
return md_data
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Main function"""
|
||||||
|
script_path = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
yml_files = [f for f in os.listdir(script_path) if f.endswith('.yml')]
|
||||||
|
|
||||||
|
data = ''
|
||||||
|
|
||||||
|
for yml_file in yml_files:
|
||||||
|
yml = YamlIO(os.path.join(script_path, yml_file))
|
||||||
|
data = '\n\n'.join([data, yml.gen_markdown()])
|
||||||
|
data = data.strip()
|
||||||
|
with open(os.path.join(script_path, 'Output.md'), 'w') as md_file:
|
||||||
|
md_file.write(data)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
- module_name: map
|
||||||
|
doc: >
|
||||||
|
|
||||||
|
# - CLASSES ------------------------------
|
||||||
|
classes:
|
||||||
|
- class_name: Map
|
||||||
|
doc: >
|
||||||
|
Map description that provides a waypoint query system
|
||||||
|
|
||||||
|
# - PROPERTIES -------------------------
|
||||||
|
instance_variables:
|
||||||
|
- var_name: name
|
||||||
|
doc: >
|
||||||
|
Map name
|
||||||
|
|
||||||
|
# - METHODS ----------------------------
|
||||||
|
methods:
|
||||||
|
- def_name: get_spawn_points
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: get_waypoint
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: get_topology
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: generate_waypoints
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: transform_to_geolocation
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: to_opendrive
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
doc: >
|
||||||
|
# --------------------------------------
|
||||||
|
- def_name: save_to_disk
|
||||||
|
params:
|
||||||
|
- param_name: self
|
||||||
|
- param_name: path
|
||||||
|
doc: >
|
||||||
|
Path where will be saved
|
||||||
|
doc: >
|
||||||
|
Save the OpenDrive of the current map to disk
|
Loading…
Reference in New Issue