Giter Club home page Giter Club logo

doc2dash's People

Contributors

adamtheturtle avatar ambv avatar asherascout avatar ayang avatar dependabot[bot] avatar djc avatar filosottile avatar github-actions[bot] avatar hawkowl avatar henriquebastos avatar hynek avatar jnothman avatar jschueller avatar kapeli avatar laurents avatar pre-commit-ci[bot] avatar reaperhulk avatar ssbarnea avatar waywardmonkeys avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doc2dash's Issues

CMake DocSet search shows release notes documentation instead of command documentation

Prerequisites:
I'm using Dash 2.2.2 on Mac OS X Yosemite 10.10 and have the current CMake (3.1.0) DocSet installed

Steps to reproduce:

  • Open Dash
  • Acivate the Search Field ⌘F
  • Type cmake: if to search for the if command in the CMake documentation

Expected behaviour:
Dash shows the documentation for the if command

Actual behaviour:
Dash shows a syntax entry for the if command in the Release Notes

This misbehaviour can be reproduced with several other searches, e.g. searching for cmake_policy links the documentation for the CMP0052 policy but not for the command itself

XML processing problem?

Trying to create docs for astropy using doc2dash installed under anaconda python on my Mac, I have run into the following problem when running doc2dash:

Traceback (most recent call last):
File "/Users/xxx/anaconda/bin/doc2dash", line 11, in
sys.exit(main())
File "/Users/xxx/anaconda/lib/python2.7/site-packages/doc2dash/main.py", line 108, in main
for entry in doc_parser.parse():
File "/Users/xxx/anaconda/lib/python2.7/site-packages/doc2dash/parsers/sphinx.py", line 40, in parse
for t in _parse_soup(soup):
File "/Users/xxx/anaconda/lib/python2.7/site-packages/doc2dash/parsers/sphinx.py", line 80, in _parse_soup
dd = dt.next_sibling.next_sibling
AttributeError: 'NoneType' object has no attribute ‘next_sibling'

I suspect there is a problem in the HTML formatting of the docs, but any ideas?

six 1.8.0 is installed in my Arch Linux, but six==1.7.3 is required by doc2dash

Hi, I would like to execute doc2dash pgi-docs-gh-pages -d ~/.local/share/zeal/docsets, however, it told me that the python-six's version must be 1.7.3, not the latest version 1.8.1:

Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/pkg_resources.py", line 432, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.4/site-packages/pkg_resources.py", line 741, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.4/site-packages/pkg_resources.py", line 632, in resolve
raise VersionConflict(tmpl % args)
pkg_resources.VersionConflict: six 1.8.0 is installed but six==1.7.3 is required by ['doc2dash']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/doc2dash", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3.4/site-packages/pkg_resources.py", line 2880, in <module>
working_set = WorkingSet._build_master()
File "/usr/lib/python3.4/site-packages/pkg_resources.py", line 434, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python3.4/site-packages/pkg_resources.py", line 447, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3.4/site-packages/pkg_resources.py", line 626, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: six==1.7.3

Any idea? Thank you!

Frozen hard requirements in setup.py break everything

pip is more than happy to write six 1.7.3 to ~/.local, even though it requires 1.10.0, because doc2dash's setup.py specifies == 1.7.3 (though I see that has been bumped to 1.9.0 since the last PyPI update). This resulted in my inability to run pip, and most other Python utilities on my system that require six (until I used python -s -m pip install -U --user --force-reinstall six to force an update).

Is there any way to possibly be a bit more lax in version requirements? doc2dash 2.0.2 seems perfectly happy using six 1.10.0.

Cannot build subtitles for subliminal

I tried to build the docs for subliminal but failed. I was hoping that maybe someone could point me to what I'm doing wrong.

cd subliminal/docs
mkdir html
sphinx-builder . html

returns

Running Sphinx v1.6.2

Exception occurred:
File "conf.py", line 19, in
import sphinx_rtd_theme
ModuleNotFoundError: No module named 'sphinx_rtd_theme'

Am I running sphinx wrong, or does something in subliminal need to be patched?

Can't convert Sphnix docset

Hi, I can't figure out how to convert the latest version of the NetworkX docset (generated using sphnix): http://networkx.readthedocs.io/en/latest/

I downloaded the webpage using this: wget --recursive http://networkx.readthedocs.io/en/latest/

I tried converting using these commands, but all gives the same error…

~/temp/nx2dashdoc
(py35) ❯ doc2dash --name "Networkx2dev" networkx.readthedocs.io
"/Users/allan/temp/nx2dashdoc/networkx.readthedocs.io" does not contain a known documentation format.

~/temp/nx2dashdoc
(py35) ❯ doc2dash --name "Networkx2dev" networkx.readthedocs.io/en
"/Users/allan/temp/nx2dashdoc/networkx.readthedocs.io/en" does not contain a known documentation format.

~/temp/nx2dashdoc
(py35) ❯ doc2dash --name "Networkx2dev" networkx.readthedocs.io/en/latest
"/Users/allan/temp/nx2dashdoc/networkx.readthedocs.io/en/latest" does not contain a known documentation format.

What am I doing wrong?

Also, here's the top four levels of the directory tree:

(py35) ❯ tree -FL 4  # Only descend 4 levels down into the file tree
.
└── networkx.readthedocs.io/
    ├── en/
    │   ├── latest/
    │   │   ├── _images/
    │   │   ├── _modules/
    │   │   ├── _static/
    │   │   ├── bibliography.html
    │   │   ├── developer/
    │   │   ├── download.html
    │   │   ├── examples/
    │   │   ├── gallery.html
    │   │   ├── genindex.html
    │   │   ├── index.html
    │   │   ├── install.html
    │   │   ├── overview.html
    │   │   ├── py-modindex.html
    │   │   ├── reference/
    │   │   ├── search.html
    │   │   ├── test.html
    │   │   └── tutorial/
    │   ├── networkx-1.10/
    │   │   ├── _images/
    │   │   ├── _modules/
    │   │   ├── _static/
    │   │   ├── bibliography.html
    │   │   ├── developer/
    │   │   ├── download.html
    │   │   ├── gallery.html
    │   │   ├── genindex.html
    │   │   ├── index.html
    │   │   ├── install.html
    │   │   ├── overview.html
    │   │   ├── py-modindex.html
    │   │   ├── reference/
    │   │   ├── search.html
    │   │   ├── test.html
    │   │   └── tutorial/
    │   ├── networkx-1.11/
    │   │   ├── _images/
    │   │   ├── _modules/
    │   │   ├── _static/
    │   │   ├── bibliography.html
    │   │   ├── developer/
    │   │   ├── download.html
    │   │   ├── examples/
    │   │   ├── gallery.html
    │   │   ├── genindex.html
    │   │   ├── index.html
    │   │   ├── install.html
    │   │   ├── overview.html
    │   │   ├── py-modindex.html
    │   │   ├── reference/
    │   │   ├── search.html
    │   │   ├── test.html
    │   │   └── tutorial/
    │   └── stable/
    │       ├── _images/
    │       ├── _modules/
    │       ├── _static/
    │       ├── bibliography.html
    │       ├── developer/
    │       ├── download.html
    │       ├── examples/
    │       ├── gallery.html
    │       ├── genindex.html
    │       ├── index.html
    │       ├── install.html
    │       ├── overview.html
    │       ├── py-modindex.html
    │       ├── reference/
    │       ├── search.html
    │       ├── test.html
    │       └── tutorial/
    └── robots.txt

33 directories, 41 files

TypeError: 'NoneType' object is not iterable

When trying to convert the api for Cozmo, the following error occured:

Converting intersphinx docs from "cozmo-api" to "/Users/andy/Library/Application Support/doc2dash/DocSets/cozmo-api.docset".
Parsing documentation...
Traceback (most recent call last):
  File "/Users/andy/anaconda/bin/doc2dash", line 11, in <module>
    sys.exit(main())
  File "/Users/andy/anaconda/lib/python3.5/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/Users/andy/anaconda/lib/python3.5/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/Users/andy/anaconda/lib/python3.5/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/andy/anaconda/lib/python3.5/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/Users/andy/anaconda/lib/python3.5/site-packages/doc2dash/__main__.py", line 136, in main
    for entry in doc_parser.parse():
  File "/Users/andy/anaconda/lib/python3.5/site-packages/doc2dash/parsers/intersphinx.py", line 73, in parse
    read_inventory_v2(inv_f, "", os.path.join)
  File "/Users/andy/anaconda/lib/python3.5/site-packages/sphinx/ext/intersphinx.py", line 85, in read_inventory_v2
    raise ValueError
ValueError
Exception ignored in: <generator object patch_anchors at 0x10ed54990>
Traceback (most recent call last):
  File "/Users/andy/anaconda/lib/python3.5/site-packages/doc2dash/parsers/utils.py", line 136, in patch_anchors
    label='Adding table of contents meta data...') as pbar:
  File "/Users/andy/anaconda/lib/python3.5/site-packages/click/termui.py", line 299, in progressbar
    from ._termui_impl import ProgressBar
  File "/Users/andy/anaconda/lib/python3.5/site-packages/click/_termui_impl.py", line 522, in <module>
    import tty
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 896, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1152, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1120, in _get_spec
TypeError: 'NoneType' object is not iterable

Supporting Sphinx user guides

Sphinx is wont to output most of its documentation under the inventory key 'std:doc' which is currently handled with a KeyError and discarded by doc2dash.

Adding std:doc to INV_TO_TYPE (mapped to 'Guide') at least means these pages can be found in a search within Dash. But it leads to a few issues:

  • The keys in inv['std:doc'] are not the appropriate titles for the documentation pages, as assumed by doc2dash. Rather inv['std:doc'][key][3] contains the title.
  • Pages containing API reference also appear in the guide, which may be inappropriate.
  • Pages in the guide may otherwise be heterogeneous: I would consider typing some documentation as "Sample" rather than "Guide"; and "Tutorial" were such available in Dash.

So:

  • is it worth making the intersphinx converter API more flexible to this case, or should projects be expected to adapt doc2dash to their needs (cf. concerns about use as a library #56, pinned requirements, etc. #54)?
  • is the appropriate API a callback or perhaps regular expression-based rules?

doc2dash seems unhappy with pyOpenSSL's sphinx documentation

Observe:

glyph@milly:~/tmp★ curl -#O https://media.readthedocs.org/htmlzip/pyopenssl/release-0.14/pyopenssl.zip
 ↩ Fri Apr  4 18:00:16 PDT 2014
######################################################################## 100.0%
 ↪ Fri Apr  4 18:00:19 PDT 2014 (★ curl -#O https://media.readthedocs.org/htmlzip/pyopenssl/release-0.14/pyopenssl.zip) (3 seconds elapsed)
glyph@milly:~/tmp★ unzip -q pyopenssl.zip 
 ↩ Fri Apr  4 18:00:35 PDT 2014
 ↪ Fri Apr  4 18:00:35 PDT 2014 (★ unzip -q pyopenssl.zip )
glyph@milly:~/tmp★ doc2dash pyopenssl-release-0.14
 ↩ Fri Apr  4 18:00:42 PDT 2014
Converting sphinx docs from "pyopenssl-release-0.14" to "pyopenssl-release-0.14.docset".
Parsing HTML...
Traceback (most recent call last):
  File "/Users/glyph/Library/Python/2.7/bin/doc2dash", line 11, in <module>
    sys.exit(main())
  File ".../doc2dash/__main__.py", line 108, in main
    for entry in doc_parser.parse():
  File ".../doc2dash/parsers/sphinx.py", line 38, in parse
    raise IOError(errno.ENOENT, 'Essential index file not found.')
IOError: [Errno 2] Essential index file not found.
 ↪ Fri Apr  4 18:00:42 PDT 2014 (★ doc2dash pyopenssl-release-0.14)
[Error: 1]
glyph@milly:~/tmp★ ls pyopenssl-release-0.14
 ↩ Fri Apr  4 18:00:49 PDT 2014
_static     index.html  objects.inv
 ↪ Fri Apr  4 18:00:49 PDT 2014 (★ ls pyopenssl-release-0.14)
glyph@milly:~/tmp★ 

Bump new release on PyPi (without lxml)

Hi, thanks for this project.

You recently dropped dependency over lxml, but it looks like the version hosted at pypi still depends on it:

  • pip install doc2dash wants to install lxml==3.8.0
  • pip install git+https://github.com/hynek/doc2dash is perfect

Thanks in advance!

Should the requirements be so specific?

Currently all of the requirements use a very specific version which means the project won't work with some of my other projects which require newer versions of Sphinx. Now I'm wondering, is there a reason for that or was this chosen by accident?

https://github.com/hynek/doc2dash/blob/master/setup.py#L13-L22

Should they be replaced with:

INSTALL_REQUIRES = [
    "Sphinx>=1.4.6",
    "attrs>=16.2.0",
    "beautifulsoup4>=4.5.1",
    "click>=6.6",
    "colorama>=0.3.7",
    "lxml>=3.6.4",
    "six>=1.10.0",
    "zope.interface>=4.3.2",
]

installation problem

when i install the doc2dash, some problem occurs.it is as follows:

zhenmingmindeMacBook-Pro:~ zhenmingmin$ pip install --user doc2dash
Downloading/unpacking doc2dash
Downloading doc2dash-1.2.0-py2.py3-none-any.whl
Downloading/unpacking beautifulsoup4==4.3.2 (from doc2dash)
Downloading beautifulsoup4-4.3.2.tar.gz (143kB): 143kB downloaded
Running setup.py (path:/private/var/folders/km/y39j55yd78n8f8r4nqh_zfn00000gn/T/pip_build_zhenmingmin/beautifulsoup4/setup.py) egg_info for package beautifulsoup4

Downloading/unpacking lxml==3.2.3 (from doc2dash)
Downloading lxml-3.2.3.tar.gz (3.3MB): 3.3MB downloaded
Running setup.py (path:/private/var/folders/km/y39j55yd78n8f8r4nqh_zfn00000gn/T/pip_build_zhenmingmin/lxml/setup.py) egg_info for package lxml
/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
Building lxml version 3.2.3.
Building without Cython.
Using build configuration of libxslt 1.1.28

warning: no previously-included files found matching '*.py'
warning: no files found matching '*.txt' under directory 'src/lxml/tests'

Installing collected packages: doc2dash, beautifulsoup4, lxml
Cleaning up...
Exception:
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/req.py", line 1435, in install
requirement.install(install_options, global_options, _args, *_kwargs)
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/req.py", line 671, in install
self.move_wheel_files(self.source_dir, root=root)
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/req.py", line 901, in move_wheel_files
pycompile=self.pycompile,
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/wheel.py", line 140, in move_wheel_files
scheme = distutils_scheme(name, user=user, home=home, root=root)
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/locations.py", line 155, in distutils_scheme
i.finalize_options()
File "build/bdist.macosx-10.9-x86_64/egg/setuptools/command/install.py", line 31, in finalize_options
install.finalize_options(self)
File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py", line 268, in finalize_options
raise DistutilsOptionError("can't combine user with prefix, "
DistutilsOptionError: can't combine user with prefix, exec_prefix/home, or install
(plat)base

Storing debug log for failure in /Users/zhenmingmin/.pip/pip.log

read_inventory_v2 removed in sphinx

Hello,
in latest sphinx stable (at least 1.6.2) read_inventory_v2 is no more:

  File "/usr/lib/python3.6/site-packages/doc2dash/parsers/intersphinx.py", line 9, in <module>
    from sphinx.ext.intersphinx import read_inventory_v2

I think InventoryFile should be used instead:

from sphinx.ext.intersphinx import InventoryFile
invdata = InventoryFile.load(f, '/util', posixpath.join)

More generally, python dependencies are pinned.
What's missing to use the latests versions, apart from sphinx here ?

exception while generating docs for click

Please let me know if there's a workaround, I'm consulting these docs a lot :).

$ doc2dash -n click-6.7 -u http://click.pocoo.org/6/ _build/dirhtml
Converting intersphinx docs from "dirhtml" to "./click-6.7.docset".
Parsing documentation...
Added 172 index entries.
Adding table of contents meta data...  [#################################]  100%
Traceback (most recent call last):
  File "/Users/glyph/.local/bin/doc2dash", line 11, in <module>
    sys.exit(main())
  File "/Users/glyph/.local/venvs/doc2dash/lib/python3.6/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/Users/glyph/.local/venvs/doc2dash/lib/python3.6/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/Users/glyph/.local/venvs/doc2dash/lib/python3.6/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/glyph/.local/venvs/doc2dash/lib/python3.6/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/Users/glyph/.local/venvs/doc2dash/lib/python3.6/site-packages/doc2dash/__main__.py", line 149, in main
    toc.close()
  File "/Users/glyph/.local/venvs/doc2dash/lib/python3.6/site-packages/doc2dash/parsers/utils.py", line 137, in patch_anchors
    patch_files(pbar)
  File "/Users/glyph/.local/venvs/doc2dash/lib/python3.6/site-packages/doc2dash/parsers/utils.py", line 123, in patch_files
    with codecs.open(full_path, mode="r", encoding="utf-8") as fp:
  File "/Users/glyph/.local/venvs/doc2dash/bin/../lib/python3.6/codecs.py", line 895, in open
    file = builtins.open(filename, mode, buffering)
IsADirectoryError: [Errno 21] Is a directory: './click-6.7.docset/Contents/Resources/Documents/api/'

Crash when generating docset ("Couldn't find a tree builder with the features you requested: lxml")

Short version
doc2dash crashes with an exception when I try to generate a docset. The problem appears to be caused by lxml 3.44 not playing well with beautifulsoup 4.4.1. No more trouble after updating lxml to version 3.6.0.

Setup

  • doc2dash 2.1.0, installed with pip
  • pip also installed the following libraries, which PyPI lists as dependencies:
    • zope.interface 4.1.3
    • six 1.10.0
    • lxml 3.4.4
    • colorama 0.3.7
    • click 6.3
    • beautifulsoup4 4.4.1
    • attrs 15.2.0
    • Sphinx 1.3.5
  • Running python 3.5.1 (Anaconda 4.0.0)
  • Mac OS X 10.10.4
  • Trying to generate a docset for SymPy 1.0.

Crash behavior
Running the doc2dash command line utility. The error happens when calling BeautifulSoup() in doc2dash.parsers.utils.py (line 124). BeautifulSoup raises a FeatureNotFound exception with message:

"Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?"

Reproducing the error outside of doc2dash
Trying to run a test file through BeautifulSoup produces the same error:

from bs4 import BeautifulSoup
with open("test.html") as f:
    soup = BeautifulSoup(f, "lxml")
print(soup)

Resolution
Upgrading lxml to version 3.6.0 does the trick, doc2dash works fine.

Cannot build sphinx documentation for Brian2

I am trying to build the Sphinx documentation for Brian2. I have doc2dash 2.2.0 installed on python 2.7 using conda (package from conda_forge).

doc2dash -n Brian-2.1.2 -A -f --parser doc2dash.parsers.intersphinx.InterSphinxParser docs_sphinx results in a long list of "filename too long" errors:

  File "/Users/dylan/anaconda/envs/py27/lib/python2.7/shutil.py", line 208, in copytree
    raise Error, errors
shutil.Error: [('/Users/dylan/Development/brian2_dev_GIT/docs_sphinx/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/.gitignore', u'/Users/dylan/Library/Application Support/doc2dash/DocSets/Brian-2.1.2.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/.gitignore', "[Errno 63] File name too long: u'/Users/dylan/Library/Application Support/doc2dash/DocSets/Brian-2.1.2.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/docs_sphinx.docset/Contents/Resources/Documents/.gitignore'"), ...

and then fails.

The command doc2dash -n Brian-2.1.2 -A -f docs_sphinx results in the error

"/Users/dylan/Development/brian2_dev_GIT/docs_sphinx" does not contain a known documentation format.

The document set builds successfully using sphinx. Please let me know where I should start looking to fix this problem.

produces a docset that dashdoc can't perceive

I do this:

$ cd ~/Projects/Twisted/trunk
$ pydoctor --add-package twisted
$ doc2dash apidocs

Then I click the "+" button in DashDoc's preference, Then I navigate to the resulting apidocs.docset bundle and click 'open'.

Nothing happens.

If I do this twice, DashDoc freezes forever.

Do you have a working Twisted docset that I could use while this bug is getting fixed?

Cannot detect Gevent's documentation format

Gevent's document is generated by Sphinx, but I ran:
doc2dash -n 'Py2_gevent' -I ./gevent/doc/_build/html/contents.html ./gevent/doc/_build/html/

and got the message:
"./gevent/doc/_build/html/" does not contain a known documentation format.

Cannot import BeautifulSoup documentation

Doc2Dash seems very cool but unfortunately, I was not able to import BeautifulSoup documentation :S

Steps to reproduce:

wget http://www.crummy.com/software/BeautifulSoup/bs4/download/4.3/beautifulsoup4-4.3.2.tar.gz
tar xzvf beautifulsoup4-4.3.2.tar.gz
cd beautifulsoup4-4.3.2/doc
make html
doc2dash -A build/html -n BeautifulSoup

In Dash, I see "Empty docset". When I open beautifulsoup4-4.3.2/doc/build/html/index.html, the documentation is good. Have I done something wrong ?

Thanks !

$ pip install --user doc2dash is not working with my Python Distribution (enthought canopy).

I'm using the enthought Canopy Python distribution. For some reason the command $ pip install --user doc2dash does not go through successfully.

(User) $ pip install --user doc2dash
zsh: correct 'pip' to 'pp' [nyae]? n
Downloading/unpacking doc2dash
  Downloading doc2dash-1.1.0.tar.gz
  Running setup.py egg_info for package doc2dash

Downloading/unpacking beautifulsoup4==4.1.3 (from doc2dash)
  Downloading beautifulsoup4-4.1.3.tar.gz (131kB): 131kB downloaded
  Running setup.py egg_info for package beautifulsoup4

Downloading/unpacking lxml==3.0.2 (from doc2dash)
  Downloading lxml-3.0.2.tar.gz (1.9MB): 1.9MB downloaded
  Running setup.py egg_info for package lxml
    Building lxml version 3.0.2.
    Building without Cython.
    Using build configuration of libxslt 1.1.26
    Building against libxml2/libxslt in one of the following directories:
      /Users/Epsilon/Library/Enthought/Canopy_64bit/User/lib
      /Users/vagrant/src/master-env/lib

    warning: no previously-included files found matching '*.py'
    warning: no files found matching '*.txt' under directory 'src/lxml/tests'
Installing collected packages: doc2dash, beautifulsoup4, lxml
  Running setup.py install for doc2dash

    Installing doc2dash script to /Users/Epsilon/Library/Python/2.7/bin
  Running setup.py install for beautifulsoup4

  Running setup.py install for lxml
    Building lxml version 3.0.2.
    Building without Cython.
    Using build configuration of libxslt 1.1.26
    Building against libxml2/libxslt in one of the following directories:
      /Users/Epsilon/Library/Enthought/Canopy_64bit/User/lib
      /Users/vagrant/src/master-env/lib
    building 'lxml.etree' extension
    gcc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -DNDEBUG -g -O3 -arch x86_64 -I/Users/Epsilon/Library/Enthought/Canopy_64bit/User/include -I/Users/Epsilon/Library/Enthought/Canopy_64bit/User/include/libxml2 -I/private/var/folders/kq/tn9_jz8x1jg11hfc_zh2ty980000gn/T/pip-build-Epsilon/lxml/src/lxml/includes -I/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.macosx-10.6-x86_64-2.7/src/lxml/lxml.etree.o -flat_namespace
    In file included from /Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/include/python2.7/Python.h:19,
                     from src/lxml/lxml.etree.c:4:
    /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include/limits.h:15:25: error: limits.h: No such file or directory
    In file included from src/lxml/lxml.etree.c:4:
    /Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/include/python2.7/Python.h:33:19: error: stdio.h: No such file or directory
.
.
.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
      Can't roll back lxml; was not uninstalled
    Command /Users/Epsilon/Library/Enthought/Canopy_64bit/User/bin/python -c "import setuptools;__file__='/private/var/folders/kq/tn9_jz8x1jg11hfc_zh2ty980000gn/T/pip-build-Epsilon/lxml/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/kq/tn9_jz8x1jg11hfc_zh2ty980000gn/T/pip-px9WU5-record/install-record.txt --single-version-externally-managed failed with error code 1 in /private/var/folders/kq/tn9_jz8x1jg11hfc_zh2ty980000gn/T/pip-build-Epsilon/lxml
    Storing complete log in /Users/Epsilon/.pip/pip.log

Essential index file not found via Parser

I built the html files using sphinx from the documentation folder associated with the scikit-learn python library source code.

https://github.com/scikit-learn/scikit-learn/tree/master/doc

The html build output was created successfully via sphinx using make html-noplot, however when I try and run the html material through doc2dash, I get an error indicating that the essential index file was not found. Take a look below:

Edwins-MacBook-Pro:~ Legion$ doc2dash -A ~/Desktop/scikitlearn
Converting sphinx docs from "/Users/Legion/Desktop/scikitlearn" to "/Users/Legion/Library/Application Support/doc2dash/DocSets/scikitlearn.docset".
Parsing HTML...
Traceback (most recent call last):
  File "/usr/local/bin/doc2dash", line 8, in <module>
    load_entry_point('doc2dash==1.1.0', 'console_scripts', 'doc2dash')()
  File "/Library/Python/2.7/site-packages/doc2dash/__main__.py", line 100, in main
    for entry in doc_parser.parse():
  File "/Library/Python/2.7/site-packages/doc2dash/parsers/sphinx.py", line 38, in parse
    raise IOError(errno.ENOENT, 'Essential index file not found.')
IOError: [Errno 2] Essential index file not found.

I have the html folder I'm trying to run through doc2dash available at:

https://github.com/Black-Milk/Dash-Docset/tree/master/HTML/scikitlearn

[request] Add ability to pass in a URL

I'm lazy, I don't want to clone a repo just to get their docs (I'm looking at you, Zope...) so I can build to Dash. I'd love to be able to pass in the base/home URL of documentation to doc2dash, e.g.

doc2dash [OPTIONS] http://docs.zope.org/zope.interface/

Cannot create beautifulsoup4 docset.

$ doc2dash --name beautifulsoup4 html
Converting sphinx docs from "html" to "beautifulsoup4.docset".
Parsing HTML...
Creating database...
Added 0 index entries.
Adding table of contents meta data...

Problematic strict dependency version set

Are all of those strict fixed dependency versions really necessary? This very particular set of version numbers makes it close to impossible to use doc2dash in an Anaconda environment..

Conversion not take the index.

I am trying to add the clang docset to Dash.

Clang use Sphinx to create HTML documents, its source rst files have been added to the repository, so I can build the same HTML documents too.

2013-12-05 1 35 51

But as you see, when converting to docset, its index miss.

Why would this happend?

no option to overwrite existing docsets

It seems that docs2dash fails if there is an already existing target dash file. We either need to be able to overwrite it by default or have an option for it.

Removing the file before running docs2dash is not a viable option because the build may fail for other reasons.

doc2dash --name jira docs/build/html --destination docs/build/docset --icon docs/_static/python-256.png --online-redirect-url https://jira.readthedocs.io/en/stable/
Destination path "docs/build/docset/jira.docset" already exists.
make: *** [docs] Error 17

Error when generating from sphinx html doc

I have generated html api doc from sphinx-apidoc, but when I use doc2dash to convert to docset, error occurred:

Traceback (most recent call last):
File "/usr/local/bin/doc2dash", line 11, in
sys.exit(main())
File "/usr/local/lib/python2.7/site-packages/click/core.py", line 572, in call
return self.main(_args, *_kwargs)
File "/usr/local/lib/python2.7/site-packages/click/core.py", line 552, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python2.7/site-packages/click/core.py", line 744, in invoke
return ctx.invoke(self.callback, *_ctx.params)
File "/usr/local/lib/python2.7/site-packages/click/core.py", line 388, in invoke
return callback(_args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/doc2dash/main.py", line 115, in main
docset = prepare_docset(source, dest, name, index_page)
File "/usr/local/lib/python2.7/site-packages/doc2dash/main.py", line 248, in prepare_docset
shutil.copytree(source, docs)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 208, in copytree
raise Error, errors
shutil.Error: [('html/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Info.plist', u'doc/scrapy.docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Info.plist', "[Errno 63] File name too long: u'doc/scrapy.docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Info.plist'"), ('html/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources', u'doc/scrapy.docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources', "[Errno 63] File name too long: 'doc/scrapy.docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources/Documents/..docset/Contents/Resources'")]

--name is required in some cases

Hello,

I've just built a docset. Without a "--name" the docset was generated with just the extension and wasn't added to dash.

When I added the --name parameter, it worked.

Mathjax doesn't display

I'm not sure if this is a Dash problem or a doc2dash problem, but I was generating a docset from Julia's docs and the beautifully rendered math in the documentation (for instance take a look at http://docs.julialang.org/en/latest/stdlib/linalg/ ). If I have Dash open the file in the browser, it seems to display correctly, but inside Dash itself, I see:
\[Q = \prod_{i=1}^{\min(m,n)} (I - \tau_i v_i v_i^T)\] instead of the math we see on the online docs. I thought maybe the problem was the CDN it was using, so I carefully replaced that with a local copy of the javascript file, making sure the sphinx extension copied the correct path into the html. Again, works in the browser but not in Dash.

A second, smaller issue, and perhaps one I should file separately, but even if I pass --file-index index.html it continues to use genindex.html as the index page.
cc @Kapeli

pip install doesn't create bin/doc2dash

My environments:

  • Mac OS X 10.8.5
  • Homebrew installed Python 2.7.5
  • pip 1.4.1

pip install doc2dash successfully installed the package, but not creating the bin/doc2dash, from the log it's picking up the wheel version: doc2dash-1.1.0-py2.py3-none-any.whl

On same machine inside a virtualenv, pip install will create a bin/doc2dash without any error.

Separate out a doc2dash library

Libraries and applications have a fundamental different requirement in delivery. If you embed a lib, you the lib shouldn’t constrain your requirements beyond known incompatibilities.

OTOH applications (as doc2dash is right now) are supposed to work on install.

To enable embedding of doc2dash, there should be a loosely restricted lib containing the core functionality and a CLI interface pulling everything together into a proper application.

Using directly on documentation website

Hi,

As far as I understand doc2dash, one has to download repository, build documentation on local drive, then doc2dash and finally import in dash. Fine.

Wouldn’t it be nice to have doc2dash download documentation directly from a hosted documentation ? I mean running :

$ doc2dash --website http://docs.python-requests.org/en/latest/

What do you think ?

Thanx for everything.

'pip install doc2dash' doesn't seem to work

Downloading/unpacking doc2dash
  Running setup.py egg_info for package doc2dash
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "~/build/doc2dash/setup.py", line 10, in <module>
        long_description=open('README.rst').read(),
    IOError: [Errno 2] No such file or directory: 'README.rst'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "~/build/doc2dash/setup.py", line 10, in <module>

    long_description=open('README.rst').read(),

IOError: [Errno 2] No such file or directory: 'README.rst'

----------------------------------------
Command python setup.py egg_info failed with error code 1 in ~/build/doc2dash
Storing complete log in ~/Library/Logs/pip.log

doc2dash silently fails with no output and success exit code

I got a big surprised on CentOS where running doc2dash proved to return 0 and do nothing, regardless even creating any docset.

  • happened even if the source folder didn't exist
  • happend when source folder existed and had content but generated nothing.

Example:

    # inside almost any python package repo run
    PACKAGE=`python setup.py --name`
    pip install -q --user doc2dash
    tox -e docs
    python -m doc2dash -n $PACKAGE docs/build/html

I discovered that this happens when doc2dash is called as a python module, python -m doc2dash ignores any cli parameters, so doing nothing.

Unicode support

Python's str.format() does not support unicode arguments (see http://bugs.python.org/issue7300). Thus doc2dash fails to build docs for e.g. https://github.com/JuliaLang/julia:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xd7' in position 0: ordinal not in range(128)

The fix is to use the % operator:

diff -ura doc2dash/parsers/intersphinx.py /usr/local/lib/python2.7/dist-packages/doc2dash/parsers/intersphinx.py
--- doc2dash/parsers/intersphinx.py 2014-08-25 23:54:24.601090985 -0300
+++ /usr/local/lib/python2.7/dist-packages/doc2dash/parsers/intersphinx.py  2014-08-25 23:30:39.885093298 -0300
@@ -80,7 +80,7 @@
     """
     link = soup.find('a', {'class': 'headerlink'}, href='#' + entry.anchor)
     tag = soup.new_tag('a')
-    tag['name'] = APPLE_REF_TEMPLATE.format(entry.type, entry.name)
+    tag['name'] = APPLE_REF_TEMPLATE % (entry.type, entry.name)
     if link:
         link.parent.insert(0, tag)
         return True
diff -ura doc2dash/parsers/pydoctor.py /usr/local/lib/python2.7/dist-packages/doc2dash/parsers/pydoctor.py
--- doc2dash/parsers/pydoctor.py    2014-08-25 23:54:24.601090985 -0300
+++ /usr/local/lib/python2.7/dist-packages/doc2dash/parsers/pydoctor.py 2014-08-25 23:30:49.149093284 -0300
@@ -57,7 +57,7 @@
         link = soup.find('a', attrs={'name': entry.anchor})
         if link:
             tag = soup.new_tag('a')
-            tag['name'] = APPLE_REF_TEMPLATE.format(entry.type, entry.name)
+            tag['name'] = APPLE_REF_TEMPLATE % (entry.type, entry.name)
             link.insert_before(tag)
             return True
         else:
diff -ura doc2dash/parsers/utils.py /usr/local/lib/python2.7/dist-packages/doc2dash/parsers/utils.py
--- doc2dash/parsers/utils.py   2014-08-25 23:54:24.601090985 -0300
+++ /usr/local/lib/python2.7/dist-packages/doc2dash/parsers/utils.py    2014-08-25 23:30:29.613093316 -0300
@@ -84,7 +84,7 @@
         return start


-APPLE_REF_TEMPLATE = '//apple_ref/cpp/{}/{}'
+APPLE_REF_TEMPLATE = '//apple_ref/cpp/%s/%s'


 @coroutine

Icon not showing in Zeal

The docset created with doc2dash is not showing the icon in Zeal. As stated here when putting a symlink (or a copy) at Contents/Resources/Documents/icon.png the icon also shows up in Zeal correctly. I think this code should either create that symlink or if that's not working on all platforms just make another copy of the specified icon file.

Not detecting pydoctor docs

I'm getting this error when trying to generate the docset for Twisted:

"apidocs" does not contain a known documentation format.

The problem seems to be that the index.html of the generated docs contains this:

      This documentation was automatically generated by
      <a href="https://launchpad.net/pydoctor/">pydoctor</a>

While doc2dash expects this:

      This documentation was automatically generated by
      <a href="http://codespeak.net/~mwh/pydoctor/">pydoctor</a>'''

(https://github.com/hynek/doc2dash/blob/9c1751e3abc972e7dbff522c8ef5cdf3375023a9/doc2dash/parsers/pydoctor.py)

I was able to generate the docset after modifying the index.html to what doc2dash expects.

tip: installing doc2dash on ElCapitan

When installing doc2dash using pip on ElCapitan MAC OS it does not allow uninstalling six v 1.4.1 as it is a protected file.

Use the following to install doc2dash by ignoring six
$ sudo -H pip install doc2dash --ignore-installed six

For more information refer to pypa/pip#3165 as it is a related issue.

Or

Use brew to install python then you can use pip without the problems of protected files.

Generated doc page is not completed

Hi, I tried to use doc2dash to generate documentation for scikit-learn, but I found that the modules/classes.html page is not completed.

This is what the page looks like in dash:

screen shot 2015-06-16 at 2 14 55 pm

This is the original page:

screen shot 2015-06-16 at 2 18 30 pm

Can't build ml-cheatsheet

https://github.com/bfortuner/ml-cheatsheet/tree/master/docs
I followed all the steps and finally after:
doc2dash ./_build/html/ -n ml-cheatsheet
I got:
Converting intersphinx docs from "html" to "./ml-cheatsheet.docset".
Parsing documentation...
Added 0 index entries.
Adding table of contents meta data... [#######################################################################################################] 100%
Which basically gave me an empty file....

doc2dash should not have pinned requirements

Currently doc2dash has pinned requirements and that is blocking its inclusion in other projects because it would create dependency conflicts.

Until recently pip was not able to detect these conflicts but versions >=8.0 do have the pip check command which can report such conflicts.

Example:

doc2dash 2.1.0 has requirement Sphinx==1.3.5, but you have Sphinx 1.5.1.

As any pypi project it should contain open ranges using one of these models:

requests>=2.10.0 # most common use
requests>=2.10.0,!=2.10.1 # if we know that a specific version is broken and newer release are likely to work
requests>=2.10.0,<3.0 # if we want to be sure new major release will not break

I am fully aware about the fact that an workaround would be to install it in its own virtualenv but that's not really working for two reasons:

  • project may already depend on newer version of sphinx
  • it does not scale as each venv requires a lots of space, time to create/update, if we would have to create a venv for each component we use we may easily end-up having a 10GB hello world python app ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.