print_doc.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_BINDINGS_PYTHON_PRINT_DOC_HPP
13 #define MLPACK_BINDINGS_PYTHON_PRINT_DOC_HPP
14 
15 #include <mlpack/prereqs.hpp>
17 #include "get_printable_type.hpp"
18 
19 namespace mlpack {
20 namespace bindings {
21 namespace python {
22 
35 template<typename T>
36 void PrintDoc(const util::ParamData& d,
37  const void* input,
38  void* /* output */)
39 {
40  const size_t indent = *((size_t*) input);
41  std::ostringstream oss;
42  oss << " - ";
43  if (d.name == "lambda") // Don't print Python keywords.
44  oss << d.name << "_ (";
45  else
46  oss << d.name << " (";
47  oss << GetPrintableType<typename std::remove_pointer<T>::type>(d) << "): "
48  << d.desc;
49 
50  // Print a default, if possible.
51  if (!d.required)
52  {
53  // Call the correct overload to get the default value directly.
54  if (d.cppType == "std::string" || d.cppType == "double" ||
55  d.cppType == "int" || d.cppType == "std::vector<int>" ||
56  d.cppType == "std::vector<std::string>" ||
57  d.cppType == "std::vector<double>")
58  {
59  std::string defaultValue = DefaultParamImpl<T>(d);
60  oss << " Default value " << defaultValue << ".";
61  }
62  }
63 
64  std::cout << util::HyphenateString(oss.str(), indent + 4);
65 }
66 
67 } // namespace python
68 } // namespace bindings
69 } // namespace mlpack
70 
71 #endif
strip_type.hpp
Definition: add_to_po.hpp:21
void PrintDoc(const util::ParamData &d, const void *input, void *)
Print the docstring documentation for a given parameter.
Definition: print_doc.hpp:36
The core includes that mlpack expects; standard C++ includes and Armadillo.
std::string desc
Description of this parameter, if any.
Definition: param_data.hpp:58
python
Definition: CMakeLists.txt:4
This structure holds all of the information about a single parameter, including its value (which is s...
Definition: param_data.hpp:52
std::string name
Name of this parameter.
Definition: param_data.hpp:56
bool required
True if this option is required.
Definition: param_data.hpp:71
if(BUILD_JULIA_BINDINGS) find_package(Julia 1.3.0) if(NOT JULIA_FOUND) macro(add_julia_binding name) endmacro() return() endif() add_custom_target(julia ALL) add_custom_command(TARGET julia PRE_BUILD COMMAND $
Definition: CMakeLists.txt:1
std::string HyphenateString(const std::string &str, int padding)
 * Hyphenate a string or split it onto multiple 80-character lines, with some  * amount of padding on...
std::string cppType
The true name of the type, as it would be written in C++.
Definition: param_data.hpp:84