chiark / gitweb /
Vladimír Vondruš [Thu, 5 Sep 2019 22:36:07 +0000 (00:36 +0200)]
documentation/python: include documented underscored names.
Vladimír Vondruš [Thu, 5 Sep 2019 18:20:34 +0000 (20:20 +0200)]
documentation/python: don't die on reST errors in pages.
Vladimír Vondruš [Thu, 5 Sep 2019 18:19:25 +0000 (20:19 +0200)]
documentation/python: this copypaste is like a cancer.
Spreads everywhere.
Vladimír Vondruš [Wed, 4 Sep 2019 18:37:15 +0000 (20:37 +0200)]
documentation/python: avoid blowing up on __name__ not being an attrib.
Don't want to test for this, seems too obscure.
Vladimír Vondruš [Wed, 4 Sep 2019 18:33:36 +0000 (20:33 +0200)]
documentation/python: handle ... in type annotations.
Until now I didn't know code like `if annotation is ...` is possible.
What will come next, using // as an operator?!
Vladimír Vondruš [Wed, 4 Sep 2019 18:28:58 +0000 (20:28 +0200)]
documentation/python: gracefully handle nested annotation parsing failures.
Vladimír Vondruš [Wed, 4 Sep 2019 18:21:43 +0000 (20:21 +0200)]
documentation/python: don't be so enthusiastic with pybind sig matching.
Vladimír Vondruš [Wed, 4 Sep 2019 18:19:50 +0000 (20:19 +0200)]
documentation/python: test for false positives for pybind signatures.
This blows up. Heh.
Vladimír Vondruš [Wed, 4 Sep 2019 18:17:38 +0000 (20:17 +0200)]
documentation/python: try not to use `type` for a variable name.
I wanted to check a type of a variable there.
Vladimír Vondruš [Wed, 4 Sep 2019 18:16:53 +0000 (20:16 +0200)]
documentation/doxygen: don't use entity if it fails to be found.
Vladimír Vondruš [Wed, 4 Sep 2019 18:16:24 +0000 (20:16 +0200)]
m.code: doc++
Be consistent with the actual output.
Vladimír Vondruš [Tue, 3 Sep 2019 21:38:47 +0000 (23:38 +0200)]
m.code: ability to apply filters before/after the code is highlighted.
Vladimír Vondruš [Tue, 3 Sep 2019 19:57:59 +0000 (21:57 +0200)]
plugins: don't implicitly depend on Pelican.
Only when those actually get used from Pelican.
Vladimír Vondruš [Tue, 3 Sep 2019 18:20:01 +0000 (20:20 +0200)]
documentation/python: use an ellipsis for overly large values.
Vladimír Vondruš [Tue, 3 Sep 2019 18:19:28 +0000 (20:19 +0200)]
doc: the Python doc generator is not experimental anymore.
Vladimír Vondruš [Fri, 30 Aug 2019 18:36:10 +0000 (20:36 +0200)]
m.sphinx: ignore duplicate entries in intersphinx inventories.
The "index" is the main offender.
Vladimír Vondruš [Fri, 30 Aug 2019 17:59:08 +0000 (19:59 +0200)]
documentation/python: ensure relative includes work in parsed docs.
This is quite bad, but ... at least something.
Vladimír Vondruš [Fri, 30 Aug 2019 17:10:51 +0000 (19:10 +0200)]
documentation/python: add a NAME_MAPPING config option.
Vladimír Vondruš [Fri, 30 Aug 2019 16:33:05 +0000 (18:33 +0200)]
documentation/python: minor naming cleanup.
Vladimír Vondruš [Fri, 30 Aug 2019 16:26:18 +0000 (18:26 +0200)]
documentation/python, m.sphinx: support for external enum value docs.
Vladimír Vondruš [Fri, 30 Aug 2019 14:13:29 +0000 (16:13 +0200)]
m.sphinx: more convenient module/class data and properties documentation.
Sometimes all you need is just a summary. Discovered during a port of a
larger project, writing all those fully-qualified .. py:property:: for all
members got boring *really* fast.
Vladimír Vondruš [Fri, 30 Aug 2019 14:00:00 +0000 (16:00 +0200)]
m.sphinx: extended the section about by-design restrictions.
Vladimír Vondruš [Fri, 30 Aug 2019 12:59:21 +0000 (14:59 +0200)]
documentation/python: less responsibility on docstring-processing plugins.
Until now, the plugin was expected to fill both summary and content for
the symbol it's ccalled on. THat made plugin implementation harder than it
should be, causing a lot of code duplication and explosion of testing
effort.
Now the script simply sills in summary / content if it isn't there after
all processing and that's it. No asserts anymore.
Vladimír Vondruš [Fri, 30 Aug 2019 12:47:58 +0000 (14:47 +0200)]
documentation/python: consistently use a single way to render Jinja pages.
Otherwise I forget to specify important variables or do other critical
mistakes.
Vladimír Vondruš [Thu, 29 Aug 2019 08:35:01 +0000 (10:35 +0200)]
documentation/python: the feeling when you invert an important condition.
This was supposed to check that I was always specifying the version. Well,
it failed to check, and I failed to specify the version properly in all
cases.
Vladimír Vondruš [Wed, 28 Aug 2019 22:43:11 +0000 (00:43 +0200)]
documentation/python: implement a bunch of tricks for attrs.
Workarounds! Hacks! Smelly code!
Vladimír Vondruš [Wed, 28 Aug 2019 22:32:01 +0000 (00:32 +0200)]
documentation/python: properly shrink first column also with skipped self.
This will break if the docs skip undocumented parameters, but since that's
technically an error, I don't care.
Vladimír Vondruš [Wed, 28 Aug 2019 21:58:46 +0000 (23:58 +0200)]
documentation/python: don't forget to handle scope for slots as well.
Vladimír Vondruš [Wed, 28 Aug 2019 20:31:29 +0000 (22:31 +0200)]
m.sphinx: added a :p: role for parameter referencing.
So tiny yet so useful. Doxygen, take a note.
Vladimír Vondruš [Wed, 28 Aug 2019 20:09:37 +0000 (22:09 +0200)]
documentation/python: implement scope enter/exit hooks.
With this we can have relative links for *everything*.
Vladimír Vondruš [Wed, 28 Aug 2019 19:20:04 +0000 (21:20 +0200)]
documentation/python: minor cleanup, naming consistency.
Vladimír Vondruš [Wed, 28 Aug 2019 17:43:18 +0000 (19:43 +0200)]
documentation/python: dying on each error isn't nice.
Vladimír Vondruš [Wed, 28 Aug 2019 16:08:38 +0000 (18:08 +0200)]
documentation/python: AAAAHHHH.
The test failure from the previous commit is no more.
Vladimír Vondruš [Wed, 28 Aug 2019 16:07:27 +0000 (18:07 +0200)]
documentation/python: test external summary for a submodule.
Fails. It's amazing how far can some bugs go unnoticed.
Vladimír Vondruš [Wed, 28 Aug 2019 14:01:24 +0000 (16:01 +0200)]
documentation/python, m.sphinx: hook for parsing docstrings.
Centuries of work and research later, this gem is done. Yay!
Vladimír Vondruš [Wed, 28 Aug 2019 14:02:33 +0000 (16:02 +0200)]
m.sphinx: don't overwrite the docs gathered so far.
This won't work well when more plugins are involved or the directives are
used to parse docstrings. Also updated the plugin docs to not suggest this
practice.
Vladimír Vondruš [Wed, 28 Aug 2019 13:54:43 +0000 (15:54 +0200)]
doc: improve the python docstring info.
Vladimír Vondruš [Wed, 28 Aug 2019 13:36:38 +0000 (15:36 +0200)]
doc: move python documentation plugin internal docs later in the page.
These are not so useful for users, and the stuff that followed them was
too buried.
Vladimír Vondruš [Wed, 28 Aug 2019 12:14:48 +0000 (14:14 +0200)]
documentation/python: minor cleanup.
Vladimír Vondruš [Wed, 28 Aug 2019 12:10:25 +0000 (14:10 +0200)]
documentation/python: fix a copypasta in a test.
Vladimír Vondruš [Tue, 27 Aug 2019 21:54:02 +0000 (23:54 +0200)]
documentation/python: unconditionally go through reST for everything.
Well, of course not forcing reST formatting on plain docstrings -- just
having a single code path because that makes integrating 3rd party
processing easier. Results in absolutely no changes to test files, which
is absolutely amazing.
Vladimír Vondruš [Tue, 27 Aug 2019 21:32:34 +0000 (23:32 +0200)]
documentation/python: support documenting particular function overloads.
Vladimír Vondruš [Tue, 27 Aug 2019 21:02:30 +0000 (23:02 +0200)]
documentation/python: include params in search only for overloads.
And not unconditionally for all pybind functions. Makes the search data
lighter and is more consistent with pure Python code (and with the future
support for the @overload decorator).
Vladimír Vondruš [Tue, 27 Aug 2019 20:42:51 +0000 (22:42 +0200)]
documentation/python: detect overloaded functions already at crawl time.
But don't change the behavior in any way -- just that the consumers should
be aware of the distinction.
Vladimír Vondruš [Tue, 27 Aug 2019 20:34:03 +0000 (22:34 +0200)]
documentation/python: poison entry types that shouldn't go into search.
Spent a while using OVERLOADED_FUNCTION in a few places just to discover
it wasn't meant to be used there.
Vladimír Vondruš [Tue, 27 Aug 2019 20:09:59 +0000 (22:09 +0200)]
documentation/python: provide both type and type with links everywhere.
Makes it possible for templates to use those in different cases (such as
link alt text) and also unblocks the possibility to have separate docs for
function overloads (in the next commits).
Vladimír Vondruš [Tue, 27 Aug 2019 19:13:21 +0000 (21:13 +0200)]
documentation/python: special handling for self only if it's first.
I doubt anyone sane will name any other function parameters like that, but
let's be sure.
Vladimír Vondruš [Tue, 27 Aug 2019 18:47:01 +0000 (20:47 +0200)]
documentation/python: don't annotate free pybind function as staticmethods.
Wasn't visible in the output until now because we didn't have detailed
docs for those. But now it will be.
Vladimír Vondruš [Tue, 27 Aug 2019 11:14:21 +0000 (13:14 +0200)]
documentation/python: parse more than just first docstring paragraph.
Next step is to allow those to get processed using plugins.
Vladimír Vondruš [Tue, 27 Aug 2019 11:09:50 +0000 (13:09 +0200)]
documentation/python: minor cleanup.
Vladimír Vondruš [Tue, 27 Aug 2019 11:08:07 +0000 (13:08 +0200)]
documentation/python: verify that HTML escaping is done for pybind as well.
It is, even though I felt like it wasn't. Good to have to avoid
double-escaping accidents in the future.
Vladimír Vondruš [Tue, 27 Aug 2019 10:16:13 +0000 (12:16 +0200)]
documentation/python: whoops, enum detailed docs weren't rendered.
Vladimír Vondruš [Sun, 25 Aug 2019 11:16:19 +0000 (13:16 +0200)]
doc: fix for order-dependent processing, again.
Vladimír Vondruš [Sun, 25 Aug 2019 10:45:56 +0000 (12:45 +0200)]
theme: no, this PR is still not merged yet.
Vladimír Vondruš [Sun, 25 Aug 2019 10:45:02 +0000 (12:45 +0200)]
m.sphinx: ugh, I still need to support Python 3.5.
Vladimír Vondruš [Sun, 25 Aug 2019 10:27:05 +0000 (12:27 +0200)]
m.sphinx: ability to create intersphinx inventories as well.
Vladimír Vondruš [Sun, 25 Aug 2019 08:49:17 +0000 (10:49 +0200)]
m.sphinx: utility to pretty-print the inventory files.
The builtin sphinx tool is beyond useless. FFS.
Vladimír Vondruš [Sat, 24 Aug 2019 16:20:26 +0000 (18:20 +0200)]
m.dot: doc++
Vladimír Vondruš [Sat, 24 Aug 2019 16:13:15 +0000 (18:13 +0200)]
documentation/python: implement context-relative linking.
I didn't change much, but the amount of research needed to verify that I'm
indeed doing it (mostly) correct was extreme. There's a pathological case
inside a named subclass where I'm doing it differently than Python itself,
but I don't expect this to be hit very often, so postponing until later.
The tests also assert inside the function definitions (and those functions
get called) to verify we're indeed doing (mostly) correct stuff.
Vladimír Vondruš [Sat, 24 Aug 2019 07:50:22 +0000 (09:50 +0200)]
documentation/python: correctly link all type annotations as well.
Vladimír Vondruš [Fri, 23 Aug 2019 13:58:23 +0000 (15:58 +0200)]
documentation/python: prefix pybind's annotations with the typing module.
So it's consistent with pure Python annotations.
Vladimír Vondruš [Thu, 22 Aug 2019 22:36:17 +0000 (00:36 +0200)]
documentation/python: integrate tighter with m.sphinx.
The :ref: from m.sphinx can now link to internal types, while external
types provided by m.sphinx are now also linked to from all signatures.
Yay, I'm so happy about the design of this.
Vladimír Vondruš [Sat, 24 Aug 2019 20:25:07 +0000 (22:25 +0200)]
documentation/python: add implicit kwargs to all plugin hooks.
So they are future-proofed when new arguments are added. Need also *args
because pelican passes things unnamed.
Vladimír Vondruš [Thu, 22 Aug 2019 21:00:37 +0000 (23:00 +0200)]
documentation/python: added a post-crawl hook and exposed name map.
So m.sphinx can use it to add the internal names to its own search index
and also make an inventory for it.
Vladimír Vondruš [Fri, 23 Aug 2019 12:51:27 +0000 (14:51 +0200)]
documentation/python: yup, yet another variant of builtin math docstrings.
Vladimír Vondruš [Fri, 23 Aug 2019 12:38:49 +0000 (14:38 +0200)]
documentation/python: save URL to all entries to make linking easier.
Vladimír Vondruš [Fri, 23 Aug 2019 13:45:20 +0000 (15:45 +0200)]
documentation/python: revisit None in function return type annotations.
Until now it was ignored in pybind return annotations as it seemed to be
superfluous. OTOH, while the pybind function is fully annotated, it's
often not clear which function comes from pybind and which from pure
python code, meaning it's not clear if the return type is None or the
return type annotation is just missing.
Additionally, the pure python annotations were showing None as NoneType,
which is too verbose. According to PEP484 type(None) and None are
equivalent, so patching the output to show None instead of NoneType,
making it also consistent with pybind.
Vladimír Vondruš [Sat, 24 Aug 2019 16:20:52 +0000 (18:20 +0200)]
documentation/python: thanks to fixed reST higlighting I see this is dead.
Vladimír Vondruš [Thu, 22 Aug 2019 21:02:12 +0000 (23:02 +0200)]
documentation/python: bad documentation copypaste? probably.
Vladimír Vondruš [Thu, 22 Aug 2019 20:24:04 +0000 (22:24 +0200)]
documentation/python: minor cleanup.
Vladimír Vondruš [Thu, 22 Aug 2019 20:20:39 +0000 (22:20 +0200)]
m.dox: minor cleanup.
Vladimír Vondruš [Thu, 22 Aug 2019 20:19:41 +0000 (22:19 +0200)]
m.code, m.math: test & fix nested backticks in interpreted roles.
Broken when fixing backslash support.
Vladimír Vondruš [Thu, 22 Aug 2019 20:19:03 +0000 (22:19 +0200)]
m.dox: doc++
Vladimír Vondruš [Thu, 22 Aug 2019 20:18:12 +0000 (22:18 +0200)]
m.sphinx: implement intersphinx read support.
Intersphinx write support next.
Vladimír Vondruš [Thu, 22 Aug 2019 13:34:49 +0000 (15:34 +0200)]
documentation/python: implement documenting function params and return.
Did not expect I would need to patch Docutils for this because nobody had
this use case since its initial commit in 2002. How the heck is Sphinx
doing this, are they replacing Docutils internals too?!
Vladimír Vondruš [Wed, 21 Aug 2019 11:41:45 +0000 (13:41 +0200)]
documentation: add an actual diagnostic to this assert.
Seems to be hit quite often, so make it helpful.
Vladimír Vondruš [Sat, 3 Aug 2019 10:53:41 +0000 (12:53 +0200)]
css: make .m-diary left padding large enough to fit a short date as well.
And remove the extraneous margin -- which basically makes it look
roughly the same as before, but without uglily wrapped things.
Vladimír Vondruš [Thu, 18 Jul 2019 18:57:23 +0000 (20:57 +0200)]
Doc++
Vladimír Vondruš [Thu, 18 Jul 2019 18:43:44 +0000 (20:43 +0200)]
documentation/python: added TODOs for enum value docs.
Vladimír Vondruš [Thu, 18 Jul 2019 18:42:44 +0000 (20:42 +0200)]
documentation/python: support external docs for all stuff.
And also detailed docs for enums, functions, properties and data.
Vladimír Vondruš [Thu, 18 Jul 2019 18:37:24 +0000 (20:37 +0200)]
doc: remove outdated / redundant info.
Vladimír Vondruš [Thu, 18 Jul 2019 17:30:10 +0000 (19:30 +0200)]
documentation/python: um, why don't I use a function here?
Vladimír Vondruš [Thu, 18 Jul 2019 16:18:31 +0000 (18:18 +0200)]
Add file encoding to .editorconfig.
Vladimír Vondruš [Thu, 18 Jul 2019 16:15:06 +0000 (18:15 +0200)]
doc: Python doc generator *can* search now.
Vladimír Vondruš [Thu, 18 Jul 2019 15:56:25 +0000 (17:56 +0200)]
documentation/doxygen: fix last remaining use of deprecated name attrib.
Vladimír Vondruš [Thu, 18 Jul 2019 08:45:48 +0000 (10:45 +0200)]
documentation/python: hook up the search.
Vladimír Vondruš [Thu, 18 Jul 2019 15:24:50 +0000 (17:24 +0200)]
documentation: trim spaces from the right only if nothing is found.
With unconditional trimming it was not possible to narrow down results
for page titles containing spaces (or subpages, which are separated by
double right arrow surrounded by spaces).
Vladimír Vondruš [Thu, 18 Jul 2019 15:23:54 +0000 (17:23 +0200)]
documentation: reuse the saved searched string instead of creating it again.
This avoids duplicating the trimming/decoding logic.
Vladimír Vondruš [Thu, 18 Jul 2019 15:21:01 +0000 (17:21 +0200)]
documentation: provide autocompletion in UTF-8 as well.
The search() function returns the result list in UTF-8, but the
autocompletion was not. And of course renderResults() assumed it was in
UTF-8 and decoded it from UTF-8 *twice*. This wasn't discovered until
now because I had no pages with UTF-8 names apart from the test (which
doesn't test the UI stuff).
Vladimír Vondruš [Thu, 18 Jul 2019 15:17:40 +0000 (17:17 +0200)]
documentation/doxygen: insert also pages with all prefixes.
Not sure why there was an exception. This makes it practically
impossible to search for subpages.
Vladimír Vondruš [Thu, 18 Jul 2019 14:28:12 +0000 (16:28 +0200)]
css: highlight active documentation entries the same as sections.
For Python code, many names will have just the entry without any
detailed docs and it's hard to see where on the page it is if it's not
selected. The same works for Doxygen, of course.
Vladimír Vondruš [Thu, 18 Jul 2019 14:27:18 +0000 (16:27 +0200)]
documentation/doxygen: move entry ID to the <dt> element.
And it's no longer the deprecated name attribute, but rather an id.
Vladimír Vondruš [Thu, 18 Jul 2019 14:01:57 +0000 (16:01 +0200)]
documentation/python: move entry ID to the <dt> element.
Fancy new stuff incoming!
Vladimír Vondruš [Thu, 18 Jul 2019 13:24:55 +0000 (15:24 +0200)]
documentation: trim overly long search results even more.
The function name should be shown fully, ideally together with a
recognizable prefix.
Vladimír Vondruš [Thu, 18 Jul 2019 11:30:59 +0000 (13:30 +0200)]
documentation: properly show 100+ when having more results that can fit.
This got accidentally broken in
8bdb844ceb547d8ca3156ef815de9603e51a598a
when implementing the Tab autocompletion. Unfortunately I can't really
auto-test the UI code :/
Vladimír Vondruš [Thu, 18 Jul 2019 11:18:12 +0000 (13:18 +0200)]
documentation: re-render symbol count if search box gets shown again.
The (stale) count of found symbols was preserved there even though the
search box got emptied again. Also deduplicated the code a bit.
Vladimír Vondruš [Thu, 18 Jul 2019 10:55:59 +0000 (12:55 +0200)]
documentation: make it possible to have more than 128 results for a node.
Python's __init__ is the main offender, the (currently very barebone)
Magnum Python bindings have 340 results for __init__. This change is
based on the assumption that nodes with extreme amount of results on the
other hand don't have many children, so we can steal some bits from the
child count instead. Now it's either up to 127 results and up to 127
children or up to 2048 results and 16 children.
Vladimír Vondruš [Thu, 18 Jul 2019 10:51:23 +0000 (12:51 +0200)]
documentation: doc++
Vladimír Vondruš [Thu, 18 Jul 2019 09:24:04 +0000 (11:24 +0200)]
documentation: make the general search tests backend-independent.
It stays C++-specific, but since the implementation doesn't care about
the language, it's okay.
Vladimír Vondruš [Thu, 18 Jul 2019 08:48:18 +0000 (10:48 +0200)]
documentation/python: wtf, why None and why not [].
This was *sometimes* failing during the test, with Jinja complaining
that None is not iterable. But not all the time, for some reason.