Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependencies upgrade #76

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
(fix): working on fixing the builder call with the newer Sphinx API
nimbinatus committed Apr 11, 2018
commit 55dee99340a9b6068982ddb755e1c746d45022cd
8 changes: 6 additions & 2 deletions deconstrst/__init__.py
Original file line number Diff line number Diff line change
@@ -18,7 +18,8 @@ def main(directory=False):

if config.content_root:
if directory and directory != config.content_root:
print("Warning: Overriding CONTENT_ROOT [{}] with argument [{}].".format(config.content_root, directory))
print("Warning: Overriding CONTENT_ROOT [{}] with argument [{}].".format(
config.content_root, directory))
else:
os.chdir(config.content_root)
elif directory:
@@ -52,6 +53,7 @@ def main(directory=False):
print(file=sys.stderr)
sys.exit(1)


def install_requirements():
"""
Install non-colliding dependencies from a "requirements.txt" file found at
@@ -79,8 +81,10 @@ def install_requirements():

dependencies.append(stripped)

print("Installing dependencies from {}: {}.".format(reqfile, ', '.join(dependencies)))
print("Installing dependencies from {}: {}.".format(
reqfile, ', '.join(dependencies)))
pip.main(['install'] + dependencies)


if __name__ == '__main__':
main()
10 changes: 7 additions & 3 deletions deconstrst/builders/serial.py
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@

TOC_DOCNAME = '_toc'


class DeconstSerialJSONBuilder(JSONHTMLBuilder):
"""
Custom Sphinx builder that generates Deconst-compatible JSON documents.
@@ -87,7 +88,8 @@ def write_context(self, context):

# If this repository has a TOC, reference it as an addenda.
if self.toc_envelope:
envelope.add_addenda('repository_toc', self.toc_envelope.content_id)
envelope.add_addenda(
'repository_toc', self.toc_envelope.content_id)

self.dump_context(envelope.serialization_payload(),
envelope.serialization_path())
@@ -161,8 +163,10 @@ def _toc_envelope(self):
if full_render:
self.secnumbers = self.env.toc_secnumbers.get(docname, {})
self.fignumbers = self.env.toc_fignumbers.get(docname, {})
self.imgpath = relative_uri(self.get_target_uri(docname), '_images')
self.dlpath = relative_uri(self.get_target_uri(docname), '_downloads')
self.imgpath = relative_uri(
self.get_target_uri(docname), '_images')
self.dlpath = relative_uri(
self.get_target_uri(docname), '_downloads')
self.current_docname = docname

rendered_toc = self.render_partial(doctree)['body']
20 changes: 17 additions & 3 deletions deconstrst/deconstrst.py
Original file line number Diff line number Diff line change
@@ -8,7 +8,6 @@
from deconstrst.builders.serial import DeconstSerialJSONBuilder
from deconstrst.builders.single import DeconstSingleJSONBuilder
from sphinx.application import Sphinx
from sphinx.builders import BUILTIN_BUILDERS

DEFAULT_BUILDER = 'deconst-serial'

@@ -19,8 +18,8 @@ def build(srcdir, destdir):
"""

# I am a terrible person
BUILTIN_BUILDERS['deconst-serial'] = DeconstSerialJSONBuilder
BUILTIN_BUILDERS['deconst-single'] = DeconstSingleJSONBuilder
# BUILTIN_BUILDERS['deconst-serial'] = DeconstSerialJSONBuilder
# BUILTIN_BUILDERS['deconst-single'] = DeconstSingleJSONBuilder

conf_builder = get_conf_builder(srcdir)
doctreedir = os.path.join(destdir, '.doctrees')
@@ -34,6 +33,7 @@ def build(srcdir, destdir):

return app.statuscode


def get_conf_builder(srcdir):
with open(os.path.join(srcdir, 'conf.py'), encoding="utf-8") as conf_file:
conf_data = conf_file.read()
@@ -47,3 +47,17 @@ def get_conf_builder(srcdir):
"""

return locals().get('builder', DEFAULT_BUILDER)


def setup(app):
app.setup_extension('sphinx.builders.html')
app.add_builder(DeconstSerialJSONBuilder)
app.add_builder(DeconstSingleJSONBuilder)
setup(
entry_points={
'sphinx.builders': [
'deconst-serial = DeconstSerialJSONBuilder',
'deconst-single = DeconstSingleJSONBuilder',
],
}
)