{ "info": { "author": "Laslett, Cortes, Fauske, Kluyver, Pepper, Fangohr", "author_email": "", "bugtrack_url": null, "classifiers": [ "Framework :: IPython", "Framework :: Pytest", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Testing" ], "description": "# Py.test plugin for validating Jupyter notebooks\n\n[![Build Status](https://travis-ci.org/computationalmodelling/nbval.svg)](https://travis-ci.org/computationalmodelling/nbval)\n[![PyPI Version](https://badge.fury.io/py/nbval.svg)](https://pypi.python.org/pypi/nbval)\n[![Documentation Status](https://readthedocs.org/projects/nbval/badge/)](https://nbval.readthedocs.io/)\n\nThe plugin adds functionality to py.test to recognise and collect Jupyter\nnotebooks. The intended purpose of the tests is to determine whether execution\nof the stored inputs match the stored outputs of the `.ipynb` file. Whilst also\nensuring that the notebooks are running without errors.\n\nThe tests were designed to ensure that Jupyter notebooks (especially those for\nreference and documentation), are executing consistently.\n\nEach cell is taken as a test, a cell that doesn't reproduce the expected\noutput will fail.\n\nSee [`docs/source/index.ipynb`](http://nbviewer.jupyter.org/github/computationalmodelling/nbval/blob/master/docs/source/index.ipynb) for the full documentation.\n\n## Installation\nAvailable on PyPi:\n\n pip install nbval\n\nor install the latest version from cloning the repository and running:\n\n pip install .\n\nfrom the main directory. To uninstall:\n\n pip uninstall nbval\n\n\n## How it works\nThe extension looks through every cell that contains code in an IPython notebook\nand then the `py.test` system compares the outputs stored in the notebook\nwith the outputs of the cells when they are executed. Thus, the notebook itself is\nused as a testing function.\nThe output lines when executing the notebook can be sanitized passing an\nextra option and file, when calling the `py.test` command. This file\nis a usual configuration file for the `ConfigParser` library.\n\nRegarding the execution, roughly, the script initiates an\nIPython Kernel with a `shell` and\nan `iopub` sockets. The `shell` is needed to execute the cells in\nthe notebook (it sends requests to the Kernel) and the `iopub` provides\nan interface to get the messages from the outputs. The contents\nof the messages obtained from the Kernel are organised in dictionaries\nwith different information, such as time stamps of executions,\ncell data types, cell types, the status of the Kernel, username, etc.\n\nIn general, the functionality of the IPython notebook system is\nquite complex, but a detailed explanation of the messages\nand how the system works, can be found here\n\nhttps://jupyter-client.readthedocs.io/en/latest/messaging.html#messaging\n\n## Execution\nTo execute this plugin, you need to execute `py.test` with the `nbval` flag\nto differentiate the testing from the usual python files:\n\n py.test --nbval\n\nYou can also specify `--nbval-lax`, which runs notebooks and checks for\nerrors, but only compares the outputs of cells with a `#NBVAL_CHECK_OUTPUT`\nmarker comment.\n\n py.test --nbval-lax\n\nThe commands above will execute all the `.ipynb` files and 'pytest' tests in the current folder.\nSpecify `-p no:python` if you would like to execute notebooks only. Alternatively, you can execute a specific notebook:\n\n py.test --nbval my_notebook.ipynb\n\nIf the output lines are going to be sanitized, an extra flag, `--sanitize-with`\ntogether with the path to a confguration file with regex expressions, must be passed,\ni.e.\n\n py.test --nbval my_notebook.ipynb --sanitize-with path/to/my_sanitize_file\n\nwhere `my_sanitize_file` has the following structure.\n\n```\n[Section1]\nregex: [a-z]*\nreplace: abcd\n\nregex: [1-9]*\nreplace: 0000\n\n[Section2]\nregex: foo\nreplace: bar\n```\n\nThe `regex` option contains the expression that is going to be matched in the outputs, and\n`replace` is the string that will replace the `regex` match. Currently, the section\nnames do not have any meaning or influence in the testing system, it will take\nall the sections and replace the corresponding options.\n\n\n### Coverage\n\nTo use notebooks to generate coverage for imported code, use the pytest-cov plugin.\nnbval should automatically detect the relevant options and configure itself with it.\n\n\n### Parallel execution\n\nnbval is compatible with the pytest-xdist plugin for parallel running of tests. It does\nhowever require the use of the `--dist loadscope` flag to ensure that all cells of one\nnotebook are run on the same kernel.\n\n\n## Help\nThe `py.test` system help can be obtained with `py.test -h`, which will\nshow all the flags that can be passed to the command, such as the\nverbose `-v` option. The IPython notebook plugin can be found under the\n`general` section.\n\n\n## Acknowledgements\nThis plugin was inspired by Andrea Zonca's py.test plugin for collecting unit\ntests in the IPython notebooks (https://github.com/zonca/pytest-ipynb).\n\nThe original prototype was based on the template in\nhttps://gist.github.com/timo/2621679 and the code of a testing system\nfor notebooks https://gist.github.com/minrk/2620735 which we\nintegrated and mixed with the `py.test` system.\n\nWe acknowledge financial support from\n\n- OpenDreamKit Horizon 2020 European Research Infrastructures project (#676541), http://opendreamkit.org\n\n- EPSRC\u2019s Centre for Doctoral Training in Next Generation\n Computational Modelling, http://ngcm.soton.ac.uk (#EP/L015382/1) and\n EPSRC\u2019s Doctoral Training Centre in Complex System Simulation\n ((EP/G03690X/1),\n\n- The Gordon and Betty Moore Foundation through Grant GBMF #4856,by the\n Alfred P. Sloan Foundation and by the Helmsley Trust.\n\n\n## Authors\n\n2014 - 2017 David Cortes-Ortuno, Oliver Laslett, T. Kluyver, Vidar\nFauske, Maximilian Albert, MinRK, Ondrej Hovorka, Hans Fangohr\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/computationalmodelling/nbval", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "nbval", "package_url": "https://pypi.org/project/nbval/", "platform": "", "project_url": "https://pypi.org/project/nbval/", "project_urls": { "Homepage": "https://github.com/computationalmodelling/nbval" }, "release_url": "https://pypi.org/project/nbval/0.9.3/", "requires_dist": [ "pytest (>=2.8)", "six", "jupyter-client", "nbformat", "ipykernel", "coverage" ], "requires_python": "", "summary": "A py.test plugin to validate Jupyter notebooks", "version": "0.9.3" }, "last_serial": 5894880, "releases": { "0.3.2": [ { "comment_text": "", "digests": { "md5": "cfff6bcd2ec92724ac54495449806e49", "sha256": "48921aed569937068b9862901de38af1d58e3a1ab231c07fc82ba65eaccabeab" }, "downloads": -1, "filename": "nbval-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfff6bcd2ec92724ac54495449806e49", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10288, "upload_time": "2016-03-18T17:24:32", "url": "https://files.pythonhosted.org/packages/3a/90/51cc085cbc5a8f01e879e0b3a2e39ec89ae8d1ac005f32fd2f8f19d6b29c/nbval-0.3.2-py2.py3-none-any.whl" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "fa7ce44c98d7cd5f288933cc1131971a", "sha256": "64de14e89ce3eb710579b27f6377bb4d37aa23428ccb460564373eeb52a2aafd" }, "downloads": -1, "filename": "nbval-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "fa7ce44c98d7cd5f288933cc1131971a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9271, "upload_time": "2016-10-17T14:23:08", "url": "https://files.pythonhosted.org/packages/7b/03/ada501b7656d97e8047806dfeca32a4711ebb4ddc16c54b619b8ff260123/nbval-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d51f34d9cd75cd1215a33df7e664af93", "sha256": "895618ba873be8470b020c459b6a78f9fcd0a09932d6f5d52ee587bd95b04865" }, "downloads": -1, "filename": "nbval-0.3.4.tar.gz", "has_sig": false, "md5_digest": "d51f34d9cd75cd1215a33df7e664af93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7794, "upload_time": "2016-10-17T14:23:10", "url": "https://files.pythonhosted.org/packages/cd/3e/6c81b99ad095c86ad8f27a325fd3e5d9e51a908266849206dffa84f631a0/nbval-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "8da5fc245346d894c74648998022d883", "sha256": "4af12ab6e8f779416a5c38da02306e687d1b03ca221543c35fd8ef46b36f7a9e" }, "downloads": -1, "filename": "nbval-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "8da5fc245346d894c74648998022d883", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9608, "upload_time": "2016-10-17T14:31:34", "url": "https://files.pythonhosted.org/packages/36/e4/3903f0e8c278986a1066781e09c8a9f1ecd3b75c41f27b33cf5423d27f49/nbval-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3482358730f39b62cdcf8811feb788ce", "sha256": "cce2ea2002da4c30641b5f02c5cb4786dc6a953878f566f4752df335a02dfa45" }, "downloads": -1, "filename": "nbval-0.3.5.tar.gz", "has_sig": false, "md5_digest": "3482358730f39b62cdcf8811feb788ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8016, "upload_time": "2016-10-17T14:31:37", "url": "https://files.pythonhosted.org/packages/bc/09/0adf59394ff3c6908c82f46eb5e5e8a3c0ccaecd5c5f32ace67e47cbf9d1/nbval-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "05c7940ad45e6e9ba8e171b70f334b6a", "sha256": "e47b5516696e43f453d841779f1be32b35dae7450a215b92c425f9cbb7e07667" }, "downloads": -1, "filename": "nbval-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "05c7940ad45e6e9ba8e171b70f334b6a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9687, "upload_time": "2016-10-18T11:57:45", "url": "https://files.pythonhosted.org/packages/7f/d3/54b37a7100d03d3d474ca2d9977aaf566e8388f04952b503099cde620720/nbval-0.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e053340a6cb64b68b253c4c43d659f5", "sha256": "bd656752fa22857777aea3c024b8b86d394455d7c8a115da9d2728b018fd3fd8" }, "downloads": -1, "filename": "nbval-0.3.6.tar.gz", "has_sig": false, "md5_digest": "5e053340a6cb64b68b253c4c43d659f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8087, "upload_time": "2016-10-18T11:57:48", "url": "https://files.pythonhosted.org/packages/6f/7f/03affe0888eb77d4cbd960b642f3943b6ab110e77a498480451610ae8e53/nbval-0.3.6.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "96ae687a76205cf45f5b87408260fa82", "sha256": "b042dc8b653a5864f8e08609cea3ae4b0ac1fb1a8bd0588f53406c44286fae15" }, "downloads": -1, "filename": "nbval-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "96ae687a76205cf45f5b87408260fa82", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10853, "upload_time": "2017-01-17T10:26:36", "url": "https://files.pythonhosted.org/packages/b4/9d/a78abff97df323f3ae4cba6defbb414ffc1ed67996bbe4192b61562f4127/nbval-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fbf9eb3c76224ef803f4251af605d94", "sha256": "35f1cd090cc38440b9a77b60d26f44322dad4ce2a9f333ed7108eca3b88b14b3" }, "downloads": -1, "filename": "nbval-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7fbf9eb3c76224ef803f4251af605d94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8817, "upload_time": "2017-01-17T10:26:38", "url": "https://files.pythonhosted.org/packages/a0/1e/df8d84e4c38b5546ea3dfc3113fb6c53fdde67466eb7a5a43560987c658c/nbval-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "64a50ce9b65e20df08ff80f98612513a", "sha256": "21dfab9f67bf1d3725c311efe944594ea94c546013ed2492ed90a3a43a6120f2" }, "downloads": -1, "filename": "nbval-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "64a50ce9b65e20df08ff80f98612513a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13589, "upload_time": "2017-01-20T15:46:16", "url": "https://files.pythonhosted.org/packages/16/21/e05f6e0c30f9b7f2474fa6203f895e52a9c003bd4e3eca0e4fafa7828d1b/nbval-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54fad9bb709f96a8280d4c6b2af82587", "sha256": "28efe738759d085c86acae18c407e24cc6b23f9cfaefa6d17d09e64d32577125" }, "downloads": -1, "filename": "nbval-0.4.1.tar.gz", "has_sig": false, "md5_digest": "54fad9bb709f96a8280d4c6b2af82587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11207, "upload_time": "2017-01-20T15:46:18", "url": "https://files.pythonhosted.org/packages/27/7e/aaa22d17fee443c4fa192072b14fba60eba3c6a19d4444cd0fd7e9b351e3/nbval-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "92545f7620b88e86c8ca113fd684fffc", "sha256": "dc3cede5d5b57ebdd3ef430adf75998a3cb3470a3e69adbfcc8993e4d24c507c" }, "downloads": -1, "filename": "nbval-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "92545f7620b88e86c8ca113fd684fffc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15311, "upload_time": "2017-02-24T14:20:58", "url": "https://files.pythonhosted.org/packages/fe/a6/1fc59c6ec7b527048597f3ebe31c839d8fe0f35b215b3b83817e683335ce/nbval-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c9708082849d89568283388b2a71043", "sha256": "bd245c0fb3ade4aff63948d31de5cb5f92129c7387e597d1229f687e5350eba7" }, "downloads": -1, "filename": "nbval-0.5.tar.gz", "has_sig": false, "md5_digest": "5c9708082849d89568283388b2a71043", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13163, "upload_time": "2017-02-24T14:20:59", "url": "https://files.pythonhosted.org/packages/02/05/ecf96a0c34732d66a12c19d2ff8eea8c201366c8b12005527db9dcc94abd/nbval-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "4fa8bcb2fee8d6dfd35262724a3f84be", "sha256": "c306b2bfb48445d3c4437a59e1ef579d2cf772dc6d31f6b82a441ea6e5d480d2" }, "downloads": -1, "filename": "nbval-0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4fa8bcb2fee8d6dfd35262724a3f84be", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16274, "upload_time": "2017-05-15T14:09:36", "url": "https://files.pythonhosted.org/packages/cb/35/29fd8f8b0e724a6bc70f0b011affa35497d15984f9eaf933c702dcee35b3/nbval-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ec10a624c8c7898e0034be902bd5af1", "sha256": "6037128a0d18c5996f68efc766cc62190ad36d117818ea49e80dbd4a18c9dca8" }, "downloads": -1, "filename": "nbval-0.6.tar.gz", "has_sig": false, "md5_digest": "1ec10a624c8c7898e0034be902bd5af1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43123, "upload_time": "2017-05-15T14:09:38", "url": "https://files.pythonhosted.org/packages/b3/d2/c2ca5c20bbc6dcf4d0764da189ea4970d4267fd3728a216fa16b197b7189/nbval-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "caaa4de3222516c42efe8e7c5d51c37a", "sha256": "ee4d314a00bf191af77e03f6ef445fb7255436c9d54eccc03cfd0e562b7dd530" }, "downloads": -1, "filename": "nbval-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "caaa4de3222516c42efe8e7c5d51c37a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16550, "upload_time": "2017-08-30T12:01:00", "url": "https://files.pythonhosted.org/packages/85/41/c53c4e604fc215cff6b3aa80a4f51fda4b68222b487642157fa321ea0466/nbval-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4fd4e2061b575ebd195d127ef2c3ca3", "sha256": "1f009c45ce38abda6b3c1b755cf080f7cd25526721fe3f0060fce89f2a9fb861" }, "downloads": -1, "filename": "nbval-0.7.tar.gz", "has_sig": false, "md5_digest": "e4fd4e2061b575ebd195d127ef2c3ca3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51805, "upload_time": "2017-08-30T12:01:03", "url": "https://files.pythonhosted.org/packages/1e/50/86960087a6aa21709d6cfbcee9d9d8a221a05386f55e218b72800ac1a14e/nbval-0.7.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "01b0a1bde2db7e9ec424209874e73926", "sha256": "b2d79da13b904b634ad2c78adef135059786f74ababc7c4b386fe148c54ba27e" }, "downloads": -1, "filename": "nbval-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "01b0a1bde2db7e9ec424209874e73926", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19009, "upload_time": "2018-01-15T14:30:15", "url": "https://files.pythonhosted.org/packages/b9/dd/eba22ba91e6b9445cf7bafd8febbcbf03744ef846eeea44a4649a7e7486b/nbval-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d327dc9337708d01c675ff366a0d692", "sha256": "6501a4c29418631ce844a0feb8f07b8217cd780deb2b9a14e6a219cee49bd228" }, "downloads": -1, "filename": "nbval-0.8.0.tar.gz", "has_sig": false, "md5_digest": "8d327dc9337708d01c675ff366a0d692", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49116, "upload_time": "2018-01-15T14:30:47", "url": "https://files.pythonhosted.org/packages/58/cc/e9855c93d0c67df98103b04ea169ed9c9111cef5e02643ad13e7456c2b66/nbval-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "df30c93fb5bba3bd9ea63b988d89afaf", "sha256": "cb359442fc2a605bd1a57513cc7a6c6485a02dc965e182f0de235eceb7a0a84b" }, "downloads": -1, "filename": "nbval-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df30c93fb5bba3bd9ea63b988d89afaf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19089, "upload_time": "2018-01-16T10:33:54", "url": "https://files.pythonhosted.org/packages/21/94/a5173b196698c37de25fdf080cafb5aef68e09b7431b6d0c578b268c9f6b/nbval-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d116c8958f089287ecbb7c46b3224100", "sha256": "dec2a26bb32a29f92a577554b7142f960b8a91bca8cfaf23f4238718197bf7f3" }, "downloads": -1, "filename": "nbval-0.9.0.tar.gz", "has_sig": false, "md5_digest": "d116c8958f089287ecbb7c46b3224100", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49388, "upload_time": "2018-01-16T10:33:56", "url": "https://files.pythonhosted.org/packages/58/ce/d705c865bdec10ab94c1c57b76e77f07241ef5c11c4976ec7e00de259f92/nbval-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "6244473095d66945bcd6ab84f6e0f0a5", "sha256": "74ff5e2c90a50b1ddf7edd02978c4e43221b1ee252dc14fcaa4230aae4492eda" }, "downloads": -1, "filename": "nbval-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6244473095d66945bcd6ab84f6e0f0a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24080, "upload_time": "2018-06-04T15:11:01", "url": "https://files.pythonhosted.org/packages/0b/c7/f12cf36398ba2a821dccd591b91d5a5d38afccd36fd9b37cc5507cd5d5f4/nbval-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd2a7ca2fab8a69f5492f3cbe4151f19", "sha256": "3f18b87af4e94ccd073263dd58cd3eebabe9f5e4d6ab535b39d3af64811c7eda" }, "downloads": -1, "filename": "nbval-0.9.1.tar.gz", "has_sig": false, "md5_digest": "bd2a7ca2fab8a69f5492f3cbe4151f19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64476, "upload_time": "2018-06-04T15:11:03", "url": "https://files.pythonhosted.org/packages/b0/40/09d964562705143f3741194178fff900977f4dc54d73578295ed7d5d5aa1/nbval-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "2472afa86d8edbabb3f069e6ddd8fe95", "sha256": "178ea3e9d0ffb4b1eb175728b0655f3da208e57bc47c11072a48ddedc4314c40" }, "downloads": -1, "filename": "nbval-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2472afa86d8edbabb3f069e6ddd8fe95", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22177, "upload_time": "2019-07-03T12:48:58", "url": "https://files.pythonhosted.org/packages/2f/2a/e34cbb6c5932a2aa4a874c21d7be16775500b96ce6677412bb329fe6ad48/nbval-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8a781322cb0473f88659c6653f7756d", "sha256": "e26ea0af4b46bc8200075fc665bf8e645aaeae1467ce6c7d84fe595402a11d3d" }, "downloads": -1, "filename": "nbval-0.9.2.tar.gz", "has_sig": false, "md5_digest": "d8a781322cb0473f88659c6653f7756d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60813, "upload_time": "2019-07-03T12:48:59", "url": "https://files.pythonhosted.org/packages/82/3b/357afcb7b70646a54ab109e8ae182e68cadc12d8d06ec00d16e720583dcd/nbval-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "8d3d6ea29d5279fb16f849994deca78f", "sha256": "ae529024ae63d8a09eac36358d61b17f631c4a481e5721bca9d4a40edb07a666" }, "downloads": -1, "filename": "nbval-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d3d6ea29d5279fb16f849994deca78f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22026, "upload_time": "2019-09-27T08:37:22", "url": "https://files.pythonhosted.org/packages/80/08/6b1e7d87a90edb02c272e30f4f6f325da5a5c8dfc3eaeaa4a8138fb97e43/nbval-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab556801d9499938f9e43f5dff0e408c", "sha256": "f28f755d777f2ffbdfdcc3e3ea68a09b73d62a5aa45e3daaba179043656e2318" }, "downloads": -1, "filename": "nbval-0.9.3.tar.gz", "has_sig": false, "md5_digest": "ab556801d9499938f9e43f5dff0e408c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60625, "upload_time": "2019-09-27T08:37:24", "url": "https://files.pythonhosted.org/packages/ac/d6/57e2ad879a8277d317a0086e432abb11eecdd75ab3b40df12f08c3c30083/nbval-0.9.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d3d6ea29d5279fb16f849994deca78f", "sha256": "ae529024ae63d8a09eac36358d61b17f631c4a481e5721bca9d4a40edb07a666" }, "downloads": -1, "filename": "nbval-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d3d6ea29d5279fb16f849994deca78f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22026, "upload_time": "2019-09-27T08:37:22", "url": "https://files.pythonhosted.org/packages/80/08/6b1e7d87a90edb02c272e30f4f6f325da5a5c8dfc3eaeaa4a8138fb97e43/nbval-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab556801d9499938f9e43f5dff0e408c", "sha256": "f28f755d777f2ffbdfdcc3e3ea68a09b73d62a5aa45e3daaba179043656e2318" }, "downloads": -1, "filename": "nbval-0.9.3.tar.gz", "has_sig": false, "md5_digest": "ab556801d9499938f9e43f5dff0e408c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60625, "upload_time": "2019-09-27T08:37:24", "url": "https://files.pythonhosted.org/packages/ac/d6/57e2ad879a8277d317a0086e432abb11eecdd75ab3b40df12f08c3c30083/nbval-0.9.3.tar.gz" } ] }