From eb101169aa39f420107d1d602a65a2aea39eaa82 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 15 Feb 2020 10:55:52 -0500 Subject: [PATCH 01/60] Added LICENSE to package data. Resolves #71. --- hide_code/{LICENSE.txt => LICENSE} | 0 setup.py | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) rename hide_code/{LICENSE.txt => LICENSE} (100%) diff --git a/hide_code/LICENSE.txt b/hide_code/LICENSE similarity index 100% rename from hide_code/LICENSE.txt rename to hide_code/LICENSE diff --git a/setup.py b/setup.py index af377cc..381a780 100644 --- a/setup.py +++ b/setup.py @@ -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? @@ -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 From 3ec5c275c1165036b0453594e5e3152227d4af85 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 15 Feb 2020 11:04:27 -0500 Subject: [PATCH 02/60] Ignoring all notebook files. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 75e5579..c393b10 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ hide_code.sublime-workspace /hide_code/test/.ipynb_checkpoints/* *.iml *.idea +*ipynb From b779c806f3f57c562190e34c7eb3ceadb7479067 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 15 Feb 2020 11:07:44 -0500 Subject: [PATCH 03/60] Updated file open encoding. Resolves #74 #80 --- hide_code/hide_code.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hide_code/hide_code.py b/hide_code/hide_code.py index 6a15107..fb7d151 100644 --- a/hide_code/hide_code.py +++ b/hide_code/hide_code.py @@ -22,7 +22,7 @@ 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) @@ -37,7 +37,7 @@ 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) @@ -53,7 +53,7 @@ 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)}}) @@ -67,7 +67,7 @@ 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)}}) @@ -81,7 +81,7 @@ 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)}}) From 373bd28034432a60b9ccb3b7d0682e0238bfd9af Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 15 Feb 2020 11:14:25 -0500 Subject: [PATCH 04/60] Version bump. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 381a780..c94a118 100644 --- a/setup.py +++ b/setup.py @@ -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, From 6e622d6324a0d400140e779ffa7dc91174e2bacf Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 15 Feb 2020 11:44:03 -0500 Subject: [PATCH 05/60] Fixed Content-Disposition header to correctly pass filenames with spaces. Resolves #77 #62. --- hide_code/hide_code.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/hide_code/hide_code.py b/hide_code/hide_code.py index fb7d151..1b46c4d 100644 --- a/hide_code/hide_code.py +++ b/hide_code/hide_code.py @@ -15,6 +15,7 @@ from .hide_code_config import HideCodeConfig as hc_config from .utils import Utils + notebook_dir = [] base_url = "" @@ -27,7 +28,7 @@ def get(self, *args): 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])) @@ -43,7 +44,7 @@ def get(self, *args): 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])) @@ -57,7 +58,7 @@ def get(self, *args): 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])) @@ -71,7 +72,7 @@ def get(self, *args): 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])) @@ -85,7 +86,7 @@ def get(self, *args): 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])) @@ -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): From b5a304d5a03115562600d675ced61eb9b191e715 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 15 Feb 2020 19:33:56 -0500 Subject: [PATCH 06/60] Added logic to update export links after renaming a notebook. Resolves #78. --- hide_code/hide_code.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/hide_code/hide_code.js b/hide_code/hide_code.js index a8ca502..a5b1ce7 100644 --- a/hide_code/hide_code.js +++ b/hide_code/hide_code.js @@ -155,7 +155,8 @@ function ($, celltoolbar, Jupyter){ } function exportLink(path){ - return window.location.origin + window.location.pathname + "/export/" + path; + // return window.location.origin + window.location.pathname + "/export/" + path; + return window.location.origin + '/notebooks/' + Jupyter.notebook.notebook_path + "/export/" + path; } var hideCodeCallback = ctb.utils.checkbox_ui_generator( 'Hide Code ', hideCodeSetter, hideCodeGetter); @@ -326,11 +327,19 @@ function ($, celltoolbar, Jupyter){ }); console.log('hide_code setup complete'); } - - // setup(); - + + $(document).on('DOMSubtreeModified', '.filename', function(){ + // var filename = $('.filename').text(); + + $('#hide_code_menu_list a').each(function(){ + var path = $(this).attr('href').split('/').pop(); + $(this).attr('href', exportLink(path)); + }); + }); + return { load_ipython_extension: load_ipython_extension } }); + From a1b921b822f655e45eb94efee5c168f11c827ab1 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 13:57:26 -0500 Subject: [PATCH 07/60] Ignoring all HTML and PDF files. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index c393b10..d4ea907 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ hide_code.sublime-workspace *.iml *.idea *ipynb +*.pdf +*.html \ No newline at end of file From 0492d2653c80b4c89a235c41256c87c236f61d0b Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 14:01:26 -0500 Subject: [PATCH 08/60] Updated Latex PDF exporting. Resolves #65. --- hide_code/__init__.py | 19 +++++++++-------- hide_code/hide_code.py | 27 ++++++++++++------------ hide_code/hide_code_latexpdf_exporter.py | 25 ++++++++++++++++++++++ hide_code/hide_code_pdf_exporter.py | 26 ++++++++++++++++++----- 4 files changed, 70 insertions(+), 27 deletions(-) create mode 100644 hide_code/hide_code_latexpdf_exporter.py diff --git a/hide_code/__init__.py b/hide_code/__init__.py index ab7df41..9ca25e7 100644 --- a/hide_code/__init__.py +++ b/hide_code/__init__.py @@ -1,9 +1,10 @@ -from .hide_code_html_exporter import HideCodeHTMLExporter -from .hide_code_pdf_exporter import HideCodePDFExporter -from .hide_code_preprocessor import HideCodePreprocessor -from .hide_code_latex_exporter import HideCodeLatexExporter -from .hide_code_slides_exporter import HideCodeSlidesExporter -from .hide_code import * -from .hide_code_config import HideCodeConfig -from .utils import Utils -from .hide_code import _jupyter_nbextension_paths, _jupyter_server_extension_paths \ No newline at end of file +from hide_code.hide_code_html_exporter import HideCodeHTMLExporter +from hide_code.hide_code_pdf_exporter import HideCodePDFExporter +from hide_code.hide_code_latexpdf_exporter import HideCodeLatexPDFExporter +from hide_code.hide_code_preprocessor import HideCodePreprocessor +from hide_code.hide_code_latex_exporter import HideCodeLatexExporter +from hide_code.hide_code_slides_exporter import HideCodeSlidesExporter +from hide_code.hide_code import * +from hide_code.hide_code_config import HideCodeConfig +from hide_code.utils import Utils +from hide_code.hide_code import _jupyter_nbextension_paths, _jupyter_server_extension_paths \ No newline at end of file diff --git a/hide_code/hide_code.py b/hide_code/hide_code.py index 1b46c4d..c6767f0 100644 --- a/hide_code/hide_code.py +++ b/hide_code/hide_code.py @@ -6,14 +6,15 @@ from notebook.base.handlers import IPythonHandler import nbformat from traitlets.config import Config -from .hide_code_html_exporter import HideCodeHTMLExporter -from .hide_code_pdf_exporter import HideCodePDFExporter -from .hide_code_latex_exporter import HideCodeLatexExporter -from .hide_code_slides_exporter import HideCodeSlidesExporter +from hide_code.hide_code_html_exporter import HideCodeHTMLExporter +from hide_code.hide_code_pdf_exporter import HideCodePDFExporter +from hide_code.hide_code_latexpdf_exporter import HideCodeLatexPDFExporter +from hide_code.hide_code_latex_exporter import HideCodeLatexExporter +from hide_code.hide_code_slides_exporter import HideCodeSlidesExporter import pdfkit from notebook.services.config import ConfigManager -from .hide_code_config import HideCodeConfig as hc_config -from .utils import Utils +from hide_code.hide_code_config import HideCodeConfig as hc_config +from hide_code.utils import Utils notebook_dir = [] @@ -40,13 +41,13 @@ def get(self, *args): self.log.info("hide_code: Starting PDF export for {}".format(args[-1])) with open(ipynb_file_name(args), encoding="utf-8") as f: nb = nbformat.reads(f.read(), as_version=4) - exporter = HideCodeHTMLExporter() + exporter = HideCodePDFExporter() output_html, resources = exporter.from_notebook_node(nb) - output = pdfkit.from_string(output_html, False) + # 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.flush() - self.write(output) + self.write(output_html) self.log.info("hide_code: Finished PDF export for {}".format(args[-1])) self.finish() @@ -56,8 +57,8 @@ def get(self, *args): self.log.info("hide_code: Starting Latex PDF export for {}".format(args[-1])) 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)}}) + exporter = HideCodeLatexPDFExporter() + output, resources = exporter.from_notebook_node(nb, resources={"metadata": {"name": notebook_name(args, 'pdf')}}) self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'pdf')) self.flush() self.write(output) @@ -71,7 +72,7 @@ def get(self, *args): 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)}}) + output, resources = exporter.from_notebook_node(nb, resources={"metadata": {"name": notebook_name(args, 'tex')}}) self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'tex')) self.flush() self.write(output) @@ -85,7 +86,7 @@ def get(self, *args): 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)}}) + output, resources = exporter.from_notebook_node(nb, resources={"metadata": {"name": notebook_name(args, 'html')}}) self.set_header('Content-Disposition', 'attachment; filename=' + notebook_name(args, 'html')) self.flush() self.write(output) diff --git a/hide_code/hide_code_latexpdf_exporter.py b/hide_code/hide_code_latexpdf_exporter.py new file mode 100644 index 0000000..5d39a69 --- /dev/null +++ b/hide_code/hide_code_latexpdf_exporter.py @@ -0,0 +1,25 @@ +import os +import os.path + +from traitlets.config import Config +from nbconvert.exporters.pdf import PDFExporter +from traitlets.log import get_logger + + +class HideCodeLatexPDFExporter(PDFExporter): + def __init__(self, config=None, **kw): + # self.register_preprocessor('hide_code.HideCodePreprocessor', True) + super(HideCodeLatexPDFExporter, self).__init__(config, **kw) + self.preprocessors = ['hide_code.HideCodePreprocessor'] + self._init_preprocessors() + + def _template_file_default(self): + return 'hide_code_article' + + @property + def template_path(self): + """ + We want to inherit from HTML template, and have template under + `./templates/` so append it to the search path. (see next section) + """ + return super(HideCodeLatexPDFExporter, self).template_path + [os.path.join(os.path.dirname(__file__), "Templates")] diff --git a/hide_code/hide_code_pdf_exporter.py b/hide_code/hide_code_pdf_exporter.py index cf16192..f92def7 100644 --- a/hide_code/hide_code_pdf_exporter.py +++ b/hide_code/hide_code_pdf_exporter.py @@ -1,20 +1,36 @@ import os import os.path +import pdfkit + + +# from hide_code.hide_code_html_exporter import HideCodeHTMLExporter + from traitlets.config import Config -from nbconvert.exporters.pdf import PDFExporter +from traitlets import default +# from nbconvert.exporters.pdf import PDFExporter +from nbconvert.exporters.html import HTMLExporter from traitlets.log import get_logger -class HideCodePDFExporter(PDFExporter): +class HideCodePDFExporter(HTMLExporter): def __init__(self, config=None, **kw): # self.register_preprocessor('hide_code.HideCodePreprocessor', True) super(HideCodePDFExporter, self).__init__(config, **kw) - self.preprocessors = ['hide_code.HideCodePreprocessor'] - self._init_preprocessors() + # self.preprocessors = ['hide_code.HideCodePreprocessor'] + # self._init_preprocessors() + + @default('file_extension') + def _file_extension_default(self): + return '.pdf' + + def from_notebook_node(self, nb, resources=None, **kw): + output, resources = super(HideCodePDFExporter, self).from_notebook_node(nb, resources, **kw) + output = pdfkit.from_string(output, False) + return output, resources def _template_file_default(self): - return 'hide_code_article' + return 'hide_code_full.tpl' @property def template_path(self): From 0148c3e641356e4b59b8ad9df681625ead9ea1cc Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 14:02:01 -0500 Subject: [PATCH 09/60] Added automatic nbextnesion and serverextension install. --- setup.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index c94a118..161b441 100644 --- a/setup.py +++ b/setup.py @@ -1,23 +1,38 @@ # Always prefer setuptools over distutils from setuptools import setup, find_packages -# from setuptools.command.install import install as _install +from setuptools.command.install import install # To use a consistent encoding from codecs import open from os import path import sys import os +import notebook +import notebook.serverextensions as ns # Get the long description from the relevant file with open('README.rst', encoding='utf-8') as f: long_description = f.read() +class PostInstallCommand(install): + """Post-installation for installation mode.""" + def run(self): + install.run(self) + # PUT YOUR POST-INSTALL SCRIPT HERE or CALL A FUNCTION + print('Starting hide_code installation') + # install extension + notebook.nbextensions.install_nbextension_python('hide_code', sys_prefix=True) + # enable notebook extension + notebook.nbextensions.enable_nbextension_python('hide_code', sys_prefix=True) + # enable server extension + ns.toggle_serverextension_python('hide_code', enabled=True, sys_prefix=True) + setup( name='hide_code', # 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.3', + version='0.5.4', description='A Jupyter notebook extension to hide code, prompts and outputs.', long_description=long_description, @@ -96,7 +111,7 @@ 'nbconvert.exporters': [ 'hide_code_html = hide_code:HideCodeHTMLExporter', 'hide_code_pdf = hide_code:HideCodePDFExporter', - # 'hide_code_latexpdf = hide_code:HideCodeLatexPDFExporter', + 'hide_code_latexpdf = hide_code:HideCodeLatexPDFExporter', 'hide_code_latex = hide_code:HideCodeLatexExporter', 'hide_code_slides = hide_code:HideCodeSlidesExporter' ], From ebddc4e63da361436204dd003d126a5bde96d865 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 14:05:52 -0500 Subject: [PATCH 10/60] Version bump. --- .gitignore | 4 +++- setup.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d4ea907..dd58575 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,6 @@ hide_code.sublime-workspace *.idea *ipynb *.pdf -*.html \ No newline at end of file +*.html +.vscode +.ipynb_checkpoints \ No newline at end of file diff --git a/setup.py b/setup.py index 161b441..e54da1f 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ def run(self): # 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.4', + version='0.5.5', description='A Jupyter notebook extension to hide code, prompts and outputs.', long_description=long_description, From 767c67c0069ebfee5b120439ac60c3d6aac92ebb Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 14:07:05 -0500 Subject: [PATCH 11/60] Added python 3.7 and 3.8 build environments. --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 9800f58..4c9b02a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,8 @@ python: - "3.4" - "3.5" - "3.6" + - "3.7" + - "3.8" # does not have headers provided, please ask https://launchpad.net/~pypy/+archive/ppa # maintainers to fix their pypy-dev package. - "pypy" From eda4a7e0f90597c8f9a84f1481ee282e85ef0fb2 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 14:16:36 -0500 Subject: [PATCH 12/60] Removed extension installation steps from post install. --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4c9b02a..7bc4e58 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ install: - pip install pdfkit - pip install -e . # command to run tests -script: - - jupyter nbextension install --py hide_code --sys-prefix - - jupyter nbextension enable --py hide_code --sys-prefix - - jupyter serverextension enable --py hide_code --sys-prefix +# script: +# - jupyter nbextension install --py hide_code --sys-prefix +# - jupyter nbextension enable --py hide_code --sys-prefix +# - jupyter serverextension enable --py hide_code --sys-prefix From 43f38e9efd04f6bccb1bc5c03daf24509f6f83d4 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 15:03:25 -0500 Subject: [PATCH 13/60] Added nbconvert tests. --- .travis.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7bc4e58..c5352b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,9 +19,14 @@ install: - pip install six - pip install jupyter - pip install pdfkit - - pip install -e . + - pip install . # command to run tests -# script: +script: + - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_html + - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_pdf + - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_latexpdf + - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_latex + - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_slides # - jupyter nbextension install --py hide_code --sys-prefix # - jupyter nbextension enable --py hide_code --sys-prefix # - jupyter serverextension enable --py hide_code --sys-prefix From 820b82c86ef84907b714b58dbb7830bd1bcedb2f Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 15:14:51 -0500 Subject: [PATCH 14/60] Adding test notebook. --- hide_code/test/utf-8 test.ipynb | 144 ++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 hide_code/test/utf-8 test.ipynb diff --git a/hide_code/test/utf-8 test.ipynb b/hide_code/test/utf-8 test.ipynb new file mode 100644 index 0000000..1a13f06 --- /dev/null +++ b/hide_code/test/utf-8 test.ipynb @@ -0,0 +1,144 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "opción" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "hidePrompt": true + }, + "outputs": [], + "source": [ + "a = 'opción'" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "hideCode": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "opción\n" + ] + } + ], + "source": [ + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "params = ('utf-8 test.ipynb', None, None)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "args = [param.replace('/', '') for param in params if param is not None]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['utf-8 test.ipynb']" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "args" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "test = 'hello'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'utf-8 test'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "args[-1][:-6]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "{{ hello }}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Hide code", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 88a6596631f378fc9c2582a56d04ca60d8ff5899 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 15:35:26 -0500 Subject: [PATCH 15/60] Fixing test notebook path. --- .travis.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index c5352b4..769f031 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: python python: - - "2.7" # Building 3.3 fails; # ImportError: Tornado requires an up-to-date SSL module. This means Python 2.7.9+ or 3.4+ (although some distributions # have backported the necessary changes to older versions). @@ -22,11 +21,11 @@ install: - pip install . # command to run tests script: - - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_html - - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_pdf - - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_latexpdf - - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_latex - - jupyter nbconvert hide_code/test/utf-8\ test.ipynb --to hide_code_slides + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_html + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_pdf + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_latexpdf + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_latex + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_slides # - jupyter nbextension install --py hide_code --sys-prefix # - jupyter nbextension enable --py hide_code --sys-prefix # - jupyter serverextension enable --py hide_code --sys-prefix From b7891f7387136bb2b0b3f663797e473c50f88d5f Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 15:43:48 -0500 Subject: [PATCH 16/60] Fixing notebook path again. --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 769f031..f274895 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,11 +21,11 @@ install: - pip install . # command to run tests script: - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_html - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_pdf - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_latexpdf - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_latex - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/test/utf-8\ test.ipynb" --to hide_code_slides + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_html + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latexpdf + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latex + - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_slides # - jupyter nbextension install --py hide_code --sys-prefix # - jupyter nbextension enable --py hide_code --sys-prefix # - jupyter serverextension enable --py hide_code --sys-prefix From 24a3541b9c22a843867a8de5977281a13ba45974 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 15:56:11 -0500 Subject: [PATCH 17/60] More travis path testing. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f274895..960e9fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ install: - pip install . # command to run tests script: - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_html + - jupyter nbconvert "/home/travis/virtualenv/python3.4.8/lib/python3.4/site-packages/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_html - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latexpdf - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latex From da23851d9c48f33f3377c6b47eaed14374f7dbf4 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 16:08:09 -0500 Subject: [PATCH 18/60] Travis again. --- .travis.yml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 960e9fc..b57fcc3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ install: - pip install . # command to run tests script: - - jupyter nbconvert "/home/travis/virtualenv/python3.4.8/lib/python3.4/site-packages/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_html + - jupyter nbconvert "/home/travis/virtualenv/python3.4.8/lib/python3.4/site-packages/hide_code/test/utf-8 test.ipynb" --to hide_code_html - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latexpdf - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latex diff --git a/setup.py b/setup.py index e54da1f..e050244 100644 --- a/setup.py +++ b/setup.py @@ -91,7 +91,7 @@ def run(self): # 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', 'LICENSE'], + 'hide_code': ['*.js','*.txt', os.path.join('Templates', '*'), 'hide_code_config.json', 'LICENSE', os.path.join('test', '*')], }, # Although 'package_data' is the preferred approach, in some case you may From fb89a1a006b52d8cfc5c1880dc8f50e2e5d9934d Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 17:07:27 -0500 Subject: [PATCH 19/60] Travis changes again. --- .travis.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index b57fcc3..70076af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,11 +21,7 @@ install: - pip install . # command to run tests script: - - jupyter nbconvert "/home/travis/virtualenv/python3.4.8/lib/python3.4/site-packages/hide_code/test/utf-8 test.ipynb" --to hide_code_html - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latexpdf - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_latex - - jupyter nbconvert "$(python -c 'import site; print(site.getsitepackages()[0])')/hide_code/hide_code/test/utf-8 test.ipynb" --to hide_code_slides + - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_slides # - jupyter nbextension install --py hide_code --sys-prefix # - jupyter nbextension enable --py hide_code --sys-prefix # - jupyter serverextension enable --py hide_code --sys-prefix From 16d37b89dacb29701e8d85f0786d4cae11b204b8 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 17:19:50 -0500 Subject: [PATCH 20/60] Removed pypy environment and added tests for all hide_code nbconvert exporters. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 70076af..ea3d581 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ python: - "3.8" # does not have headers provided, please ask https://launchpad.net/~pypy/+archive/ppa # maintainers to fix their pypy-dev package. - - "pypy" + # - "pypy" # command to install dependencies install: # force six to install first as it's a dependicy of simplegeneric and simplegeneric is erroring. From 4c394c9d783f46f1a440210dfc5169530ff16295 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 17:23:59 -0500 Subject: [PATCH 21/60] Added additional tests. --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index ea3d581..5ef37a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,10 @@ install: # command to run tests script: - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_slides + - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf + - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_html + - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_latex + - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_latexpdf # - jupyter nbextension install --py hide_code --sys-prefix # - jupyter nbextension enable --py hide_code --sys-prefix # - jupyter serverextension enable --py hide_code --sys-prefix From 00b1c563c666dbf0ce1aa92fa2ef3ea508c8f5e4 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 20:56:10 -0500 Subject: [PATCH 22/60] Testing binder config. --- demo.ipynb | 181 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 182 insertions(+) create mode 100644 demo.ipynb create mode 100644 requirements.txt diff --git a/demo.ipynb b/demo.ipynb new file mode 100644 index 0000000..1ee5cc1 --- /dev/null +++ b/demo.ipynb @@ -0,0 +1,181 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "## Hide_code: Jupyter code, input and output hiding\n", + "\n", + "To get started, select \"View\" -> \"Cell Toolbar\" -> \"Hide code\"" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Goodbye prompts\n" + ] + } + ], + "source": [ + "print('Goodbye code')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Goodbye prompts\n" + ] + } + ], + "source": [ + "print('Goodbye prompts')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "hideCode": false, + "hideOutput": true, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Goodbye output\n" + ] + } + ], + "source": [ + "print('Goodbye output')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "Change cell toolbar to \"None\" to pretty up the notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "Tryout the [keyboard shortcuts](https://github.com/kirbs-/hide_code/wiki/Keyboard-Shortcuts).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Try hiding code by kitting the W key in command mode (blue bar highlight on this cell).\n" + ] + } + ], + "source": [ + "print(\"Try hiding code by kitting the W key in command mode (blue bar highlight on this cell).\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unhide code with SHIFT + W.\n" + ] + } + ], + "source": [ + "print(\"Unhide code with SHIFT + W.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "Try selecting the above two cells (SHIFT + click) and hiding/unhiding their code with the \"W\"/SHIFT + \"W\" keys.\n", + "\n", + "Want to hide everything or need to start over? Click on the '' icon above. This toggles hidind all code and inputs at once. \n", + "\n", + "When the notebook is formatted to your liking, click on the \"Hide Code\" menu bar to export into your desired format." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Hide code", + "hide_code_all_hidden": false, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d010560 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +hide_code==9.5.5 \ No newline at end of file From 2508c28a065d99143e463837f7885c74e754dc1b Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 16 Feb 2020 20:58:04 -0500 Subject: [PATCH 23/60] Testing binder config. --- demo.ipynb | 181 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 182 insertions(+) create mode 100644 demo.ipynb create mode 100644 requirements.txt diff --git a/demo.ipynb b/demo.ipynb new file mode 100644 index 0000000..1ee5cc1 --- /dev/null +++ b/demo.ipynb @@ -0,0 +1,181 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "## Hide_code: Jupyter code, input and output hiding\n", + "\n", + "To get started, select \"View\" -> \"Cell Toolbar\" -> \"Hide code\"" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Goodbye prompts\n" + ] + } + ], + "source": [ + "print('Goodbye code')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Goodbye prompts\n" + ] + } + ], + "source": [ + "print('Goodbye prompts')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "hideCode": false, + "hideOutput": true, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Goodbye output\n" + ] + } + ], + "source": [ + "print('Goodbye output')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "Change cell toolbar to \"None\" to pretty up the notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "Tryout the [keyboard shortcuts](https://github.com/kirbs-/hide_code/wiki/Keyboard-Shortcuts).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Try hiding code by kitting the W key in command mode (blue bar highlight on this cell).\n" + ] + } + ], + "source": [ + "print(\"Try hiding code by kitting the W key in command mode (blue bar highlight on this cell).\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unhide code with SHIFT + W.\n" + ] + } + ], + "source": [ + "print(\"Unhide code with SHIFT + W.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hideCode": false, + "hidePrompt": false + }, + "source": [ + "Try selecting the above two cells (SHIFT + click) and hiding/unhiding their code with the \"W\"/SHIFT + \"W\" keys.\n", + "\n", + "Want to hide everything or need to start over? Click on the '' icon above. This toggles hidind all code and inputs at once. \n", + "\n", + "When the notebook is formatted to your liking, click on the \"Hide Code\" menu bar to export into your desired format." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Hide code", + "hide_code_all_hidden": false, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..ed88f04 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +hide_code==0.5.5 \ No newline at end of file From 76508a7b4bc53972c6fa4cfc0fda3537fe81c2e0 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 08:06:35 -0500 Subject: [PATCH 24/60] Adding latex and wkhtmltopdf dependencies. --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 5ef37a7..249d88c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,8 @@ install: - pip install jupyter - pip install pdfkit - pip install . + - apt install texlive-xetex xvfb libfontconfig wkhtmltopdf + # command to run tests script: - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_slides From aa857bafc09530b0b1c318c5bfbcd13f0988e049 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 08:55:57 -0500 Subject: [PATCH 25/60] Added sudo. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 249d88c..609a106 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ install: - pip install jupyter - pip install pdfkit - pip install . - - apt install texlive-xetex xvfb libfontconfig wkhtmltopdf + - sudo apt install texlive-xetex xvfb libfontconfig wkhtmltopdf # command to run tests script: From ad2f4a9ef8a58d3fd4784cee655caa034553114e Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 09:00:18 -0500 Subject: [PATCH 26/60] More fixes. --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 609a106..13cfbe8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,8 @@ install: - pip install jupyter - pip install pdfkit - pip install . - - sudo apt install texlive-xetex xvfb libfontconfig wkhtmltopdf + - sudo apt-get update + - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf # command to run tests script: From dc5282fd67ac389d486bfc6dd8c1ba4c99df8826 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 09:17:59 -0500 Subject: [PATCH 27/60] Disabling wkhtmltopdf pdf test and adding pandoc dependency. --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 13cfbe8..1d453b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,12 +20,13 @@ install: - pip install pdfkit - pip install . - sudo apt-get update - - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf + - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc # command to run tests script: - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_slides - - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf + # wkhtmltopdf has a bug in Ubuntu 16.04 apt package https://unix.stackexchange.com/questions/192642/wkhtmltopdf-qxcbconnection-could-not-connect-to-display + # - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_html - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_latex - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_latexpdf From 7460d6398561a7a2c08e4c7a8bf3271cf2bbcc6c Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 09:33:46 -0500 Subject: [PATCH 28/60] Adding recommended tex packages. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1d453b0..dda4570 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - pip install pdfkit - pip install . - sudo apt-get update - - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc + - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended # command to run tests script: From 019186a3c3c5eedc2a87dc5fc2af82b1a04e9d5a Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 09:40:35 -0500 Subject: [PATCH 29/60] Added texlive-latex-extra. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dda4570..35693bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - pip install pdfkit - pip install . - sudo apt-get update - - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended + - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended texlive-latex-extra # command to run tests script: From 91e9acd1c752805adfc95afcc94900daa2b66100 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 09:42:01 -0500 Subject: [PATCH 30/60] Added texlive-generic-extra. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 35693bc..29f5c4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - pip install pdfkit - pip install . - sudo apt-get update - - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended texlive-latex-extra + - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended texlive-latex-extra texlive-generic-extra # command to run tests script: From 434569c0b48040c6ebb4a65efbc655c9b0fbf9d4 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 09:49:12 -0500 Subject: [PATCH 31/60] Adding lmodern. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 29f5c4a..01ef9f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: - pip install pdfkit - pip install . - sudo apt-get update - - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended texlive-latex-extra texlive-generic-extra + - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended texlive-latex-extra texlive-generic-extra lmodern # command to run tests script: From 16cc55d462ccf4bb1cc19c2450565bbcba7ef420 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 17:00:48 -0500 Subject: [PATCH 32/60] Added post build commands for binder. --- environment.yaml | 0 postBuild | 3 +++ 2 files changed, 3 insertions(+) delete mode 100644 environment.yaml create mode 100644 postBuild diff --git a/environment.yaml b/environment.yaml deleted file mode 100644 index e69de29..0000000 diff --git a/postBuild b/postBuild new file mode 100644 index 0000000..adceb67 --- /dev/null +++ b/postBuild @@ -0,0 +1,3 @@ +jupyter nbextension install hide_code --py --sys-prefix +jupyter nbextension enable hide_code --py --sys-prefix +jupyter serverextension install hide_code --py --sys-prefix \ No newline at end of file From 6cb13317e1978b333f867864605acd5a01a7f5a9 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 17:01:36 -0500 Subject: [PATCH 33/60] Fixed typo. --- postBuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postBuild b/postBuild index adceb67..b52d569 100644 --- a/postBuild +++ b/postBuild @@ -1,3 +1,3 @@ jupyter nbextension install hide_code --py --sys-prefix jupyter nbextension enable hide_code --py --sys-prefix -jupyter serverextension install hide_code --py --sys-prefix \ No newline at end of file +jupyter serverextension enable hide_code --py --sys-prefix \ No newline at end of file From e3386718ed8f535c5050944b43d9a1065f1e4139 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 19:42:09 -0500 Subject: [PATCH 34/60] Fixed issue with parsing base pathname. --- hide_code/hide_code.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hide_code/hide_code.js b/hide_code/hide_code.js index a5b1ce7..402f438 100644 --- a/hide_code/hide_code.js +++ b/hide_code/hide_code.js @@ -156,7 +156,10 @@ function ($, celltoolbar, Jupyter){ function exportLink(path){ // return window.location.origin + window.location.pathname + "/export/" + path; - return window.location.origin + '/notebooks/' + Jupyter.notebook.notebook_path + "/export/" + path; + // this is a hack to get the base pathname from the url. Need to do this so I can reset the export URLs + // when a notebook is renamed. + var pathname = window.location.pathname.split('/').filter(e=> !Jupyter.notebook.notebook_path.split('/').includes(e)).join('/'); + return window.location.origin + pathname + '/' + Jupyter.notebook.notebook_path + "/export/" + path; } var hideCodeCallback = ctb.utils.checkbox_ui_generator( 'Hide Code ', hideCodeSetter, hideCodeGetter); From b0a03682cfec0b688383b124f562f8d4b9ffa96c Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 19:42:17 -0500 Subject: [PATCH 35/60] Updated demo notebook. --- demo.ipynb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/demo.ipynb b/demo.ipynb index 1ee5cc1..5e4b567 100644 --- a/demo.ipynb +++ b/demo.ipynb @@ -16,7 +16,7 @@ "cell_type": "code", "execution_count": 1, "metadata": { - "hideCode": false, + "hideCode": true, "hidePrompt": false }, "outputs": [ @@ -24,7 +24,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Goodbye prompts\n" + "Goodbye code\n" ] } ], @@ -37,7 +37,7 @@ "execution_count": 2, "metadata": { "hideCode": false, - "hidePrompt": false + "hidePrompt": true }, "outputs": [ { @@ -156,7 +156,6 @@ } ], "metadata": { - "celltoolbar": "Hide code", "hide_code_all_hidden": false, "kernelspec": { "display_name": "Python 3", @@ -173,7 +172,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.8.1" } }, "nbformat": 4, From 46e129599b4fef8ef4ef8921569e31f0aa409494 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 19:42:47 -0500 Subject: [PATCH 36/60] Updated README. --- README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index fcb81f0..b8001e9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![PyPI version](https://badge.fury.io/py/hide_code.svg) ![MIT license](https://img.shields.io/github/license/mashape/apistatus.svg) Release: ![Travis release build](https://travis-ci.org/kirbs-/hide_code.svg?branch=master) Dev: ![Dev Build Status](https://travis-ci.org/kirbs-/hide_code.svg?branch=dev) -hide_code is a Jupyter notebook extension to selectively hide code, prompts and outputs with PDF and HTML exporting support. +hide_code is a Jupyter notebook extension to selectively hide code, prompts and outputs with PDF and HTML exporting support. Check out the demo with [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kirbs-/hide_code/dev?filepath=demo.ipynb) ![demo](/images/demo.gif) @@ -18,9 +18,19 @@ hide_code is a Jupyter notebook extension to selectively hide code, prompts and Note: add `--sys-prefix` to `jupyter nbextension` to install into virtualenv or conda environment. -## New in 0.5.0 -* Export Reveal.js slides or latex templates. -* Support for nbconvert 5.x+ and notebook 5.x+. +## New in 0.5.3 & 0.5.5 +#### Improvements +* Simplified extension installation. No longer need to use nbextension/serverextension commands after pip install. +* No longer supporting Python 2.7. Install hide_code==0.5.2 for Python 2.7. +#### Bug Fixes +* Fixed latexpdf exporting. +* Changed nbconvert --to hide_code_pdf to use pdfkit. +* Fixed issue exporting notebooks after renaming a notebook. +* Resolved issue exporting notebooks with spaces in notebook name. +* Updated reading file to always use utf-8 encoding. This should resolve non-latin character issues. +* Renamed license file. + + ## Documentation Visit the [Wiki](https://github.com/kirbs-/hide_code/wiki). @@ -29,4 +39,4 @@ Visit the [Wiki](https://github.com/kirbs-/hide_code/wiki). * Jupyter notebook ~>5.1 * Jupyter nbconvert ~>5.0. * pdfkit & [wkhtmltopdf](http://wkhtmltopdf.org/) -* Python 2.7 or 3.3+ +* Python 3.4+ From 9acca75723eabfde958b5b6a5414b57e07788d1f Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 19:52:05 -0500 Subject: [PATCH 37/60] Adding apt packages for binder. --- apt.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 apt.txt diff --git a/apt.txt b/apt.txt new file mode 100644 index 0000000..5817b18 --- /dev/null +++ b/apt.txt @@ -0,0 +1,10 @@ +texlive-xetex +xvfb +libfontconfig +wkhtmltopdf +pandoc +texlive-fonts-recommended +texlive-generic-recommended +texlive-latex-extra +texlive-generic-extra +lmodern \ No newline at end of file From f85cd9d88b32d197d604c3da4bdb461993d01143 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 20:14:08 -0500 Subject: [PATCH 38/60] Patching wkthmltopdf in binder. --- postBuild | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/postBuild b/postBuild index b52d569..aac0b99 100644 --- a/postBuild +++ b/postBuild @@ -1,3 +1,14 @@ jupyter nbextension install hide_code --py --sys-prefix jupyter nbextension enable hide_code --py --sys-prefix -jupyter serverextension enable hide_code --py --sys-prefix \ No newline at end of file +jupyter serverextension enable hide_code --py --sys-prefix + +# hack to use allow headless wkhtmltopdf via xvfb on Ubuntu/Debian see: +# https://github.com/fomightez/jupyter_hide_code/blob/master/postBuild +# https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server +cd ~ +# enable xvfb with wkhtmltopdf as described here so it will work with pdfkit similar to as shown at https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server and more like how I activated orca with xvfb at https://github.com/fomightez/orca-plotly-binderized/blob/master/postBuild +# When this works, it should allow the test at the last line of the code at https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server , i.e., `wkhtmltopdf http://www.google.com output.pdf`, at least not give that it cannot connect to X display +mkdir -p ~/.local/bin +printf '#!/bin/bash \nxvfb-run --auto-servernum --server-args "-screen 0 640x480x24" /usr/bin/wkhtmltopdf "$@"' > ~/.local/bin/wkhtmltopdf.sh +chmod 777 ~/.local/bin/wkhtmltopdf.sh +ln -s ~/.local/bin/wkhtmltopdf.sh ~/.local/bin/wkhtmltopdf \ No newline at end of file From 2859557c7fab632f4bc84b134afb9c28dcfdff8c Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 20:19:47 -0500 Subject: [PATCH 39/60] Ignoring notebook files again. --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b48c01b..af7b1be 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ hide_code.sublime-workspace /hide_code/test/.ipynb_checkpoints/* *.iml *.idea -# *.ipynb +*.ipynb *.pdf *.html s .vscode From e665b9cbf9408de3f0ec4af802d0b1b727cc4978 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 20:20:44 -0500 Subject: [PATCH 40/60] Binder demo finished. Resolves #84. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8001e9..3a86841 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![PyPI version](https://badge.fury.io/py/hide_code.svg) ![MIT license](https://img.shields.io/github/license/mashape/apistatus.svg) Release: ![Travis release build](https://travis-ci.org/kirbs-/hide_code.svg?branch=master) Dev: ![Dev Build Status](https://travis-ci.org/kirbs-/hide_code.svg?branch=dev) -hide_code is a Jupyter notebook extension to selectively hide code, prompts and outputs with PDF and HTML exporting support. Check out the demo with [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kirbs-/hide_code/dev?filepath=demo.ipynb) +hide_code is a Jupyter notebook extension to selectively hide code, prompts and outputs with PDF and HTML exporting support. Check out the demo with [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kirbs-/hide_code/master?filepath=demo.ipynb) ![demo](/images/demo.gif) From 94e5fc98633aada356042402896f7f81607ac962 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 17 Feb 2020 20:38:15 -0500 Subject: [PATCH 41/60] Version bump. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e050244..d376924 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ def run(self): # 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.5', + version='0.5.6', description='A Jupyter notebook extension to hide code, prompts and outputs.', long_description=long_description, From ac503acff59eb7690965d80c83ca3c3273f0b830 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Wed, 29 Jul 2020 06:35:25 -0400 Subject: [PATCH 42/60] Updated README. --- README.md | 2 ++ README.rst | 1 + 2 files changed, 3 insertions(+) diff --git a/README.md b/README.md index 3a86841..84bc92a 100644 --- a/README.md +++ b/README.md @@ -40,3 +40,5 @@ Visit the [Wiki](https://github.com/kirbs-/hide_code/wiki). * Jupyter nbconvert ~>5.0. * pdfkit & [wkhtmltopdf](http://wkhtmltopdf.org/) * Python 3.4+ + +![hide_code-hits](https://caspersci.uk.to/cgi-bin/hits.cgi?q=hide_code&style=social&r=https://github.com/kirbs-/hide_code&l=https://caspersci.uk.to/images/tqdm.png&f=https://raw.githubusercontent.com/tqdm/tqdm/master/images/logo.gif) \ No newline at end of file diff --git a/README.rst b/README.rst index 530877d..5cb9354 100644 --- a/README.rst +++ b/README.rst @@ -10,3 +10,4 @@ Release build hide_code is an extension for Jupyter/IPython notebooks to selectively hide code, prompts and output. Make a notebook a code free document for exporting or presenting. Documentation at https://github.com/kirbs-/hide_code +.. |hide_code-hits| image:: https://caspersci.uk.to/cgi-bin/hits.cgi?q=hide_code&style=social&r=https://github.com/kirbs-/hide_code&l=https://caspersci.uk.to/images/tqdm.png&f=https://raw.githubusercontent.com/tqdm/tqdm/master/images/logo.gif \ No newline at end of file From 4ca4e6e55ba8b699b4dc49f663c894edd5bf7c9b Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 17 Oct 2020 10:16:02 -0400 Subject: [PATCH 43/60] Restricting nbconvert and traitlet versions. Temporarily resolves #92. --- setup.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/setup.py b/setup.py index d376924..f6f0a44 100644 --- a/setup.py +++ b/setup.py @@ -65,9 +65,6 @@ def run(self): # Specify the Python versions you support here. In particular, ensure # that you indicate whether you support Python 2, Python 3 or both. 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.3', - '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', @@ -85,7 +82,7 @@ def run(self): # your project is installed. For an analysis of "install_requires" vs pip's # requirements files see: # https://packaging.python.org/en/latest/requirements.html - install_requires=['jupyter', 'pdfkit', 'nbconvert>=5.0', 'notebook>=5.1'], + install_requires=['jupyter', 'pdfkit', 'nbconvert>=5.0,<6', 'notebook>=5.1'], # If there are data files included in your packages that need to be # installed, specify them here. If using Python 2.6 or less, then these From ad979a39087a2b6f513670922d6913e9d8766bbc Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 17 Oct 2020 10:26:47 -0400 Subject: [PATCH 44/60] Restricting nbconvert and traitlet versions. Temporarily resolves #92. --- hide_code/hide_code_html_exporter.py | 5 +++-- setup.py | 10 ++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/hide_code/hide_code_html_exporter.py b/hide_code/hide_code_html_exporter.py index 06204a1..cc07b3a 100644 --- a/hide_code/hide_code_html_exporter.py +++ b/hide_code/hide_code_html_exporter.py @@ -25,7 +25,8 @@ def template_path(self): `./templates/` so append it to the search path. (see next section) """ return super(HideCodeHTMLExporter, self).template_path + [os.path.join(os.path.dirname(__file__), "Templates")] + # return [os.path.join(os.path.dirname(__file__), "Templates")] - # @default('default_template_path') - # def _default_template_path_default(self): + # @default('template_path') + # def _default_template_path(self): # return os.path.join(os.path.dirname(__file__), "Templates") diff --git a/setup.py b/setup.py index d376924..21f2114 100644 --- a/setup.py +++ b/setup.py @@ -65,9 +65,6 @@ def run(self): # Specify the Python versions you support here. In particular, ensure # that you indicate whether you support Python 2, Python 3 or both. 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.3', - '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', @@ -85,7 +82,12 @@ def run(self): # your project is installed. For an analysis of "install_requires" vs pip's # requirements files see: # https://packaging.python.org/en/latest/requirements.html - install_requires=['jupyter', 'pdfkit', 'nbconvert>=5.0', 'notebook>=5.1'], + install_requires=[ + 'jupyter', + 'pdfkit', + 'nbconvert>=5.0,<6', + 'notebook>=5.1', + 'traitlets<5'], # If there are data files included in your packages that need to be # installed, specify them here. If using Python 2.6 or less, then these From 052ffc9f3c0398ff878922ca35dbfb59ef55dc6a Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 19 Oct 2020 07:06:02 -0400 Subject: [PATCH 45/60] Updated readme --- README.md | 7 +++++-- requirements.txt | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 84bc92a..b0db7a1 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,13 @@ hide_code is a Jupyter notebook extension to selectively hide code, prompts and Note: add `--sys-prefix` to `jupyter nbextension` to install into virtualenv or conda environment. -## New in 0.5.3 & 0.5.5 +## New in 0.5.3, 0.5.5 and 0.5.6 #### Improvements +* Added Binder demo [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kirbs-/hide_code/master?filepath=demo.ipynb) * Simplified extension installation. No longer need to use nbextension/serverextension commands after pip install. -* No longer supporting Python 2.7. Install hide_code==0.5.2 for Python 2.7. +* No longer supporting Python 2.7 or . Install hide_code==0.5.2 for Python 2.7. +* 0.5.6 is the last version to support Python versions below 3.7. + #### Bug Fixes * Fixed latexpdf exporting. * Changed nbconvert --to hide_code_pdf to use pdfkit. diff --git a/requirements.txt b/requirements.txt index 61a404b..a69b82a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -hide_code==0.5.5 +hide_code==0.5.6 From c0ffd208b3d70f0ae1041468bcaccef7bfce1e1c Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 6 Dec 2020 20:51:18 -0500 Subject: [PATCH 46/60] Added jupyter lab extension. --- README.md | 29 ++++++++++++++++------------- setup.py | 15 ++++++++++----- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index b0db7a1..7aae635 100644 --- a/README.md +++ b/README.md @@ -6,32 +6,34 @@ hide_code is a Jupyter notebook extension to selectively hide code, prompts and ![demo](/images/demo.gif) -## Installation +## Jupyter Notebook Installation 1. `pip install hide_code` 2. `jupyter nbextension install --py hide_code` 3. `jupyter nbextension enable --py hide_code` 4. `jupyter serverextension enable --py hide_code` +## Jupyter Lab Installation +1. `pip instal hide_code[lab]` +2. `jupyter lab build` + ## Upgrading with nbextension 1. `pip install hide_code --upgrade` 2. `jupyter nbextension install --py hide_code` Note: add `--sys-prefix` to `jupyter nbextension` to install into virtualenv or conda environment. -## New in 0.5.3, 0.5.5 and 0.5.6 +## New in 0.6.0 #### Improvements +* Added experiemental Jupyter Lab support. See [Lab usage](https://github.com/kirbs-/hide_code/wiki/Lab%20Usage) for details and limitations. * Added Binder demo [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kirbs-/hide_code/master?filepath=demo.ipynb) * Simplified extension installation. No longer need to use nbextension/serverextension commands after pip install. * No longer supporting Python 2.7 or . Install hide_code==0.5.2 for Python 2.7. -* 0.5.6 is the last version to support Python versions below 3.7. +* 0.5.6 is the last version to support Python 3.6 and older. #### Bug Fixes -* Fixed latexpdf exporting. -* Changed nbconvert --to hide_code_pdf to use pdfkit. -* Fixed issue exporting notebooks after renaming a notebook. -* Resolved issue exporting notebooks with spaces in notebook name. -* Updated reading file to always use utf-8 encoding. This should resolve non-latin character issues. -* Renamed license file. +* Support for nbconvert 6.x and notebook 6.x +* Added extras_install [all] to install hide_code and all dependencies. Use `pip install hide_code[all]` to install. Resolves #85. + @@ -39,9 +41,10 @@ Note: add `--sys-prefix` to `jupyter nbextension` to install into virtualenv or Visit the [Wiki](https://github.com/kirbs-/hide_code/wiki). ## Requirements -* Jupyter notebook ~>5.1 -* Jupyter nbconvert ~>5.0. +* Jupyter notebook ~>6.1 +* Jupyter nbconvert ~>6.0. * pdfkit & [wkhtmltopdf](http://wkhtmltopdf.org/) -* Python 3.4+ +* Python 3.7+ + +![hide_code-hits](https://caspersci.uk.to/cgi-bin/hits.cgi?q=hide_code&style=social&r=https://github.com/kirbs-/hide_code&l=https://caspersci.uk.to/images/tqdm.png&f=https://raw.githubusercontent.com/tqdm/tqdm/master/images/logo.gif) -![hide_code-hits](https://caspersci.uk.to/cgi-bin/hits.cgi?q=hide_code&style=social&r=https://github.com/kirbs-/hide_code&l=https://caspersci.uk.to/images/tqdm.png&f=https://raw.githubusercontent.com/tqdm/tqdm/master/images/logo.gif) \ No newline at end of file diff --git a/setup.py b/setup.py index 21f2114..eebceeb 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ def run(self): # 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.6', + version='0.6.0', description='A Jupyter notebook extension to hide code, prompts and outputs.', long_description=long_description, @@ -64,7 +64,6 @@ def run(self): # Specify the Python versions you support here. In particular, ensure # that you indicate whether you support Python 2, Python 3 or both. - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', @@ -85,9 +84,15 @@ def run(self): install_requires=[ 'jupyter', 'pdfkit', - 'nbconvert>=5.0,<6', - 'notebook>=5.1', - 'traitlets<5'], + 'nbconvert<6', + 'notebook>=6.0', + 'traitlets<5.0' + ], + + extras_require={ + 'all': ['notebook', 'hide_code_lab'], + 'lab': ['hide_code_lab', 'jupyterlab~=2.0'], + }, # If there are data files included in your packages that need to be # installed, specify them here. If using Python 2.6 or less, then these From 29ad649e6958c6aec6d9ef915c0c433292624b6f Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sun, 6 Dec 2020 20:57:46 -0500 Subject: [PATCH 47/60] Updated readme --- README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7aae635..af4bf09 100644 --- a/README.md +++ b/README.md @@ -22,16 +22,13 @@ hide_code is a Jupyter notebook extension to selectively hide code, prompts and Note: add `--sys-prefix` to `jupyter nbextension` to install into virtualenv or conda environment. -## New in 0.6.0 +## Changes in 0.6.0 #### Improvements * Added experiemental Jupyter Lab support. See [Lab usage](https://github.com/kirbs-/hide_code/wiki/Lab%20Usage) for details and limitations. * Added Binder demo [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kirbs-/hide_code/master?filepath=demo.ipynb) * Simplified extension installation. No longer need to use nbextension/serverextension commands after pip install. -* No longer supporting Python 2.7 or . Install hide_code==0.5.2 for Python 2.7. +* No longer supporting Python 2.7. Install hide_code==0.5.2 for Python 2.7. * 0.5.6 is the last version to support Python 3.6 and older. - -#### Bug Fixes -* Support for nbconvert 6.x and notebook 6.x * Added extras_install [all] to install hide_code and all dependencies. Use `pip install hide_code[all]` to install. Resolves #85. @@ -42,7 +39,7 @@ Visit the [Wiki](https://github.com/kirbs-/hide_code/wiki). ## Requirements * Jupyter notebook ~>6.1 -* Jupyter nbconvert ~>6.0. +* Jupyter nbconvert ~5.x * pdfkit & [wkhtmltopdf](http://wkhtmltopdf.org/) * Python 3.7+ From b86568c2c94010fa0cdde61b0945d0fae12903a5 Mon Sep 17 00:00:00 2001 From: Nikki Aaron <31260131+NA-Dev@users.noreply.github.com> Date: Thu, 21 Jan 2021 17:52:03 -0500 Subject: [PATCH 48/60] Fix type in install code snippets "install" was spelled "instal" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af4bf09..accadd1 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ hide_code is a Jupyter notebook extension to selectively hide code, prompts and 4. `jupyter serverextension enable --py hide_code` ## Jupyter Lab Installation -1. `pip instal hide_code[lab]` +1. `pip install hide_code[lab]` 2. `jupyter lab build` ## Upgrading with nbextension From 72b1b3387fa608d4d8e9a5de6edfbc664924e6ec Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Fri, 26 Aug 2022 19:07:38 -0400 Subject: [PATCH 49/60] Resolves #101 and #98 --- hide_code/Templates/hide_code_base_style.tplx | 2 +- hide_code/hide_code_html_exporter.py | 11 +++++++++++ hide_code/hide_code_latex_exporter.py | 13 ++++++++++++- hide_code/hide_code_latexpdf_exporter.py | 13 ++++++++++++- hide_code/hide_code_pdf_exporter.py | 11 +++++++++++ hide_code/hide_code_slides_exporter.py | 13 ++++++++++++- 6 files changed, 59 insertions(+), 4 deletions(-) diff --git a/hide_code/Templates/hide_code_base_style.tplx b/hide_code/Templates/hide_code_base_style.tplx index 2af882e..e689954 100644 --- a/hide_code/Templates/hide_code_base_style.tplx +++ b/hide_code/Templates/hide_code_base_style.tplx @@ -1,6 +1,6 @@ ((= IPython input/output style =)) -((*- extends 'base.tplx' -*)) +((*- extends 'base.tex.j2' -*)) % Custom definitions ((* block definitions *)) diff --git a/hide_code/hide_code_html_exporter.py b/hide_code/hide_code_html_exporter.py index cc07b3a..a38ac3a 100644 --- a/hide_code/hide_code_html_exporter.py +++ b/hide_code/hide_code_html_exporter.py @@ -14,6 +14,8 @@ def __init__(self, config=None, **kw): # self.preprocessors = ['hide_code.HideCodePreprocessor'] # self._init_preprocessors() + export_from_notebook = 'Hide Code HTML' + @default('template_file') def _template_file_default(self): return 'hide_code_full.tpl' @@ -30,3 +32,12 @@ def template_path(self): # @default('template_path') # def _default_template_path(self): # return os.path.join(os.path.dirname(__file__), "Templates") + + @property + def template_paths(self): + """ + We want to inherit from HTML template, and have template under + ``./templates/`` so append it to the search path. (see next section) + Note: nbconvert 6.0 changed ``template_path`` to ``template_paths`` + """ + return super()._template_paths() + [os.path.join(os.path.dirname(__file__), "Templates")] diff --git a/hide_code/hide_code_latex_exporter.py b/hide_code/hide_code_latex_exporter.py index fd21b84..7a24896 100644 --- a/hide_code/hide_code_latex_exporter.py +++ b/hide_code/hide_code_latex_exporter.py @@ -10,8 +10,10 @@ def __init__(self, config=None, **kw): self.preprocessors = ['hide_code.HideCodePreprocessor'] self._init_preprocessors() + export_from_notebook = 'Hide Code Latex' + def _template_file_default(self): - return 'hide_code_article' + return 'hide_code_article.tplx' @property def template_path(self): @@ -20,3 +22,12 @@ def template_path(self): `./templates/` so append it to the search path. (see next section) """ return super(HideCodeLatexExporter, self).template_path + [os.path.join(os.path.dirname(__file__), "Templates")] + + @property + def template_paths(self): + """ + We want to inherit from HTML template, and have template under + ``./templates/`` so append it to the search path. (see next section) + Note: nbconvert 6.0 changed ``template_path`` to ``template_paths`` + """ + return super()._template_paths() + [os.path.join(os.path.dirname(__file__), "Templates")] diff --git a/hide_code/hide_code_latexpdf_exporter.py b/hide_code/hide_code_latexpdf_exporter.py index 5d39a69..ebbe16d 100644 --- a/hide_code/hide_code_latexpdf_exporter.py +++ b/hide_code/hide_code_latexpdf_exporter.py @@ -13,8 +13,10 @@ def __init__(self, config=None, **kw): self.preprocessors = ['hide_code.HideCodePreprocessor'] self._init_preprocessors() + export_from_notebook = 'Hide Code PDF (Latex)' + def _template_file_default(self): - return 'hide_code_article' + return 'hide_code_article.tplx' @property def template_path(self): @@ -23,3 +25,12 @@ def template_path(self): `./templates/` so append it to the search path. (see next section) """ return super(HideCodeLatexPDFExporter, self).template_path + [os.path.join(os.path.dirname(__file__), "Templates")] + + @property + def template_paths(self): + """ + We want to inherit from HTML template, and have template under + ``./templates/`` so append it to the search path. (see next section) + Note: nbconvert 6.0 changed ``template_path`` to ``template_paths`` + """ + return super()._template_paths() + [os.path.join(os.path.dirname(__file__), "Templates")] \ No newline at end of file diff --git a/hide_code/hide_code_pdf_exporter.py b/hide_code/hide_code_pdf_exporter.py index f92def7..e1c6b6f 100644 --- a/hide_code/hide_code_pdf_exporter.py +++ b/hide_code/hide_code_pdf_exporter.py @@ -20,6 +20,8 @@ def __init__(self, config=None, **kw): # self.preprocessors = ['hide_code.HideCodePreprocessor'] # self._init_preprocessors() + export_from_notebook = 'Hide Code PDF (HTML)' + @default('file_extension') def _file_extension_default(self): return '.pdf' @@ -39,3 +41,12 @@ def template_path(self): `./templates/` so append it to the search path. (see next section) """ return super(HideCodePDFExporter, self).template_path + [os.path.join(os.path.dirname(__file__), "Templates")] + + @property + def template_paths(self): + """ + We want to inherit from HTML template, and have template under + ``./templates/`` so append it to the search path. (see next section) + Note: nbconvert 6.0 changed ``template_path`` to ``template_paths`` + """ + return super()._template_paths() + [os.path.join(os.path.dirname(__file__), "Templates")] diff --git a/hide_code/hide_code_slides_exporter.py b/hide_code/hide_code_slides_exporter.py index 5ccb4d4..d041bd8 100644 --- a/hide_code/hide_code_slides_exporter.py +++ b/hide_code/hide_code_slides_exporter.py @@ -10,8 +10,10 @@ def __init__(self, config=None, **kw): self.preprocessors = ['hide_code.HideCodePreprocessor'] self._init_preprocessors() + export_from_notebook = 'Hide Code Slides' + def _template_file_default(self): - return 'hide_code_slides' + return 'hide_code_slides.tpl' @property def template_path(self): @@ -20,3 +22,12 @@ def template_path(self): `./templates/` so append it to the search path. (see next section) """ return super(HideCodeSlidesExporter, self).template_path + [os.path.join(os.path.dirname(__file__), "Templates")] + + @property + def template_paths(self): + """ + We want to inherit from HTML template, and have template under + ``./templates/`` so append it to the search path. (see next section) + Note: nbconvert 6.0 changed ``template_path`` to ``template_paths`` + """ + return super()._template_paths() + [os.path.join(os.path.dirname(__file__), "Templates")] \ No newline at end of file From b24c284555f5a990863dfd1f63abf1251cf95ae7 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Fri, 26 Aug 2022 19:21:15 -0400 Subject: [PATCH 50/60] Finished poetry migration --- poetry.lock | 1567 ++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 25 + 2 files changed, 1592 insertions(+) create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..3c51c5b --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1567 @@ +[[package]] +name = "appnope" +version = "0.1.3" +description = "Disable App Nap on macOS >= 10.9" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "argon2-cffi" +version = "21.3.0" +description = "The secure Argon2 password hashing algorithm." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["cogapp", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "pre-commit", "pytest", "sphinx", "sphinx-notfound-page", "tomli"] +docs = ["furo", "sphinx", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "asttokens" +version = "2.0.8" +description = "Annotate AST trees with source code positions" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[package.extras] +test = ["astroid (<=2.5.3)", "pytest"] + +[[package]] +name = "attrs" +version = "22.1.0" +description = "Classes Without Boilerplate" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] + +[[package]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "beautifulsoup4" +version = "4.11.1" +description = "Screen-scraping library" +category = "main" +optional = false +python-versions = ">=3.6.0" + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "5.0.1" +description = "An easy safelist-based HTML-sanitizing tool." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.2)"] +dev = ["Sphinx (==4.3.2)", "black (==22.3.0)", "build (==0.8.0)", "flake8 (==4.0.1)", "hashin (==0.17.0)", "mypy (==0.961)", "pip-tools (==6.6.2)", "pytest (==7.1.2)", "tox (==3.25.0)", "twine (==4.0.1)", "wheel (==0.37.1)"] + +[[package]] +name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "colorama" +version = "0.4.5" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "debugpy" +version = "1.6.3" +description = "An implementation of the Debug Adapter Protocol for Python" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "executing" +version = "0.10.0" +description = "Get the currently executing AST node of a frame, and other information" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "fastjsonschema" +version = "2.16.1" +description = "Fastest Python implementation of JSON schema" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "importlib-metadata" +version = "4.12.0" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] + +[[package]] +name = "ipykernel" +version = "6.15.1" +description = "IPython Kernel for Jupyter" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +debugpy = ">=1.0" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=17" +tornado = ">=6.1" +traitlets = ">=5.1.0" + +[package.extras] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=6.0)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.4.0" +description = "IPython: Productive Interactive Computing" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" + +[package.extras] +all = ["Sphinx (>=1.3)", "black", "curio", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.19)", "pandas", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "testpath", "trio"] +black = ["black"] +doc = ["Sphinx (>=1.3)"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test_extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.19)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] + +[[package]] +name = "ipython-genutils" +version = "0.2.0" +description = "Vestigial utilities from IPython" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "ipywidgets" +version = "8.0.1" +description = "Jupyter interactive widgets" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +ipykernel = ">=4.5.1" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0,<4.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0,<5.0" + +[package.extras] +test = ["jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "jedi" +version = "0.18.1" +description = "An autocompletion tool for Python that can be used for text editors." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +parso = ">=0.8.0,<0.9.0" + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jsonschema" +version = "4.14.0" +description = "An implementation of JSON Schema validation for Python" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +attrs = ">=17.4.0" +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jupyter" +version = "1.0.0" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +nbconvert = "*" +notebook = "*" +qtconsole = "*" + +[[package]] +name = "jupyter-client" +version = "7.3.4" +description = "Jupyter protocol implementation and client libraries" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +entrypoints = "*" +jupyter-core = ">=4.9.2" +nest-asyncio = ">=1.5.4" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.0" +traitlets = "*" + +[package.extras] +doc = ["ipykernel", "myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +test = ["codecov", "coverage", "ipykernel (>=6.5)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.4.4" +description = "Jupyter terminal console" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +ipykernel = "*" +ipython = "*" +jupyter-client = ">=7.0.0" +prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" +pygments = "*" + +[package.extras] +test = ["pexpect"] + +[[package]] +name = "jupyter-core" +version = "4.11.1" +description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = "*" + +[package.extras] +test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.2.2" +description = "Pygments theme using JupyterLab CSS variables" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.2" +description = "Jupyter interactive widgets for JupyterLab" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "lxml" +version = "4.9.1" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html5 = ["html5lib"] +htmlsoup = ["beautifulsoup4"] +source = ["Cython (>=0.29.7)"] + +[[package]] +name = "markupsafe" +version = "2.1.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "matplotlib-inline" +version = "0.1.6" +description = "Inline Matplotlib backend for Jupyter" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mistune" +version = "2.0.4" +description = "A sane Markdown parser with useful plugins and renderers" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "nbclient" +version = "0.6.6" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "main" +optional = false +python-versions = ">=3.7.0" + +[package.dependencies] +jupyter-client = ">=6.1.5" +nbformat = ">=5.0" +nest-asyncio = "*" +traitlets = ">=5.2.2" + +[package.extras] +sphinx = ["Sphinx (>=1.7)", "autodoc-traits", "mock", "moto", "myst-parser", "sphinx-book-theme"] +test = ["black", "check-manifest", "flake8", "ipykernel", "ipython (<8.0.0)", "ipywidgets (<8.0.0)", "mypy", "pip (>=18.1)", "pre-commit", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=60.0)", "testpath", "twine (>=1.11.0)", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.0.0" +description = "Converting Jupyter Notebooks" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "*" +defusedxml = "*" +importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +lxml = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<3" +nbclient = ">=0.5.0" +nbformat = ">=5.1" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.0" + +[package.extras] +all = ["ipykernel", "ipython", "ipywidgets (>=7)", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pyqtwebengine (>=5.15)", "pytest", "pytest-cov", "pytest-dependency", "sphinx (==5.0.2)", "sphinx-rtd-theme", "tornado (>=6.1)"] +docs = ["ipython", "nbsphinx (>=0.2.12)", "sphinx (==5.0.2)", "sphinx-rtd-theme"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] +webpdf = ["pyppeteer (>=1,<1.1)"] + +[[package]] +name = "nbformat" +version = "5.4.0" +description = "The Jupyter Notebook format" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +fastjsonschema = "*" +jsonschema = ">=2.6" +jupyter-core = "*" +traitlets = ">=5.1" + +[package.extras] +test = ["check-manifest", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.5.5" +description = "Patch asyncio to allow nested event loops" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "notebook" +version = "6.4.12" +description = "A web-based notebook environment for interactive computing" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=5.3.4" +jupyter-core = ">=4.6.1" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium", "testpath"] + +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" + +[[package]] +name = "pandocfilters" +version = "1.5.0" +description = "Utilities for writing pandoc filters in python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "parso" +version = "0.8.3" +description = "A Python Parser" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["docopt", "pytest (<6.0.0)"] + +[[package]] +name = "pdfkit" +version = "1.0.0" +description = "Wkhtmltopdf python wrapper to convert html to pdf using the webkit rendering engine and qt" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pexpect" +version = "4.8.0" +description = "Pexpect allows easy control of interactive console applications." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "prometheus-client" +version = "0.14.1" +description = "Python client for the Prometheus monitoring system." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.30" +description = "Library for building powerful interactive command lines in Python" +category = "main" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "5.9.1" +description = "Cross-platform lib for process and system monitoring in Python." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pygments" +version = "2.13.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pyparsing" +version = "3.0.9" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" +optional = false +python-versions = ">=3.6.8" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyrsistent" +version = "0.18.1" +description = "Persistent/Functional/Immutable data structures" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pywin32" +version = "304" +description = "Python for Window Extensions" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pywinpty" +version = "2.0.7" +description = "Pseudo terminal support for Windows from Python." +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pyzmq" +version = "23.2.1" +description = "Python bindings for 0MQ" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} +py = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "qtconsole" +version = "5.3.1" +description = "Jupyter Qt console" +category = "main" +optional = false +python-versions = ">= 3.7" + +[package.dependencies] +ipykernel = ">=4.1" +ipython-genutils = "*" +jupyter-client = ">=4.1" +jupyter-core = "*" +pygments = "*" +pyzmq = ">=17.1" +qtpy = ">=2.0.1" +traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" + +[package.extras] +doc = ["Sphinx (>=1.3)"] +test = ["flaky", "pytest", "pytest-qt"] + +[[package]] +name = "qtpy" +version = "2.2.0" +description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +packaging = "*" + +[package.extras] +test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] + +[[package]] +name = "send2trash" +version = "1.8.0" +description = "Send file to trash natively under Mac OS X, Windows and Linux." +category = "main" +optional = false +python-versions = "*" + +[package.extras] +nativelib = ["pyobjc-framework-cocoa", "pywin32"] +objc = ["pyobjc-framework-cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "soupsieve" +version = "2.3.2.post1" +description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "stack-data" +version = "0.4.0" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +asttokens = "*" +executing = "*" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "terminado" +version = "0.15.0" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +test = ["pre-commit", "pytest (>=6.0)", "pytest-timeout"] + +[[package]] +name = "tinycss2" +version = "1.1.1" +description = "A tiny CSS parser" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx-rtd-theme"] +test = ["coverage", "pytest", "pytest-cov", "pytest-flake8", "pytest-isort"] + +[[package]] +name = "tornado" +version = "6.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "main" +optional = false +python-versions = ">= 3.7" + +[[package]] +name = "traitlets" +version = "5.3.0" +description = "" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +test = ["pre-commit", "pytest"] + +[[package]] +name = "wcwidth" +version = "0.2.5" +description = "Measures the displayed width of unicode strings in a terminal" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "widgetsnbextension" +version = "4.0.2" +description = "Jupyter interactive widgets for Jupyter Notebook" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "zipp" +version = "3.8.1" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + +[metadata] +lock-version = "1.1" +python-versions = "^3.9" +content-hash = "10acd160e1794955d22ac7875bea3f9070df2f82de6cbd2bba1286bb884d53a6" + +[metadata.files] +appnope = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] +argon2-cffi = [ + {file = "argon2-cffi-21.3.0.tar.gz", hash = "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"}, + {file = "argon2_cffi-21.3.0-py3-none-any.whl", hash = "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80"}, +] +argon2-cffi-bindings = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] +asttokens = [ + {file = "asttokens-2.0.8-py2.py3-none-any.whl", hash = "sha256:e3305297c744ae53ffa032c45dc347286165e4ffce6875dc662b205db0623d86"}, + {file = "asttokens-2.0.8.tar.gz", hash = "sha256:c61e16246ecfb2cde2958406b4c8ebc043c9e6d73aaa83c941673b35e5d3a76b"}, +] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] +backcall = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] +beautifulsoup4 = [ + {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, + {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, +] +bleach = [ + {file = "bleach-5.0.1-py3-none-any.whl", hash = "sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a"}, + {file = "bleach-5.0.1.tar.gz", hash = "sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c"}, +] +cffi = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] +colorama = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] +debugpy = [ + {file = "debugpy-1.6.3-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:c4b2bd5c245eeb49824bf7e539f95fb17f9a756186e51c3e513e32999d8846f3"}, + {file = "debugpy-1.6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b8deaeb779699350deeed835322730a3efec170b88927debc9ba07a1a38e2585"}, + {file = "debugpy-1.6.3-cp310-cp310-win32.whl", hash = "sha256:fc233a0160f3b117b20216f1169e7211b83235e3cd6749bcdd8dbb72177030c7"}, + {file = "debugpy-1.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:dda8652520eae3945833e061cbe2993ad94a0b545aebd62e4e6b80ee616c76b2"}, + {file = "debugpy-1.6.3-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5c814596a170a0a58fa6fad74947e30bfd7e192a5d2d7bd6a12156c2899e13a"}, + {file = "debugpy-1.6.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c4cd6f37e3c168080d61d698390dfe2cd9e74ebf80b448069822a15dadcda57d"}, + {file = "debugpy-1.6.3-cp37-cp37m-win32.whl", hash = "sha256:3c9f985944a30cfc9ae4306ac6a27b9c31dba72ca943214dad4a0ab3840f6161"}, + {file = "debugpy-1.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:5ad571a36cec137ae6ed951d0ff75b5e092e9af6683da084753231150cbc5b25"}, + {file = "debugpy-1.6.3-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:adcfea5ea06d55d505375995e150c06445e2b20cd12885bcae566148c076636b"}, + {file = "debugpy-1.6.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:daadab4403427abd090eccb38d8901afd8b393e01fd243048fab3f1d7132abb4"}, + {file = "debugpy-1.6.3-cp38-cp38-win32.whl", hash = "sha256:6efc30325b68e451118b795eff6fe8488253ca3958251d5158106d9c87581bc6"}, + {file = "debugpy-1.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:86d784b72c5411c833af1cd45b83d80c252b77c3bfdb43db17c441d772f4c734"}, + {file = "debugpy-1.6.3-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:4e255982552b0edfe3a6264438dbd62d404baa6556a81a88f9420d3ed79b06ae"}, + {file = "debugpy-1.6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cca23cb6161ac89698d629d892520327dd1be9321c0960e610bbcb807232b45d"}, + {file = "debugpy-1.6.3-cp39-cp39-win32.whl", hash = "sha256:7c302095a81be0d5c19f6529b600bac971440db3e226dce85347cc27e6a61908"}, + {file = "debugpy-1.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:34d2cdd3a7c87302ba5322b86e79c32c2115be396f3f09ca13306d8a04fe0f16"}, + {file = "debugpy-1.6.3-py2.py3-none-any.whl", hash = "sha256:84c39940a0cac410bf6aa4db00ba174f973eef521fbe9dd058e26bcabad89c4f"}, + {file = "debugpy-1.6.3.zip", hash = "sha256:e8922090514a890eec99cfb991bab872dd2e353ebb793164d5f01c362b9a40bf"}, +] +decorator = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] +defusedxml = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] +entrypoints = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] +executing = [ + {file = "executing-0.10.0-py2.py3-none-any.whl", hash = "sha256:9c745f80cda11eb22b62cbecf21156491a794eb56ab06f9d286a44e62822b24e"}, + {file = "executing-0.10.0.tar.gz", hash = "sha256:d1cd87c2e371e9966261410c5b3769d6df2f9e4a79a83eebd2662dd3388f9833"}, +] +fastjsonschema = [ + {file = "fastjsonschema-2.16.1-py3-none-any.whl", hash = "sha256:2f7158c4de792555753d6c2277d6a2af2d406dfd97aeca21d17173561ede4fe6"}, + {file = "fastjsonschema-2.16.1.tar.gz", hash = "sha256:d6fa3ffbe719768d70e298b9fb847484e2bdfdb7241ed052b8d57a9294a8c334"}, +] +importlib-metadata = [ + {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, + {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, +] +ipykernel = [ + {file = "ipykernel-6.15.1-py3-none-any.whl", hash = "sha256:d8969c5b23b0e453a23166da5a669c954db399789293fcb03fec5cb25367e43c"}, + {file = "ipykernel-6.15.1.tar.gz", hash = "sha256:37acc3254caa8a0dafcddddc8dc863a60ad1b46487b68aee361d9a15bda98112"}, +] +ipython = [ + {file = "ipython-8.4.0-py3-none-any.whl", hash = "sha256:7ca74052a38fa25fe9bedf52da0be7d3fdd2fb027c3b778ea78dfe8c212937d1"}, + {file = "ipython-8.4.0.tar.gz", hash = "sha256:f2db3a10254241d9b447232cec8b424847f338d9d36f9a577a6192c332a46abd"}, +] +ipython-genutils = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] +ipywidgets = [ + {file = "ipywidgets-8.0.1-py3-none-any.whl", hash = "sha256:fc0744df3a964ecfd68a6d2debe547fe89db252b8d7bb3db5740aba72edb0e6c"}, + {file = "ipywidgets-8.0.1.tar.gz", hash = "sha256:1a296094203309e834f2781a275214d255ac5d266bbfa602f9f6915e1806614c"}, +] +jedi = [ + {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, + {file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"}, +] +jinja2 = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] +jsonschema = [ + {file = "jsonschema-4.14.0-py3-none-any.whl", hash = "sha256:9892b8d630a82990521a9ca630d3446bd316b5ad54dbe981338802787f3e0d2d"}, + {file = "jsonschema-4.14.0.tar.gz", hash = "sha256:15062f4cc6f591400cd528d2c355f2cfa6a57e44c820dc783aee5e23d36a831f"}, +] +jupyter = [ + {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, + {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, + {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, +] +jupyter-client = [ + {file = "jupyter_client-7.3.4-py3-none-any.whl", hash = "sha256:17d74b0d0a7b24f1c8c527b24fcf4607c56bee542ffe8e3418e50b21e514b621"}, + {file = "jupyter_client-7.3.4.tar.gz", hash = "sha256:aa9a6c32054b290374f95f73bb0cae91455c58dfb84f65c8591912b8f65e6d56"}, +] +jupyter-console = [ + {file = "jupyter_console-6.4.4-py3-none-any.whl", hash = "sha256:756df7f4f60c986e7bc0172e4493d3830a7e6e75c08750bbe59c0a5403ad6dee"}, + {file = "jupyter_console-6.4.4.tar.gz", hash = "sha256:172f5335e31d600df61613a97b7f0352f2c8250bbd1092ef2d658f77249f89fb"}, +] +jupyter-core = [ + {file = "jupyter_core-4.11.1-py3-none-any.whl", hash = "sha256:715e22bb6cc7db3718fddfac1f69f1c7e899ca00e42bdfd4bf3705452b9fd84a"}, + {file = "jupyter_core-4.11.1.tar.gz", hash = "sha256:2e5f244d44894c4154d06aeae3419dd7f1b0ef4494dc5584929b398c61cfd314"}, +] +jupyterlab-pygments = [ + {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, + {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, +] +jupyterlab-widgets = [ + {file = "jupyterlab_widgets-3.0.2-py3-none-any.whl", hash = "sha256:98303a281f4004670cdcea2ef4aecba19c580adc297664c593f967025625c8c5"}, + {file = "jupyterlab_widgets-3.0.2.tar.gz", hash = "sha256:47ab54cd165aa0cb3bcef1232d77471580cd2c36bbe2153fc5ba31e26ad87320"}, +] +lxml = [ + {file = "lxml-4.9.1-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed"}, + {file = "lxml-4.9.1-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc"}, + {file = "lxml-4.9.1-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc"}, + {file = "lxml-4.9.1-cp27-cp27m-win32.whl", hash = "sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3"}, + {file = "lxml-4.9.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627"}, + {file = "lxml-4.9.1-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84"}, + {file = "lxml-4.9.1-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837"}, + {file = "lxml-4.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad"}, + {file = "lxml-4.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5"}, + {file = "lxml-4.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8"}, + {file = "lxml-4.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8"}, + {file = "lxml-4.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d"}, + {file = "lxml-4.9.1-cp310-cp310-win32.whl", hash = "sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7"}, + {file = "lxml-4.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b"}, + {file = "lxml-4.9.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d"}, + {file = "lxml-4.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3"}, + {file = "lxml-4.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29"}, + {file = "lxml-4.9.1-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d"}, + {file = "lxml-4.9.1-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318"}, + {file = "lxml-4.9.1-cp35-cp35m-win32.whl", hash = "sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7"}, + {file = "lxml-4.9.1-cp35-cp35m-win_amd64.whl", hash = "sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4"}, + {file = "lxml-4.9.1-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b"}, + {file = "lxml-4.9.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf"}, + {file = "lxml-4.9.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3"}, + {file = "lxml-4.9.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391"}, + {file = "lxml-4.9.1-cp36-cp36m-win32.whl", hash = "sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e"}, + {file = "lxml-4.9.1-cp36-cp36m-win_amd64.whl", hash = "sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7"}, + {file = "lxml-4.9.1-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3"}, + {file = "lxml-4.9.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca"}, + {file = "lxml-4.9.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785"}, + {file = "lxml-4.9.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785"}, + {file = "lxml-4.9.1-cp37-cp37m-win32.whl", hash = "sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a"}, + {file = "lxml-4.9.1-cp37-cp37m-win_amd64.whl", hash = "sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e"}, + {file = "lxml-4.9.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130"}, + {file = "lxml-4.9.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715"}, + {file = "lxml-4.9.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036"}, + {file = "lxml-4.9.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387"}, + {file = "lxml-4.9.1-cp38-cp38-win32.whl", hash = "sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94"}, + {file = "lxml-4.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345"}, + {file = "lxml-4.9.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91"}, + {file = "lxml-4.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000"}, + {file = "lxml-4.9.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25"}, + {file = "lxml-4.9.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd"}, + {file = "lxml-4.9.1-cp39-cp39-win32.whl", hash = "sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb"}, + {file = "lxml-4.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d"}, + {file = "lxml-4.9.1-pp37-pypy37_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c"}, + {file = "lxml-4.9.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b"}, + {file = "lxml-4.9.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc"}, + {file = "lxml-4.9.1-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b"}, + {file = "lxml-4.9.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2"}, + {file = "lxml-4.9.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73"}, + {file = "lxml-4.9.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c"}, + {file = "lxml-4.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9"}, + {file = "lxml-4.9.1.tar.gz", hash = "sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f"}, +] +markupsafe = [ + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, + {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +] +matplotlib-inline = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] +mistune = [ + {file = "mistune-2.0.4-py2.py3-none-any.whl", hash = "sha256:182cc5ee6f8ed1b807de6b7bb50155df7b66495412836b9a74c8fbdfc75fe36d"}, + {file = "mistune-2.0.4.tar.gz", hash = "sha256:9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808"}, +] +nbclient = [ + {file = "nbclient-0.6.6-py3-none-any.whl", hash = "sha256:09bae4ea2df79fa6bc50aeb8278d8b79d2036792824337fa6eee834afae17312"}, + {file = "nbclient-0.6.6.tar.gz", hash = "sha256:0df76a7961d99a681b4796c74a1f2553b9f998851acc01896dce064ad19a9027"}, +] +nbconvert = [ + {file = "nbconvert-7.0.0-py3-none-any.whl", hash = "sha256:26843ae233167e8aae31c20e3e1d91f431f04c9f34363bbe2dd0d247f772641c"}, + {file = "nbconvert-7.0.0.tar.gz", hash = "sha256:fd1e361da30e30e4c5a5ae89f7cae95ca2a4d4407389672473312249a7ba0060"}, +] +nbformat = [ + {file = "nbformat-5.4.0-py3-none-any.whl", hash = "sha256:0d6072aaec95dddc39735c144ee8bbc6589c383fb462e4058abc855348152dad"}, + {file = "nbformat-5.4.0.tar.gz", hash = "sha256:44ba5ca6acb80c5d5a500f1e5b83ede8cbe364d5a495c4c8cf60aaf1ba656501"}, +] +nest-asyncio = [ + {file = "nest_asyncio-1.5.5-py3-none-any.whl", hash = "sha256:b98e3ec1b246135e4642eceffa5a6c23a3ab12c82ff816a92c612d68205813b2"}, + {file = "nest_asyncio-1.5.5.tar.gz", hash = "sha256:e442291cd942698be619823a17a86a5759eabe1f8613084790de189fe9e16d65"}, +] +notebook = [ + {file = "notebook-6.4.12-py3-none-any.whl", hash = "sha256:8c07a3bb7640e371f8a609bdbb2366a1976c6a2589da8ef917f761a61e3ad8b1"}, + {file = "notebook-6.4.12.tar.gz", hash = "sha256:6268c9ec9048cff7a45405c990c29ac9ca40b0bc3ec29263d218c5e01f2b4e86"}, +] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pandocfilters = [ + {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, + {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, +] +parso = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] +pdfkit = [ + {file = "pdfkit-1.0.0-py2-none-any.whl", hash = "sha256:cc122e5aed594198ff7aaa566f2950d2163763576ab891c161bb1f6c630f5a8e"}, + {file = "pdfkit-1.0.0-py3-none-any.whl", hash = "sha256:a7a4ca0d978e44fa8310c4909f087052430a6e8e0b1dd7ceef657f139789f96f"}, + {file = "pdfkit-1.0.0.tar.gz", hash = "sha256:992f821e1e18fc8a0e701ecae24b51a2d598296a180caee0a24c0af181da02a9"}, +] +pexpect = [ + {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, + {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, +] +pickleshare = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] +prometheus-client = [ + {file = "prometheus_client-0.14.1-py3-none-any.whl", hash = "sha256:522fded625282822a89e2773452f42df14b5a8e84a86433e3f8a189c1d54dc01"}, + {file = "prometheus_client-0.14.1.tar.gz", hash = "sha256:5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a"}, +] +prompt-toolkit = [ + {file = "prompt_toolkit-3.0.30-py3-none-any.whl", hash = "sha256:d8916d3f62a7b67ab353a952ce4ced6a1d2587dfe9ef8ebc30dd7c386751f289"}, + {file = "prompt_toolkit-3.0.30.tar.gz", hash = "sha256:859b283c50bde45f5f97829f77a4674d1c1fcd88539364f1b28a37805cfd89c0"}, +] +psutil = [ + {file = "psutil-5.9.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:799759d809c31aab5fe4579e50addf84565e71c1dc9f1c31258f159ff70d3f87"}, + {file = "psutil-5.9.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9272167b5f5fbfe16945be3db475b3ce8d792386907e673a209da686176552af"}, + {file = "psutil-5.9.1-cp27-cp27m-win32.whl", hash = "sha256:0904727e0b0a038830b019551cf3204dd48ef5c6868adc776e06e93d615fc5fc"}, + {file = "psutil-5.9.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e7e10454cb1ab62cc6ce776e1c135a64045a11ec4c6d254d3f7689c16eb3efd2"}, + {file = "psutil-5.9.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:56960b9e8edcca1456f8c86a196f0c3d8e3e361320071c93378d41445ffd28b0"}, + {file = "psutil-5.9.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:44d1826150d49ffd62035785a9e2c56afcea66e55b43b8b630d7706276e87f22"}, + {file = "psutil-5.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7be9d7f5b0d206f0bbc3794b8e16fb7dbc53ec9e40bbe8787c6f2d38efcf6c9"}, + {file = "psutil-5.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd9246e4cdd5b554a2ddd97c157e292ac11ef3e7af25ac56b08b455c829dca8"}, + {file = "psutil-5.9.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29a442e25fab1f4d05e2655bb1b8ab6887981838d22effa2396d584b740194de"}, + {file = "psutil-5.9.1-cp310-cp310-win32.whl", hash = "sha256:20b27771b077dcaa0de1de3ad52d22538fe101f9946d6dc7869e6f694f079329"}, + {file = "psutil-5.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:58678bbadae12e0db55186dc58f2888839228ac9f41cc7848853539b70490021"}, + {file = "psutil-5.9.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3a76ad658641172d9c6e593de6fe248ddde825b5866464c3b2ee26c35da9d237"}, + {file = "psutil-5.9.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6a11e48cb93a5fa606306493f439b4aa7c56cb03fc9ace7f6bfa21aaf07c453"}, + {file = "psutil-5.9.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:068935df39055bf27a29824b95c801c7a5130f118b806eee663cad28dca97685"}, + {file = "psutil-5.9.1-cp36-cp36m-win32.whl", hash = "sha256:0f15a19a05f39a09327345bc279c1ba4a8cfb0172cc0d3c7f7d16c813b2e7d36"}, + {file = "psutil-5.9.1-cp36-cp36m-win_amd64.whl", hash = "sha256:db417f0865f90bdc07fa30e1aadc69b6f4cad7f86324b02aa842034efe8d8c4d"}, + {file = "psutil-5.9.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:91c7ff2a40c373d0cc9121d54bc5f31c4fa09c346528e6a08d1845bce5771ffc"}, + {file = "psutil-5.9.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fea896b54f3a4ae6f790ac1d017101252c93f6fe075d0e7571543510f11d2676"}, + {file = "psutil-5.9.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3054e923204b8e9c23a55b23b6df73a8089ae1d075cb0bf711d3e9da1724ded4"}, + {file = "psutil-5.9.1-cp37-cp37m-win32.whl", hash = "sha256:d2d006286fbcb60f0b391741f520862e9b69f4019b4d738a2a45728c7e952f1b"}, + {file = "psutil-5.9.1-cp37-cp37m-win_amd64.whl", hash = "sha256:b14ee12da9338f5e5b3a3ef7ca58b3cba30f5b66f7662159762932e6d0b8f680"}, + {file = "psutil-5.9.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:19f36c16012ba9cfc742604df189f2f28d2720e23ff7d1e81602dbe066be9fd1"}, + {file = "psutil-5.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:944c4b4b82dc4a1b805329c980f270f170fdc9945464223f2ec8e57563139cf4"}, + {file = "psutil-5.9.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b6750a73a9c4a4e689490ccb862d53c7b976a2a35c4e1846d049dcc3f17d83b"}, + {file = "psutil-5.9.1-cp38-cp38-win32.whl", hash = "sha256:a8746bfe4e8f659528c5c7e9af5090c5a7d252f32b2e859c584ef7d8efb1e689"}, + {file = "psutil-5.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:79c9108d9aa7fa6fba6e668b61b82facc067a6b81517cab34d07a84aa89f3df0"}, + {file = "psutil-5.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:28976df6c64ddd6320d281128817f32c29b539a52bdae5e192537bc338a9ec81"}, + {file = "psutil-5.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b88f75005586131276634027f4219d06e0561292be8bd6bc7f2f00bdabd63c4e"}, + {file = "psutil-5.9.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:645bd4f7bb5b8633803e0b6746ff1628724668681a434482546887d22c7a9537"}, + {file = "psutil-5.9.1-cp39-cp39-win32.whl", hash = "sha256:32c52611756096ae91f5d1499fe6c53b86f4a9ada147ee42db4991ba1520e574"}, + {file = "psutil-5.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:f65f9a46d984b8cd9b3750c2bdb419b2996895b005aefa6cbaba9a143b1ce2c5"}, + {file = "psutil-5.9.1.tar.gz", hash = "sha256:57f1819b5d9e95cdfb0c881a8a5b7d542ed0b7c522d575706a80bedc848c8954"}, +] +ptyprocess = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] +pure-eval = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pycparser = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] +pygments = [ + {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, + {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, +] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] +pyrsistent = [ + {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, + {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, + {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, + {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] +pywin32 = [ + {file = "pywin32-304-cp310-cp310-win32.whl", hash = "sha256:3c7bacf5e24298c86314f03fa20e16558a4e4138fc34615d7de4070c23e65af3"}, + {file = "pywin32-304-cp310-cp310-win_amd64.whl", hash = "sha256:4f32145913a2447736dad62495199a8e280a77a0ca662daa2332acf849f0be48"}, + {file = "pywin32-304-cp310-cp310-win_arm64.whl", hash = "sha256:d3ee45adff48e0551d1aa60d2ec066fec006083b791f5c3527c40cd8aefac71f"}, + {file = "pywin32-304-cp311-cp311-win32.whl", hash = "sha256:30c53d6ce44c12a316a06c153ea74152d3b1342610f1b99d40ba2795e5af0269"}, + {file = "pywin32-304-cp311-cp311-win_amd64.whl", hash = "sha256:7ffa0c0fa4ae4077e8b8aa73800540ef8c24530057768c3ac57c609f99a14fd4"}, + {file = "pywin32-304-cp311-cp311-win_arm64.whl", hash = "sha256:cbbe34dad39bdbaa2889a424d28752f1b4971939b14b1bb48cbf0182a3bcfc43"}, + {file = "pywin32-304-cp36-cp36m-win32.whl", hash = "sha256:be253e7b14bc601718f014d2832e4c18a5b023cbe72db826da63df76b77507a1"}, + {file = "pywin32-304-cp36-cp36m-win_amd64.whl", hash = "sha256:de9827c23321dcf43d2f288f09f3b6d772fee11e809015bdae9e69fe13213988"}, + {file = "pywin32-304-cp37-cp37m-win32.whl", hash = "sha256:f64c0377cf01b61bd5e76c25e1480ca8ab3b73f0c4add50538d332afdf8f69c5"}, + {file = "pywin32-304-cp37-cp37m-win_amd64.whl", hash = "sha256:bb2ea2aa81e96eee6a6b79d87e1d1648d3f8b87f9a64499e0b92b30d141e76df"}, + {file = "pywin32-304-cp38-cp38-win32.whl", hash = "sha256:94037b5259701988954931333aafd39cf897e990852115656b014ce72e052e96"}, + {file = "pywin32-304-cp38-cp38-win_amd64.whl", hash = "sha256:ead865a2e179b30fb717831f73cf4373401fc62fbc3455a0889a7ddac848f83e"}, + {file = "pywin32-304-cp39-cp39-win32.whl", hash = "sha256:25746d841201fd9f96b648a248f731c1dec851c9a08b8e33da8b56148e4c65cc"}, + {file = "pywin32-304-cp39-cp39-win_amd64.whl", hash = "sha256:d24a3382f013b21aa24a5cfbfad5a2cd9926610c0affde3e8ab5b3d7dbcf4ac9"}, +] +pywinpty = [ + {file = "pywinpty-2.0.7-cp310-none-win_amd64.whl", hash = "sha256:d56361ed2bd3395347882a7a4e6246359e745a233e89c91786ab3d9421323c17"}, + {file = "pywinpty-2.0.7-cp37-none-win_amd64.whl", hash = "sha256:2d62ede3ed10feb0901b3b4667201766a741b6a2c69f27be623ba9fe9348447b"}, + {file = "pywinpty-2.0.7-cp38-none-win_amd64.whl", hash = "sha256:c3b7e6a2f0e5f86e0dc5cb5e4fec7de19adacc6900232e4a48a2ecf04bae447f"}, + {file = "pywinpty-2.0.7-cp39-none-win_amd64.whl", hash = "sha256:80a6713a586401c2a19efd2969ffd019eb85f18442611a3880e3d618887d2f84"}, + {file = "pywinpty-2.0.7.tar.gz", hash = "sha256:f52b2e51c46dac40708ede1d42577f3ddb9d7cf8acaa36c8e27b3d3b975f4c95"}, +] +pyzmq = [ + {file = "pyzmq-23.2.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:a3fd44b5046d247e7f0f1660bcafe7b5fb0db55d0934c05dd57dda9e1f823ce7"}, + {file = "pyzmq-23.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2141e6798d5981be04c08996d27962086a1aa3ea536fe9cf7e89817fd4523f86"}, + {file = "pyzmq-23.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a39ddb0431a68954bd318b923230fa5b649c9c62b0e8340388820c5f1b15bd2"}, + {file = "pyzmq-23.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e06747014a5ad1b28cebf5bc1ddcdaccfb44e9b441d35e6feb1286c8a72e54be"}, + {file = "pyzmq-23.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e0113d70b095339e99bb522fe7294f5ae6a7f3b2b8f52f659469a74b5cc7661"}, + {file = "pyzmq-23.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:71b32a1e827bdcbf73750e60370d3b07685816ff3d8695f450f0f8c3226503f8"}, + {file = "pyzmq-23.2.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:55568a020ad2cae9ae36da6058e7ca332a56df968f601cbdb7cf6efb2a77579a"}, + {file = "pyzmq-23.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c02a0cd39dc01659b3d6cb70bb3a41aebd9885fd78239acdd8d9c91351c4568"}, + {file = "pyzmq-23.2.1-cp310-cp310-win32.whl", hash = "sha256:e1fe30bcd5aea5948c42685fad910cd285eacb2518ea4dc6c170d6b535bee95d"}, + {file = "pyzmq-23.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:650389bbfca73955b262b2230423d89992f38ec48033307ae80e700eaa2fbb63"}, + {file = "pyzmq-23.2.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:e753eee6d3b93c5354e8ba0a1d62956ee49355f0a36e00570823ef64e66183f5"}, + {file = "pyzmq-23.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f07016e3cf088dbfc6e7c5a7b3f540db5c23b0190d539e4fd3e2b5e6beffa4b5"}, + {file = "pyzmq-23.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4805af9614b0b41b7e57d17673459facf85604dac502a5a9244f6e8c9a4de658"}, + {file = "pyzmq-23.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39dd252b683816935702825e5bf775df16090619ced9bb4ba68c2d0b6f0c9b18"}, + {file = "pyzmq-23.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:84678153432241bcdca2210cf4ff83560b200556867aea913ffbb960f5d5f340"}, + {file = "pyzmq-23.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:90d88f9d9a2ae6cfb1dc4ea2d1710cdf6456bc1b9a06dd1bb485c5d298f2517e"}, + {file = "pyzmq-23.2.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:794871988c34727c7f79bdfe2546e6854ae1fa2e1feb382784f23a9c6c63ecb3"}, + {file = "pyzmq-23.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c56b1a62a1fb87565343c57b6743fd5da6e138b8c6562361d7d9b5ce4acf399a"}, + {file = "pyzmq-23.2.1-cp311-cp311-win32.whl", hash = "sha256:c3ebf1668664d20c8f7d468955f18379b7d1f7bc8946b13243d050fa3888c7ff"}, + {file = "pyzmq-23.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:ec9803aca9491fd6f0d853d2a6147f19f8deaaa23b1b713d05c5d09e56ea7142"}, + {file = "pyzmq-23.2.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:385609812eafd9970c3752c51f2f6c4f224807e3e441bcfd8c8273877d00c8a8"}, + {file = "pyzmq-23.2.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b861db65f6b8906c8d6db51dde2448f266f0c66bf28db2c37aea50f58a849859"}, + {file = "pyzmq-23.2.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6b1e79bba24f6df1712e3188d5c32c480d8eda03e8ecff44dc8ecb0805fa62f3"}, + {file = "pyzmq-23.2.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:8dc66f109a245653b19df0f44a5af7a3f14cb8ad6c780ead506158a057bd36ce"}, + {file = "pyzmq-23.2.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:b815991c7d024bf461f358ad871f2be1135576274caed5749c4828859e40354e"}, + {file = "pyzmq-23.2.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:29b74774a0bfd3c4d98ac853f0bdca55bd9ec89d5b0def5486407cca54472ef8"}, + {file = "pyzmq-23.2.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:4bb798bef181648827019001f6be43e1c48b34b477763b37a8d27d8c06d197b8"}, + {file = "pyzmq-23.2.1-cp36-cp36m-win32.whl", hash = "sha256:565bd5ab81f6964fc4067ccf2e00877ad0fa917308975694bbb54378389215f8"}, + {file = "pyzmq-23.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:1f368a82b29f80071781b20663c0fc0c8f6b13273f9f5abe1526af939534f90f"}, + {file = "pyzmq-23.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c9cfaf530e6a7ff65f0afe275e99f983f68b54dfb23ea401f0bc297a632766b6"}, + {file = "pyzmq-23.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c558b50402fca1acc94329c5d8f12aa429738904a5cfb32b9ed3c61235221bb"}, + {file = "pyzmq-23.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:20bafc4095eab00f41a510579363a3f5e1f5c69d7ee10f1d88895c4df0259183"}, + {file = "pyzmq-23.2.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:f619fd38fc2641abfb53cca719c165182500600b82c695cc548a0f05f764be05"}, + {file = "pyzmq-23.2.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:044447ae4b2016a6b8697571fd633f799f860b19b76c4a2fd9b1140d52ee6745"}, + {file = "pyzmq-23.2.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:49d30ba7074f469e8167917abf9eb854c6503ae10153034a6d4df33618f1db5f"}, + {file = "pyzmq-23.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:48400b96788cdaca647021bf19a9cd668384f46e4d9c55cf045bdd17f65299c8"}, + {file = "pyzmq-23.2.1-cp37-cp37m-win32.whl", hash = "sha256:8a68f57b7a3f7b6b52ada79876be1efb97c8c0952423436e84d70cc139f16f0d"}, + {file = "pyzmq-23.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9e5bf6e7239fc9687239de7a283aa8b801ab85371116045b33ae20132a1325d6"}, + {file = "pyzmq-23.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ffc6b1623d0f9affb351db4ca61f432dca3628a5ee015f9bf2bfbe9c6836881c"}, + {file = "pyzmq-23.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4d6f110c56f7d5b4d64dde3a382ae61b6d48174e30742859d8e971b18b6c9e5c"}, + {file = "pyzmq-23.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9269fbfe3a4eb2009199120861c4571ef1655fdf6951c3e7f233567c94e8c602"}, + {file = "pyzmq-23.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12e62ff0d5223ec09b597ab6d73858b9f64a51221399f3cb08aa495e1dff7935"}, + {file = "pyzmq-23.2.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6fd5d0d50cbcf4bc376861529a907bed026a4cbe8c22a500ff8243231ef02433"}, + {file = "pyzmq-23.2.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9d0ab2936085c85a1fc6f9fd8f89d5235ae99b051e90ec5baa5e73ad44346e1f"}, + {file = "pyzmq-23.2.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:022cf5ea7bcaa8a06a03c2706e0ae66904b6138b2155577cd34c64bc7cc637ab"}, + {file = "pyzmq-23.2.1-cp38-cp38-win32.whl", hash = "sha256:28dbdb90b2f6b131f8f10e6081012e4e25234213433420e67e0c1162de537113"}, + {file = "pyzmq-23.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:10d1910ec381b851aeb024a042a13db178cb1edf125e76a4e9d2548ad103aadb"}, + {file = "pyzmq-23.2.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:99a5a77a10863493a1ee8dece02578c6b32025fb3afff91b40476bc489e81648"}, + {file = "pyzmq-23.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:aecd6ceaccc4b594e0092d6513ef3f1c0fa678dd89f86bb8ff1a47014b8fca35"}, + {file = "pyzmq-23.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:415ff62ac525d9add1e3550430a09b9928d2d24a20cc4ce809e67caac41219ab"}, + {file = "pyzmq-23.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:67975a9e1237b9ccc78f457bef17691bbdd2055a9d26e81ee914ba376846d0ce"}, + {file = "pyzmq-23.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38e106b64bad744fe469dc3dd864f2764d66399178c1bf39d45294cc7980f14f"}, + {file = "pyzmq-23.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8c842109d31a9281d678f668629241c405928afbebd913c48a5a8e7aee61f63d"}, + {file = "pyzmq-23.2.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:fefdf9b685fda4141b95ebec975946076a5e0723ff70b037032b2085c5317684"}, + {file = "pyzmq-23.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:79a87831b47a9f6161ad23fa5e89d5469dc585abc49f90b9b07fea8905ae1234"}, + {file = "pyzmq-23.2.1-cp39-cp39-win32.whl", hash = "sha256:342ca3077f47ec2ee41b9825142b614e03e026347167cbc72a59b618c4f6106c"}, + {file = "pyzmq-23.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:5e05492be125dce279721d6b54fd1b956546ecc4bcdfcf8e7b4c413bc0874c10"}, + {file = "pyzmq-23.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:07ed8aaf7ffe150af873269690cc654ffeca7491f62aae0f3821baa181f8d5fe"}, + {file = "pyzmq-23.2.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ad28ddb40db8e450d7d4bf8a1d765d3f87b63b10e7e9a825a3c130c6371a8c03"}, + {file = "pyzmq-23.2.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2f67b63f53c6994d601404fd1a329e6d940ac3dd1d92946a93b2b9c70df67b9f"}, + {file = "pyzmq-23.2.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c890309296f53f9aa32ffcfc51d805705e1982bffd27c9692a8f1e1b8de279f4"}, + {file = "pyzmq-23.2.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:624fd38071a817644acdae075b92a23ea0bdd126a58148288e8284d23ec361ce"}, + {file = "pyzmq-23.2.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a114992a193577cb62233abf8cb2832970f9975805a64740e325d2f895e7f85a"}, + {file = "pyzmq-23.2.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c780acddd2934c6831ff832ecbf78a45a7b62d4eb216480f863854a8b7d54fa7"}, + {file = "pyzmq-23.2.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d904f6595acfaaf99a1a61881fea068500c40374d263e5e073aa4005e5f9c28a"}, + {file = "pyzmq-23.2.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:929d548b74c0f82f7f95b54e4a43f9e4ce2523cfb8a54d3f7141e45652304b2a"}, + {file = "pyzmq-23.2.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f392cbea531b7142d1958c0d4a0c9c8d760dc451e5848d8dd3387804d3e3e62c"}, + {file = "pyzmq-23.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a0f09d85c45f58aa8e715b42f8b26beba68b3b63a8f7049113478aca26efbc30"}, + {file = "pyzmq-23.2.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e708fbfdf4ee3107422b69ca65da1b9f056b431fc0888096a8c1d6cd908e8f"}, + {file = "pyzmq-23.2.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35e635343ff367f697d00fa1484262bb68e36bc74c9b80737eac5a1e04c4e1b1"}, + {file = "pyzmq-23.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efb9e38b2a590282704269585de7eb33bf43dc294cad092e1b172e23d4c217e5"}, + {file = "pyzmq-23.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:407f909c4e8fde62fbdad9ebd448319792258cc0550c2815567a4d9d8d9e6d18"}, + {file = "pyzmq-23.2.1.tar.gz", hash = "sha256:2b381aa867ece7d0a82f30a0c7f3d4387b7cf2e0697e33efaa5bed6c5784abcd"}, +] +qtconsole = [ + {file = "qtconsole-5.3.1-py3-none-any.whl", hash = "sha256:d364592d7ede3257f1e17fcdbfd339c26e2cc638ca4fa4ee56a724e26ea13c81"}, + {file = "qtconsole-5.3.1.tar.gz", hash = "sha256:b73723fac43938b684dcb237a88510dc7721c43a726cea8ade179a2927c0a2f3"}, +] +qtpy = [ + {file = "QtPy-2.2.0-py3-none-any.whl", hash = "sha256:d283cfba378b0dbe36a55b68aea8ee2f86cd6ccf06c023af25bbe705ffbb29e5"}, + {file = "QtPy-2.2.0.tar.gz", hash = "sha256:d85f1b121f24a41ad26c55c446e66abdb7c528839f8c4f11f156ec4541903914"}, +] +send2trash = [ + {file = "Send2Trash-1.8.0-py3-none-any.whl", hash = "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08"}, + {file = "Send2Trash-1.8.0.tar.gz", hash = "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +soupsieve = [ + {file = "soupsieve-2.3.2.post1-py3-none-any.whl", hash = "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759"}, + {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, +] +stack-data = [ + {file = "stack_data-0.4.0-py3-none-any.whl", hash = "sha256:b94fed36d725cfabc6d09ed5886913e35eed9009766a1af1d5941b9da3a94aaa"}, + {file = "stack_data-0.4.0.tar.gz", hash = "sha256:a90ae7e260f7d15aefeceb46f0a028d4ccb9eb8856475c53e341945342d41ea7"}, +] +terminado = [ + {file = "terminado-0.15.0-py3-none-any.whl", hash = "sha256:0d5f126fbfdb5887b25ae7d9d07b0d716b1cc0ccaacc71c1f3c14d228e065197"}, + {file = "terminado-0.15.0.tar.gz", hash = "sha256:ab4eeedccfcc1e6134bfee86106af90852c69d602884ea3a1e8ca6d4486e9bfe"}, +] +tinycss2 = [ + {file = "tinycss2-1.1.1-py3-none-any.whl", hash = "sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"}, + {file = "tinycss2-1.1.1.tar.gz", hash = "sha256:b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf"}, +] +tornado = [ + {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, + {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, + {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, + {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, + {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, +] +traitlets = [ + {file = "traitlets-5.3.0-py3-none-any.whl", hash = "sha256:65fa18961659635933100db8ca120ef6220555286949774b9cfc106f941d1c7a"}, + {file = "traitlets-5.3.0.tar.gz", hash = "sha256:0bb9f1f9f017aa8ec187d8b1b2a7a6626a2a1d877116baba52a129bfa124f8e2"}, +] +wcwidth = [ + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, +] +webencodings = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] +widgetsnbextension = [ + {file = "widgetsnbextension-4.0.2-py3-none-any.whl", hash = "sha256:966bd61443926b6adcc0abef9f499c48bdeda181c333b0f49842d7385d440579"}, + {file = "widgetsnbextension-4.0.2.tar.gz", hash = "sha256:07f0e8582f920b24316cef16490f1aeb498f2c875d48980540e5c5dbf0ff5e2d"}, +] +zipp = [ + {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, + {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..cd5b4a5 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[tool.poetry] +name = "hide_code" +version = "0.7.0" +description = "hide_code is an extension for Jupyter/IPython notebooks to selectively hide code, prompts and output. Make a notebook a code free document for exporting or presenting. Documentation at https://github.com/kirbs-/hide_code" +authors = ["Chris Kirby "] + +[tool.poetry.dependencies] +python = "^3.7" +jupyter = "^1.0.0" +pdfkit = "^1.0.0" +notebook = "^6.4.12" + +[tool.poetry.dev-dependencies] + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" + + +[tool.poetry.plugins."nbconvert.exporters"] +"hide_code_html" = "hide_code:HideCodeHTMLExporter" +"hide_code_pdf" = "hide_code:HideCodePDFExporter" +"hide_code_latexpdf" = "hide_code:HideCodeLatexPDFExporter" +"hide_code_latex" = "hide_code:HideCodeLatexExporter" +"hide_code_slides" = "hide_code:HideCodeSlidesExporter" From 4df0094966dbb4a8a59d940bbade22c0fc8b4d4f Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Fri, 26 Aug 2022 19:39:41 -0400 Subject: [PATCH 51/60] Updated gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index af7b1be..77e75ba 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ hide_code.sublime-workspace *.pdf *.html s .vscode -.ipynb_checkpoints \ No newline at end of file +.ipynb_checkpoints +.python-version \ No newline at end of file From 913faf9a3d43637f414d7a855c9dd321bbd31b5a Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Fri, 26 Aug 2022 19:41:19 -0400 Subject: [PATCH 52/60] Removed setup.py. Resolves #97 --- pyproject.toml | 2 +- requirements.txt | 1 - setup.py | 126 ----------------------------------------------- 3 files changed, 1 insertion(+), 128 deletions(-) delete mode 100644 requirements.txt delete mode 100644 setup.py diff --git a/pyproject.toml b/pyproject.toml index cd5b4a5..c658fa4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "hide_code" version = "0.7.0" -description = "hide_code is an extension for Jupyter/IPython notebooks to selectively hide code, prompts and output. Make a notebook a code free document for exporting or presenting. Documentation at https://github.com/kirbs-/hide_code" +description = "A Jupyter notebook extension to hide code, prompts and outputs." authors = ["Chris Kirby "] [tool.poetry.dependencies] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index a69b82a..0000000 --- a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -hide_code==0.5.6 diff --git a/setup.py b/setup.py deleted file mode 100644 index eebceeb..0000000 --- a/setup.py +++ /dev/null @@ -1,126 +0,0 @@ -# Always prefer setuptools over distutils -from setuptools import setup, find_packages -from setuptools.command.install import install -# To use a consistent encoding -from codecs import open -from os import path -import sys -import os -import notebook -import notebook.serverextensions as ns - -# Get the long description from the relevant file -with open('README.rst', encoding='utf-8') as f: - long_description = f.read() - -class PostInstallCommand(install): - """Post-installation for installation mode.""" - def run(self): - install.run(self) - # PUT YOUR POST-INSTALL SCRIPT HERE or CALL A FUNCTION - print('Starting hide_code installation') - # install extension - notebook.nbextensions.install_nbextension_python('hide_code', sys_prefix=True) - # enable notebook extension - notebook.nbextensions.enable_nbextension_python('hide_code', sys_prefix=True) - # enable server extension - ns.toggle_serverextension_python('hide_code', enabled=True, sys_prefix=True) - -setup( - name='hide_code', - - # 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.6.0', - - description='A Jupyter notebook extension to hide code, prompts and outputs.', - long_description=long_description, - - # The project's main homepage. - url='https://github.com/kirbs-/hide_code', - - # Author details - author='Chris Kirby', - author_email='kirbycm@gmail.com', - - # Choose your license - license='MIT', - - # See https://pypi.python.org/pypi?%3Aaction=list_classifiers - classifiers=[ - # How mature is this project? Common values are - # 3 - Alpha - # 4 - Beta - # 5 - Production/Stable - 'Development Status :: 5 - Production/Stable', - - # Indicate who your project is intended for - 'Intended Audience :: Developers', - 'Topic :: Scientific/Engineering', - - # Pick your license as you wish (should match "license" above) - 'License :: OSI Approved :: MIT License', - - # Specify the Python versions you support here. In particular, ensure - # that you indicate whether you support Python 2, Python 3 or both. - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - ], - - # What does your project relate to? - keywords='jupyter notebook presentation', - - # You can just specify the packages manually here if your project is - # simple. Or you can use find_packages(). - # packages=find_packages(exclude=['contrib', 'docs', 'tests*']), - packages={'hide_code'}, - - # List run-time dependencies here. These will be installed by pip when - # your project is installed. For an analysis of "install_requires" vs pip's - # requirements files see: - # https://packaging.python.org/en/latest/requirements.html - install_requires=[ - 'jupyter', - 'pdfkit', - 'nbconvert<6', - 'notebook>=6.0', - 'traitlets<5.0' - ], - - extras_require={ - 'all': ['notebook', 'hide_code_lab'], - 'lab': ['hide_code_lab', 'jupyterlab~=2.0'], - }, - - # If there are data files included in your packages that need to be - # 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', 'LICENSE', os.path.join('test', '*')], - }, - - # Although 'package_data' is the preferred approach, in some case you may - # need to place data files outside of your packages. See: - # http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files # noqa - # In this case, 'data_file' will be installed into '/my_data' - # data_files=[('my_data', ['data/data_file'])], - - # To provide executable scripts, use entry points in preference to the - # "scripts" keyword. Entry points provide cross-platform support and allow - # pip to create the appropriate form of executable for the target platform. - # entry_po - # scripts=['hide_code/hide_code.py'], - # cmdclass={'install': install}, - - entry_points={ - 'nbconvert.exporters': [ - 'hide_code_html = hide_code:HideCodeHTMLExporter', - 'hide_code_pdf = hide_code:HideCodePDFExporter', - 'hide_code_latexpdf = hide_code:HideCodeLatexPDFExporter', - 'hide_code_latex = hide_code:HideCodeLatexExporter', - 'hide_code_slides = hide_code:HideCodeSlidesExporter' - ], - } -) From 570e521672423902d01d69da18a6d149515129e7 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 19:02:00 -0500 Subject: [PATCH 53/60] Removing travis CI config. --- .travis.yml | 34 ---------------------------------- apt.txt | 10 ---------- 2 files changed, 44 deletions(-) delete mode 100644 .travis.yml delete mode 100644 apt.txt diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e70c12c..0000000 --- a/.travis.yml +++ /dev/null @@ -1,34 +0,0 @@ -language: python -python: -# Building 3.3 fails; -# ImportError: Tornado requires an up-to-date SSL module. This means Python 2.7.9+ or 3.4+ (although some distributions -# have backported the necessary changes to older versions). -# - "3.3" - - "3.6" - - "3.7" - - "3.8" - - "3.9" - # does not have headers provided, please ask https://launchpad.net/~pypy/+archive/ppa - # maintainers to fix their pypy-dev package. - # - "pypy" -# command to install dependencies -install: - # force six to install first as it's a dependicy of simplegeneric and simplegeneric is erroring. - - pip install six - - pip install jupyter - - pip install pdfkit - - pip install . - - sudo apt-get update - - sudo apt-get install texlive-xetex xvfb libfontconfig wkhtmltopdf pandoc texlive-fonts-recommended texlive-generic-recommended texlive-latex-extra texlive-generic-extra lmodern - -# command to run tests -script: - - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_slides - # wkhtmltopdf has a bug in Ubuntu 16.04 apt package https://unix.stackexchange.com/questions/192642/wkhtmltopdf-qxcbconnection-could-not-connect-to-display - # - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_pdf - - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_html - - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_latex - - jupyter nbconvert "$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')/hide_code/test/utf-8 test.ipynb" --to hide_code_latexpdf -# - jupyter nbextension install --py hide_code --sys-prefix -# - jupyter nbextension enable --py hide_code --sys-prefix -# - jupyter serverextension enable --py hide_code --sys-prefix diff --git a/apt.txt b/apt.txt deleted file mode 100644 index 5817b18..0000000 --- a/apt.txt +++ /dev/null @@ -1,10 +0,0 @@ -texlive-xetex -xvfb -libfontconfig -wkhtmltopdf -pandoc -texlive-fonts-recommended -texlive-generic-recommended -texlive-latex-extra -texlive-generic-extra -lmodern \ No newline at end of file From 5cad46a1395cdeae1aba21cdfa3ec69736d48f3d Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 19:29:00 -0500 Subject: [PATCH 54/60] Adding GH build and publish --- .github/workflows/build-publish.yaml | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/build-publish.yaml diff --git a/.github/workflows/build-publish.yaml b/.github/workflows/build-publish.yaml new file mode 100644 index 0000000..0ec50d6 --- /dev/null +++ b/.github/workflows/build-publish.yaml @@ -0,0 +1,36 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# GitHub recommends pinning actions to a commit SHA. +# To get a newer version, you will need to update the SHA. +# You can also reference a tag or branch, but the action may change without warning. + +name: Upload Python Package + +on: + release: + types: [published] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install poetry + - name: Build package + # run: python -m setuptools + run: poetry build + - name: Publish package + uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file From 91a8cce517e6e6cdbe671a262d1bc79333bb6e01 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 20:05:01 -0500 Subject: [PATCH 55/60] Adding readme config. --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index c658fa4..9621e12 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,7 @@ name = "hide_code" version = "0.7.0" description = "A Jupyter notebook extension to hide code, prompts and outputs." authors = ["Chris Kirby "] +readme = README.md [tool.poetry.dependencies] python = "^3.7" From 4f84385a2bc8687e260895694218994f92b4f6cb Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 20:26:39 -0500 Subject: [PATCH 56/60] Bug fix. --- README.md | 4 ++-- pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index af4bf09..574a0ad 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,8 @@ Note: add `--sys-prefix` to `jupyter nbextension` to install into virtualenv or Visit the [Wiki](https://github.com/kirbs-/hide_code/wiki). ## Requirements -* Jupyter notebook ~>6.1 -* Jupyter nbconvert ~5.x +* Jupyter notebook >6.0 +* Jupyter nbconvert >6.x * pdfkit & [wkhtmltopdf](http://wkhtmltopdf.org/) * Python 3.7+ diff --git a/pyproject.toml b/pyproject.toml index 9621e12..6c0aeb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "hide_code" version = "0.7.0" description = "A Jupyter notebook extension to hide code, prompts and outputs." authors = ["Chris Kirby "] -readme = README.md +readme = "README.md" [tool.poetry.dependencies] python = "^3.7" From f6136d5981de8b1f3fad9ea6eb707263cd565263 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 20:38:31 -0500 Subject: [PATCH 57/60] Bug fix. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6c0aeb8..11cdbb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "hide_code" version = "0.7.0" description = "A Jupyter notebook extension to hide code, prompts and outputs." authors = ["Chris Kirby "] -readme = "README.md" +readme = "README.rst" [tool.poetry.dependencies] python = "^3.7" From b59f6d2b114048549252bb769ed6c3bdeb714857 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 20:46:03 -0500 Subject: [PATCH 58/60] Bug fix. --- setup.cfg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.cfg b/setup.cfg index 0c9e0fc..e55e64b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,4 @@ [metadata] license_file = LICENSE +long_description = file: README.md +long_description_content_type = text/markdown From cfcb95f905a0db62df66810da6c4cd277798f861 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 20:57:25 -0500 Subject: [PATCH 59/60] Bug fix. --- .github/workflows/build-publish.yaml | 3 ++- pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-publish.yaml b/.github/workflows/build-publish.yaml index 0ec50d6..d3201cf 100644 --- a/.github/workflows/build-publish.yaml +++ b/.github/workflows/build-publish.yaml @@ -33,4 +33,5 @@ jobs: uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 with: user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file + password: ${{ secrets.PYPI_API_TOKEN }} + verify_metadata: false \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 11cdbb8..6c0aeb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "hide_code" version = "0.7.0" description = "A Jupyter notebook extension to hide code, prompts and outputs." authors = ["Chris Kirby "] -readme = "README.rst" +readme = "README.md" [tool.poetry.dependencies] python = "^3.7" From a90911414c62b94473ee7b4032212044a3c91d5d Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Sat, 12 Nov 2022 20:59:41 -0500 Subject: [PATCH 60/60] Bump pypi pushlish version. --- .github/workflows/build-publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-publish.yaml b/.github/workflows/build-publish.yaml index d3201cf..d0ece41 100644 --- a/.github/workflows/build-publish.yaml +++ b/.github/workflows/build-publish.yaml @@ -30,7 +30,7 @@ jobs: # run: python -m setuptools run: poetry build - name: Publish package - uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 + uses: pypa/gh-action-pypi-publish@37f50c210e3d2f9450da2cd423303d6a14a6e29f with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }}