Hi, Greg,

Here are my comments.


   - Formatting
      - pdoc at a glance is certainly more handsome than epydoc
      - To my eye, there is a huge amount of wasted space in the pdoc
      documentation.
         - The line spacing is hugely disproportional to the font size
         - Maybe this could be adjusted by font and line-spacing options
         - But it's a problem because so little is shown on a page.
      - Documentation hierarchy
      - The ePydoc documentation requires you to drill down an extra level:
         - epydoc: http://rdkit.org/docs/api/rdkit.Chem.AllChem-module.html
            - At the top of this link, you see all the function names
            together, but you have to drill down to see the details of
any particular
            function
         - pdoc: http://rdkit.org/docs_temp/Chem/AllChem.m.html
            - You see each function with its full description at the module
            level.
         - I personally prefer epydoc here, because I usually want to see a
         list of (functions, classes, whatever) at the top level to
figure out what
         I want to drill down to.
         - I'm just a "forest" kind of guy, and would like to pick my tree
         before I see all its gory details.
         - I accept that this might just be personal taste.
      - Code Examples
      - ePydoc shows the code examples correctly; pdoc does not.
         - epydoc: Drilling down,
         
http://rdkit.org/docs/api/rdkit.Chem.AllChem-module.html#AssignBondOrdersFromTemplate,
         consider these lines from the example code:
         - >>>  from rdkit.Chem import AllChem
         >>> template =
         AllChem.MolFromSmiles("CN1C(=NC(C1=O)(c2ccccc2)c3ccccc3)N")
         >>> mol = AllChem.MolFromPDBFile(os.path.join(RDConfig.RDCodeDir,
         'Chem', 'test_data', '4DJU_lig.pdb'))
         >>> len([1 for b in template.GetBonds() if b.GetBondTypeAsDouble()
         == 1.0])
         8
         >>> len([1 for b in mol.GetBonds() if b.GetBondTypeAsDouble() ==
         1.0])
         22
         - This is very legible.
      - pdoc: On the same link we were at before,
      http://rdkit.org/docs_temp/Chem/AllChem.m.html, look at the same code
      example:
         - import os from rdkit.Chem import AllChem template =
         AllChem.MolFromSmiles("CN1C(=NC(C1=O)(c2ccccc2)c3ccccc3)N") mol =
         AllChem.MolFromPDBFile(os.path.join(RDConfig.RDCodeDir, 'Chem',
         'test_data', '4DJU_lig.pdb')) len([1 for b in template.GetBonds() if
         b.GetBondTypeAsDouble() == 1.0]) 8 len([1 for b in mol.GetBonds() if
         b.GetBondTypeAsDouble() == 1.0]) 22
         - Line breaks are not observed; prompts are not observed;
         responses don't appear on their new lines, etc. This is illegible.
         - (There is an additional import statement here. That's not a
         problem, but note that the second import is concatenated on
the same line.)
         - This is unacceptable, but perhaps it can be fixed.
      - Summary
      - The fact that epydoc is no longer supported weighs heavily against
      it
      - If the current examples are as good as pdoc can do, it is
      unsatisfactory, especially because of poor code printing; but there could
      be other tigers lurking in the woods.
      - I feel the wasted space in pdoc due to the huge line spacing is
      pretty bad.
      - pdoc would be worth another look if these issues can be fixed, but
      the a second look would be required, because there could be
other problems
      that are obscured by the above.
      - I like Sphynx, and it would be great if it could be made to work
      with RDKit. (With Google style docstrings!)
      - Either way, I wish the RDKit documentation included the types of
      function arguments and return values, which both Sphynx and epydoc have
      provision for.
         - I assume pdoc has provision for this, too, but if not, that's a
         big negative.
         - Adding documentation of arguments and return values would be a
         big job at this point and isn't part of the current effort;
but I feel it's
         important to pick a documentation tool that would allow this
to be done
         later.


On Wed, Mar 29, 2017 at 12:10 AM, Greg Landrum <greg.land...@gmail.com>
wrote:

> Dear all,
>
> TL;DR
> I'd like to switch to a new system for generating the RDKit Python API
> documentation and I'd like some feedback.
>
> Please take a look at this possible API documentation format:
> http://rdkit.org/docs_temp/
> and let me know if it looks like it looks as useful as the old API doc
> format:
> http://rdkit.org/docs/api/index.html
>
>
> More context:
> The current documentation (http://rdkit.org/docs/api/index.html) is
> generated using epydoc. It's functional, though quite "old school" looking.
> The problem is that epydoc is no longer supported (and hasn't been for
> quite a while) and does not support python3 at all. so I would like to move
> off of it.
>
> In theory the API docs can be generated with Sphinx, which is what I use
> for the rest of the documentation, but I haven't been able to get it
> working correctly with the rdkit.[1]
>
> I've done a bit of looking around and it seems like the closest thing to a
> replacement for epydoc is pdoc (https://github.com/BurntSushi/pdoc). This
> was easy enough to figure out (despite the page hosting its own docs being
> down) and generates documentation for the RDKit API without too much
> trouble. The results (http://rdkit.org/docs_temp/) are certainly more
> modern looking that what epydoc generates and seem to be equally useful.
>
> If anyone has suggestions for other things that I should look at, I would
> be happy to hear them. Constraints there:
> - The system must support extension modules
> - It needs to discovery the things to be documented automatically (i.e. I
> should only have to tell it to document the rdkit module and it figures out
> the rest).
> - Anything that requires changing the actual documentation itself is not a
> viable option.
> - It has to generate HTML
>
>
> Thanks,
> -greg
> [1] The specific problem there is that it seems that sphinx-apidoc does
> not pick up extension modules, which renders the RDKit API docs rather
> sparse and useless. I'd love to find out that this was user error though.
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to