chiark / gitweb /
documentation/python: try breaking the pybind11 docstring parser.
authorVladimír Vondruš <mosra@centrum.cz>
Wed, 5 Jan 2022 21:43:06 +0000 (22:43 +0100)
committerVladimír Vondruš <mosra@centrum.cz>
Wed, 5 Jan 2022 21:59:14 +0000 (22:59 +0100)
Yeah, not really great.

documentation/test_python/pybind_signatures/pybind_signatures.cpp
documentation/test_python/pybind_signatures/pybind_signatures.html

index 1298708dcd13e883d2b282881e7defd21db35002..bc8c9c345c1b363c57997179879bd54dbd9eef5b 100644 (file)
@@ -79,7 +79,17 @@ PYBIND11_MODULE(pybind_signatures, m) {
 
         .def("full_docstring", &voidFunction, R"(A summary
 
-And a larger docstring as well.)");
+And a larger docstring as well.)")
+        .def("full_docstring_overloaded", &tenOverloads<int, int>, R"(An overload summary
+
+This function takes a value of 2. full_docstring_overloaded(a: float, b: float)
+takes just 3 instead.)")
+        .def("full_docstring_overloaded", &tenOverloads<float, float>, R"(Another overload summary
+
+This overload, however, takes just a 32-bit (or 64-bit) floating point value of
+3. full_docstring_overloaded(a: int, b: int)
+takes just 2. There's nothing for 4. full_docstring_overloaded(a: poo, b: foo)
+could be another, but it's not added yet.)");
 
     py::class_<MyClass>(m, "MyClass", "My fun class!")
         .def_static("static_function", &MyClass::staticFunction, "Static method with positional-only args")
index b4095cdcaa8861663958e5da8bf8d8dbde73574e..687d6b00b55906330e27433c205a579caebf04e2 100644 (file)
               <span class="m-doc-wrap-bumper">def <a href="#full_docstring" class="m-doc">full_docstring</a>(</span><span class="m-doc-wrap">arg0: int<span class="m-text m-dim">, /</span>) -&gt; None</span>
             </dt>
             <dd>A summary</dd>
+            <dt>
+              <span class="m-doc-wrap-bumper">def <a href="#full_docstring_overloaded-e9329" class="m-doc">full_docstring_overloaded</a>(</span><span class="m-doc-wrap">arg0: int,
+              arg1: int<span class="m-text m-dim">, /</span>) -&gt; None</span>
+            </dt>
+            <dd>An overload summary</dd>
+            <dt>
+              <span class="m-doc-wrap-bumper">def <a href="#full_docstring_overloaded-fe11a" class="m-doc">full_docstring_overloaded</a>(</span><span class="m-doc-wrap">arg0: float,
+              arg1: float<span class="m-text m-dim">, /</span>) -&gt; None</span>
+            </dt>
+            <dd>Another overload summary</dd>
             <dt id="overloaded-46f8a">
               <span class="m-doc-wrap-bumper">def <a href="#overloaded-46f8a" class="m-doc-self">overloaded</a>(</span><span class="m-doc-wrap">arg0: int<span class="m-text m-dim">, /</span>) -&gt; str</span>
             </dt>
             <p>A summary</p>
 <p>And a larger docstring as well.</p>
           </div></section>
+          <section class="m-doc-details" id="full_docstring_overloaded-e9329"><div>
+            <h3>
+              <span class="m-doc-wrap-bumper">def pybind_signatures.<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#full_docstring_overloaded-e9329" class="m-doc-self">full_docstring_overloaded</a>(</span><span class="m-doc-wrap">arg0: int,
+              arg1: int<span class="m-text m-dim">, /</span>) -&gt; None</span></span>
+            </h3>
+            <p>An overload summary</p>
+<p>This function takes a value of 2. full_docstring_overloaded(a: float, b: float)
+takes just 3 instead.</p>
+          </div></section>
+          <section class="m-doc-details" id="full_docstring_overloaded-fe11a"><div>
+            <h3>
+              <span class="m-doc-wrap-bumper">def pybind_signatures.<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#full_docstring_overloaded-fe11a" class="m-doc-self">full_docstring_overloaded</a>(</span><span class="m-doc-wrap">arg0: float,
+              arg1: float<span class="m-text m-dim">, /</span>) -&gt; None</span></span>
+            </h3>
+            <p>Another overload summary</p>
+<p>This overload, however, takes just a 32-bit (or 64-bit) floating point value of
+3. full_docstring_overloaded(a: int, b: int)
+takes just 2. There&#x27;s nothing for 4. full_docstring_overloaded(a: poo, b: foo)
+could be another, but it&#x27;s not added yet.</p>
+          </div></section>
         </section>
       </div>
     </div>