{
"info": {
"author": "Nicholas Bollweg",
"author_email": "nick.bollweg@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Framework :: IPython",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
"Topic :: Software Development :: Testing",
"Topic :: Utilities"
],
"description": "nosebook\n========\n\n|Build Status| |PyPI| |BSD|\n\na `nose `__ plugin for finding and running\nIPython 2/3 notebooks as nose tests.\n\nWhat it can't do in terms of ``setup`` and ``tearDown``, ``nosebook``\nmakes up for in simplicity: there is no ``%%nose`` magic, no metadata\nrequired: the notebook on disk is the \"gold master\".\n\nThis makes it ideal for decreasing the burden of keeping documentation\nup to date with tests by making a single set of notebooks into both\nrich, multi-format documentation and a simple part of your test suite.\n\n.. |Build Status| image:: https://travis-ci.org/bollwyvl/nosebook.svg?branch=master\n :target: https://travis-ci.org/bollwyvl/nosebook\n.. |PyPI| image:: https://pypip.in/version/nosebook/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/nosebook\n.. |BSD| image:: https://pypip.in/license/nose-watcher/badge.svg\n :target: ./LICENSE\n\nHow does it work?\n-----------------\n\nEach notebook found according to\n```nosebook-match`` <#nosebook-match>`__ is started with a fresh kernel,\nbased on the kernel specified in the notebook. If the kernel is not\ninstalled, no tests will be run and the error will be logged.\n\nEach ``code`` cell that matches\n```nosebook-match-cell`` <#nosebook-match-cell>`__ will be executed\nagainst the kernel in the order in which it appears in the notebook:\nother cells e.g. ``markdown``, ``raw``, are ignored.\n\nThe number and content of outputs has to **match exactly**, with the\nfollowing parts of each output stripped:\n\n- execution/prompt numbers, i.e. ``[1]:``\n- tracebacks\n\nNon-deterministic output, such as with ``_repr_`` methods that include\nthe memory location of the instance, will obviously not match every\ntime. You can use ```nosebook-scrub`` <#nosebook-scrub>`__ to rewrite or\nremove offending content.\n\nRelated work\n------------\n\n- ```ipython_nose`` `__ allows\n you to use a notebook as a nose runner, with traditional\n ``test_whatever`` methods. You can sort of emulate this behavior with\n ```nosebook-match-cell`` <#nosebook-match-cel>`__... as long as you\n check in passing tests!\n\nConfiguring ``nosetests`` to use ``nosebook``\n---------------------------------------------\n\nThese options can be specified in your `nose config file <./.noserc>`__,\nor as long-form command line arguments, i.e. ``--with-nosebook``.\n\n``with-nosebook``\n^^^^^^^^^^^^^^^^^\n\n``nosetests`` will look for notebooks that seem like tests, as\nconfigured with ```nosebook-match`` <#nosebook-match>`__.\n\n*Default: False*\n\n.. code:: python\n\n # Basic usage\n !nosetests --with-nosebook\n\n``nosebook-match``\n^^^^^^^^^^^^^^^^^^\n\nA regular expression that tells nosebook what should be a testable\nnotebook.\n\n*Default: ``.*[Tt]est.*.ipynb$``*\n\n.. code:: python\n\n # Run against all notebooks... probably not a good idea, but maybe a great idea\n !nosetests --with-nosebook --nosebook-match .*.ipynb\n\n``nosebook-match-cell``\n^^^^^^^^^^^^^^^^^^^^^^^\n\nA regular expression that will be replaced throughout the expected\noutputs and generated outputs.\n\n*Default: None*\n\n.. code:: python\n\n # will run cells where tests are defined... but you should probably run them, too\n !nosetests --with-nosebook --nosebook-match .*Simple.* --nosebook-match-cell '(def|class).*[Tt]est'\n\n``nosebook-scrub``\n^^^^^^^^^^^^^^^^^^\n\nA regular expression that will be replaced throughout the expected\noutputs and generated outputs.\n\n*Default: None*\n\n.. code:: python\n\n # you can't fail if you don't try\n !nosetests --with-nosebook --nosebook-scrub .+\n\nFor multiple scrub values, you can pass a JSON-formatted list of regular\nexpressions or object of pattern-replacement pairs that will be\nreplaced. When passed in via the command line, you'll have to escape\nspecial characters: using a ``.noserc`` config file makes this easier.\n\n.. code:: python\n\n # there are only 10 kinds of tests...\n !nosetests --with-nosebook --nosebook-scrub='[\"0\", \"1\"]'\n\n.. code:: python\n\n # 0 is equally good\n !nosetests --with-nosebook --nosebook-scrub='{\"\\\\d+\": \"0\"}'\n\nContributing\n------------\n\n`Issues `__ and `pull\nrequests `__ welcome!\n\nLicense\n-------\n\n``nosebook`` is released as free software under the `BSD 3-Clause\nlicense <./LICENSE>`__.",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/bollwyvl/nosebook",
"keywords": "IPython nose",
"license": "BSD",
"maintainer": null,
"maintainer_email": null,
"name": "nosebook",
"package_url": "https://pypi.org/project/nosebook/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/nosebook/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://github.com/bollwyvl/nosebook"
},
"release_url": "https://pypi.org/project/nosebook/0.4.0/",
"requires_dist": null,
"requires_python": null,
"summary": "a nose plugin for IPython notebooks",
"version": "0.4.0"
},
"last_serial": 1520500,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "d364cfb23034d18675beedc3f0f07352",
"sha256": "c679320a620e3b37b07f1631935282fe78965b131581c4b4315af24249af42b0"
},
"downloads": -1,
"filename": "nosebook-0.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "d364cfb23034d18675beedc3f0f07352",
"packagetype": "bdist_wheel",
"python_version": "3.4",
"requires_python": null,
"size": 5749,
"upload_time": "2015-02-14T15:23:57",
"url": "https://files.pythonhosted.org/packages/fb/55/ad70b283881ba1caeb3cbb9b40d7563d99e59be0fb6de89d80c1dfc1474f/nosebook-0.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0973e26f5e620532d40a36165f6a1b1e",
"sha256": "3b1c63ba3c06cb3c30411ac2a89ee0a57f3e770ac6e206d47e3220927a30fe41"
},
"downloads": -1,
"filename": "nosebook-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "0973e26f5e620532d40a36165f6a1b1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5643,
"upload_time": "2015-02-14T15:23:43",
"url": "https://files.pythonhosted.org/packages/59/58/fbdede6c28eaa37035d0a224c37d32bf99a98edb57979fe0d85780ae14a5/nosebook-0.1.0.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "e2824e8f54c0e67a552783b4c02145d7",
"sha256": "55a1100604ed471e2723539b12947c101f4c1aaf754bda9a421ae24690ded0b8"
},
"downloads": -1,
"filename": "nosebook-0.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e2824e8f54c0e67a552783b4c02145d7",
"packagetype": "bdist_wheel",
"python_version": "3.4",
"requires_python": null,
"size": 7643,
"upload_time": "2015-02-14T22:33:40",
"url": "https://files.pythonhosted.org/packages/e6/2b/01b4e1cef3a3fc6038ba2ba21db04bcaeea4a14dfdd48952152de9346a14/nosebook-0.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1b615ab9b7e15d7aa0d386f5eac1c034",
"sha256": "55528fc3a77d5430e587825bc72ced371dceb4202737af4bac646d05775c12b1"
},
"downloads": -1,
"filename": "nosebook-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "1b615ab9b7e15d7aa0d386f5eac1c034",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7342,
"upload_time": "2015-02-14T22:33:31",
"url": "https://files.pythonhosted.org/packages/ed/15/ffbd0e2c74816e5e3ef4f69025e687101c582c1f60cfd73e9ef224efb907/nosebook-0.2.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "964ae6483e05d81cc1d1df675df0f27c",
"sha256": "9000b5dc1988b72a4590bf3e78eec5a6169bcd83fa1406cb55c18e63a5cc19f0"
},
"downloads": -1,
"filename": "nosebook-0.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "964ae6483e05d81cc1d1df675df0f27c",
"packagetype": "bdist_wheel",
"python_version": "3.4",
"requires_python": null,
"size": 8187,
"upload_time": "2015-04-21T13:53:27",
"url": "https://files.pythonhosted.org/packages/a2/62/ea936e8e736b9c7231573f8c8a0da0aa36acec22526ae855807e627fcf80/nosebook-0.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "055f4ec0fe8db3dac1e7c1f19489b1e9",
"sha256": "acd5746218c5e805a8e5cf031d8e50820fc1f569855f5c72326526ec4077e704"
},
"downloads": -1,
"filename": "nosebook-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "055f4ec0fe8db3dac1e7c1f19489b1e9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8460,
"upload_time": "2015-04-21T13:53:17",
"url": "https://files.pythonhosted.org/packages/26/47/8fa7958f3acf6aa2acaaaaa949d4f9d6d3029c16da60c9ec02d7e5e76a75/nosebook-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "f153313f5fddd9f0a4f9e5e4eb41287d",
"sha256": "0dae949e62670425bbc477643afa6a80334521d90e8471b6eeced1c92dc35625"
},
"downloads": -1,
"filename": "nosebook-0.4.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "f153313f5fddd9f0a4f9e5e4eb41287d",
"packagetype": "bdist_wheel",
"python_version": "3.4",
"requires_python": null,
"size": 8979,
"upload_time": "2015-04-25T04:59:43",
"url": "https://files.pythonhosted.org/packages/d5/78/e45864e6a61ff83ecfa5b772a8b8836683a0a326da6cfc887b2c62434619/nosebook-0.4.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "72fcb5546238816ecff6e19b2fd01de2",
"sha256": "f1ceefe3eaae5c3c69ef4702a1318171b0a1d08ec8716f10306a0df6bc4876bd"
},
"downloads": -1,
"filename": "nosebook-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "72fcb5546238816ecff6e19b2fd01de2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9360,
"upload_time": "2015-04-25T04:59:33",
"url": "https://files.pythonhosted.org/packages/05/5c/cf0416989ecbb237319049268f2ea62499099d7d4ee7488ab854f1d25ca2/nosebook-0.4.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "f153313f5fddd9f0a4f9e5e4eb41287d",
"sha256": "0dae949e62670425bbc477643afa6a80334521d90e8471b6eeced1c92dc35625"
},
"downloads": -1,
"filename": "nosebook-0.4.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "f153313f5fddd9f0a4f9e5e4eb41287d",
"packagetype": "bdist_wheel",
"python_version": "3.4",
"requires_python": null,
"size": 8979,
"upload_time": "2015-04-25T04:59:43",
"url": "https://files.pythonhosted.org/packages/d5/78/e45864e6a61ff83ecfa5b772a8b8836683a0a326da6cfc887b2c62434619/nosebook-0.4.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "72fcb5546238816ecff6e19b2fd01de2",
"sha256": "f1ceefe3eaae5c3c69ef4702a1318171b0a1d08ec8716f10306a0df6bc4876bd"
},
"downloads": -1,
"filename": "nosebook-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "72fcb5546238816ecff6e19b2fd01de2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9360,
"upload_time": "2015-04-25T04:59:33",
"url": "https://files.pythonhosted.org/packages/05/5c/cf0416989ecbb237319049268f2ea62499099d7d4ee7488ab854f1d25ca2/nosebook-0.4.0.tar.gz"
}
]
}