[ 
https://issues.apache.org/jira/browse/BEAM-693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15606272#comment-15606272
 ] 

Marco Buccini edited comment on BEAM-693 at 10/25/16 7:46 PM:
--------------------------------------------------------------

Hello Ahmet,

I have spent some time investigating this issue. I think pydoc is supposed to 
be used exactly as you did, in case you want to have it in a browser. I mean, 
if you run it from a directory, it will show you all the packages installed in 
Python + the .py modules available in that directory. Basically, it tries to 
import your Python modules + the path you are in and recursively all the (sub) 
members of the modules present in that directory.

To quote the docs (https://docs.python.org/2/library/pydoc.html):

> For modules, classes, functions and methods, the displayed documentation is 
> derived from the docstring (i.e. the __doc__ attribute) of the object, and 
> recursively of its documentable members. 

and

> When pydoc generates documentation, it uses the current environment and path 
> to locate modules. Thus, invoking pydoc spam documents precisely the version 
> of the module you would get if you started the Python interpreter and typed 
> import spam.


To answer your question, pydoc is a tiny module, so I am not sure if there is 
really a standard for it. Some projects provide a Jenkins job to generate the 
docs and serve them - after all, they are just HTML files (e.g., pydoc -w `find 
apache_beam -name '*.py'`).
However, I see this less and less happening; now, the de-facto standard is 
read-the-docs, but that requires reStructuredText/Markdown documentation, 
meaning manual documentation, which needs to be kept up-to-date, etc.

PS: If we want to document pydoc in the README, a few lines could be spent to 
mention that python setup.py develop is required (unless the package is 
installed with pip/another method; but it has to be there)


was (Author: makronized):
Hello Ahmet,

I have spent some time investigating this issue. I think pydoc is supposed to 
be used exactly as you did, in case you want to have it in a browser. I mean, 
if you run it from a directory, it will show you all the packages installed in 
Python + the .py modules available in that directory. Basically, it tries to 
import your Python modules + the path you are in and recursively all the (sub) 
members of the modules present in that directory.

To quote the docs (https://docs.python.org/2/library/pydoc.html):

> For modules, classes, functions and methods, the displayed documentation is 
> derived from the docstring (i.e. the __doc__ attribute) of the object, and 
> recursively of its documentable members. 

and

> When pydoc generates documentation, it uses the current environment and path 
> to locate modules. Thus, invoking pydoc spam documents precisely the version 
> of the module you would get if you started the Python interpreter and typed 
> import spam.


To answer your question, pydoc is a tiny module, so I am not sure if there is 
really a standard for it. Some projects provide a Jenkins job to generate the 
docs and serve them - after all, they are just HTML files (e.g., pydoc -w `find 
apache_beam -name '*.py'`).
However, I see this less and less happening; now, the de-facto standard is 
read-the-docs, but that requires reStructuredText/Markdown documentation, 
meaning manual documentation, which needs to be kept up-to-date, etc.



> pydoc is not working
> --------------------
>
>                 Key: BEAM-693
>                 URL: https://issues.apache.org/jira/browse/BEAM-693
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py
>            Reporter: Ahmet Altay
>            Priority: Minor
>
> Repro:
> Start the pydoc server (pydoc -p 8888) and navigate to the apache_beam root:
> http://localhost:8888/apache_beam.html
> Following errors are shown instead of the actual documentation:
> problem in apache_beam - <type 'exceptions.ImportError'>: No module named avro
> problem in apache_beam - <type 'exceptions.ImportError'>: cannot import name 
> coders



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to