Skip to content

Commit

Permalink
Merge pull request #81 from kirbs-/dev
Browse files Browse the repository at this point in the history
v0.5.3 Release
  • Loading branch information
kirbs- committed Feb 15, 2020
2 parents 351cc41 + 6e622d6 commit 5c732cb
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 15 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ hide_code.sublime-workspace
/hide_code/test/.ipynb_checkpoints/*
*.iml
*.idea
*ipynb
File renamed without changes.
28 changes: 15 additions & 13 deletions hide_code/hide_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,20 @@
from .hide_code_config import HideCodeConfig as hc_config
from .utils import Utils


notebook_dir = []
base_url = ""


class HideCodeHTMLExportHandler(IPythonHandler):
def get(self, *args):
self.log.info("hide_code: Starting HTML export for {}".format(args[-1]))
with open(ipynb_file_name(args)) as f:
with open(ipynb_file_name(args), encoding="utf-8") as f:
nb = nbformat.reads(f.read(), as_version=4)
exporter = HideCodeHTMLExporter()
output_html, resources = exporter.from_notebook_node(nb)
self.set_header('Content-Type', 'text/html')
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args) + '.html')
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'html'))
self.flush()
self.write(output_html)
self.log.info("hide_code: Finished HTML export for {}".format(args[-1]))
Expand All @@ -37,13 +38,13 @@ def get(self, *args):
class HideCodePDFExportHandler(IPythonHandler):
def get(self, *args):
self.log.info("hide_code: Starting PDF export for {}".format(args[-1]))
with open(ipynb_file_name(args)) as f:
with open(ipynb_file_name(args), encoding="utf-8") as f:
nb = nbformat.reads(f.read(), as_version=4)
exporter = HideCodeHTMLExporter()
output_html, resources = exporter.from_notebook_node(nb)
output = pdfkit.from_string(output_html, False)
self.set_header('Content-Type', 'application/pdf')
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args) + '.pdf')
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'pdf'))
self.flush()
self.write(output)
self.log.info("hide_code: Finished PDF export for {}".format(args[-1]))
Expand All @@ -53,11 +54,11 @@ def get(self, *args):
class HideCodeLatexPDFExportHandler(IPythonHandler):
def get(self, *args):
self.log.info("hide_code: Starting Latex PDF export for {}".format(args[-1]))
with open(ipynb_file_name(args)) as f:
with open(ipynb_file_name(args), encoding="utf-8") as f:
nb = nbformat.reads(f.read(), as_version=4)
exporter = HideCodePDFExporter()
output, resources = exporter.from_notebook_node(nb, resources={"metadata": {"name": notebook_name(args)}})
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args) + '.pdf')
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'pdf'))
self.flush()
self.write(output)
self.log.info("hide_code: Finished Latex PDF export for {}".format(args[-1]))
Expand All @@ -67,11 +68,11 @@ def get(self, *args):
class HideCodeLatexExportHandler(IPythonHandler):
def get(self, *args):
self.log.info("hide_code: Starting Latex export for {}".format(args[-1]))
with open(ipynb_file_name(args)) as f:
with open(ipynb_file_name(args), encoding="utf-8") as f:
nb = nbformat.reads(f.read(), as_version=4)
exporter = HideCodeLatexExporter()
output, resources = exporter.from_notebook_node(nb, resources={"metadata": {"name": notebook_name(args)}})
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args) + '.tex')
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'tex'))
self.flush()
self.write(output)
self.log.info("hide_code: Finished Latex export for {}".format(args[-1]))
Expand All @@ -81,11 +82,11 @@ def get(self, *args):
class HideCodeSlidesExportHandler(IPythonHandler):
def get(self, *args):
self.log.info("hide_code: Starting Slides export for {}".format(args[-1]))
with open(ipynb_file_name(args)) as f:
with open(ipynb_file_name(args), encoding="utf-8") as f:
nb = nbformat.reads(f.read(), as_version=4)
exporter = HideCodeSlidesExporter()
output, resources = exporter.from_notebook_node(nb, resources={"metadata": {"name": notebook_name(args)}})
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args) + '.html')
self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'html'))
self.flush()
self.write(output)
self.log.info("hide_code: Finished Slides export for {}".format(args[-1]))
Expand Down Expand Up @@ -303,12 +304,13 @@ def route_pattern_for(exporter):
return url_path_join(base_url, 'notebooks/([^/]+)' + pattern, 'export', exporter)


def notebook_name(params):
def notebook_name(params, filetype):
"""
Returns notebook name without .ipynb extension.
Returns URL encoded notebook name without .ipynb extension.
"""
args = [param.replace('/', '') for param in params if param is not None]
return args[-1][:-6]
print(args)
return '"{}.{}"'.format(args[-1][:-6], filetype)


def ipynb_file_name(params):
Expand Down
6 changes: 4 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# Versions should comply with PEP440. For a discussion on single-sourcing
# the version across setup.py and the project code, see
# https://packaging.python.org/en/latest/single_source_version.html
version='0.5.2',
version='0.5.3',

description='A Jupyter notebook extension to hide code, prompts and outputs.',
long_description=long_description,
Expand Down Expand Up @@ -54,6 +54,8 @@
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
],

# What does your project relate to?
Expand All @@ -74,7 +76,7 @@
# installed, specify them here. If using Python 2.6 or less, then these
# have to be included in MANIFEST.in as well.
package_data={
'hide_code': ['*.js','*.txt', os.path.join('Templates', '*'), 'hide_code_config.json'],
'hide_code': ['*.js','*.txt', os.path.join('Templates', '*'), 'hide_code_config.json', 'LICENSE'],
},

# Although 'package_data' is the preferred approach, in some case you may
Expand Down

0 comments on commit 5c732cb

Please sign in to comment.