{ "info": { "author": "gk", "author_email": "gk@axiros.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Topic :: Text Processing :: Markup" ], "description": "---\n\nauthor: gk\nversion: 20200602\n\n---\n\n# Generating Markdown - While Testing Contained Claims\n\n[![Build Status](https://travis-ci.org/axiros/pytest2md.svg?branch=master)](https://travis-ci.org/axiros/pytest2md) [![codecov](https://codecov.io/gh/axiros/pytest2md/branch/master/graph/badge.svg)](https://codecov.io/gh/axiros/pytest2md)[![PyPI version][pypisvg]][pypi] [![][blacksvg]][black]\n\n[blacksvg]: https://img.shields.io/badge/code%20style-black-000000.svg\n[black]: https://github.com/ambv/black\n[pypisvg]: https://img.shields.io/pypi/v/pytest2md.svg\n[pypi]: https://badge.fury.io/py/pytest2md\n\n\n\n\n\n\n\n\n\n# Table Of Contents\n\n- [Inline Python Function Execution](#inline-python-function-execution)\n- [Features](#features)\n - [html_table](#html-table)\n - [sh_file](#sh-file)\n - [bash_run](#bash-run)\n - [md_from_source_code](#md-from-source-code)\n - [Table of Contents](#table-of-contents)\n- [Link Replacements](#link-replacements)\n - [Spec](#spec)\n - [Code Repo Hoster Specific Source Links](#code-repo-hoster-specific-source-links)\n - [Setting a link template](#setting-a-link-template)\n - [Link Refs](#link-refs)\n - [Summary](#summary)\n- [Tips](#tips)\n- [Isolation](#isolation)\n\n\n\nFew things are more annoying than stuff which does not work as announced,\nespecially when you find out only after an invest of time and energy.\n\nDocumentation is often prone to produce such situations, since hard to keep\n100% in sync with the code evolution.\n\n\n\n\nThis is a set of tools, *generating* documentation, while verifying the documented\nclaims about code behaviour - without the need to adapt the source code, e.g. by modifying\ndoc strings:\n\n![](./assets/shot1.png)\n\n> When the documentation is using a lot of code examples then a very welcome\nadditional benefit of writing it like shown is the availability of [source\ncode autoformatters](https://github.com/ambv/black).\n\nOther Example:\n\nThis \"README.md\" was built into [this](./.README.tmpl.md) template,\nwhere [html comment style placeholders][.README.tmpl.md]\nhad been replaced while running pytest on [test_tutorial](./tests/test_tutorial.py).\n\n\n\nLets run a bash command and assert on its results.\nNote that the command is shown in the readme, incl. result and the result\ncan be asserted upon.\n\n```bash\n$ cat \"/etc/hosts\" | grep localhost\n127.0.0.1 axc3.axiros.com localhost localhost.localdomain localhost4 localhost4.localdomain4\n::1 localhost localhost.localdomain localhost6 localhost6.localdomain6\n```\n\n```bash\n$ ls \"/home/gk/repos/pytest2md/tests\"\nassets\n__pycache__\ntest_basics.py\ntest_changelog.py\ntest_tutorial.py\n\n$ ls -lta /etc/hosts\n-rw-r--r--. 1 root root 308 May 8 23:47 /etc/hosts\n```\n\n\n----\nGenerated by:\n\n# Inline Python Function Execution\n\nvia the `md_from_source_code` function you can write fluent markdown\n(tested) python combos: \n\n\n```python\nhi = 'hello world'\nassert 'world' in hi\nprint(hi.replace('world', 'joe'))\n```\n\nThe functions are evaluated and documented in the order they show up\nwithin the textblocks.\n\n> Please keep tripple apostrophes - we split the text blocks,\nsearching for those.\n\nState is kept within the outer pytest function, like normally in python.\nI.e. if you require new state, then start a new pytest function.\n\nStdout is redirected to an output collector function, i.e. if you print\nthis does result in an \"Output\" block. If the printout starts with\n\"MARKDOWN:\" then we won't wrap that output into fenced code blocks but\ndisplay as is.\n\n> If the string 'breakpoint' occurs in a function body, we won't redirect\nstandardout for displaying output.\n\n# Features\n\n## html_table\n\n\n\n```python\nht = p2m.html_table\n\nprint(ht([['foo', 'bar'], ['bar', 'baz']], ['h1', 'h2']))\nprint('As details when summary arg is given:')\nt = ht(\n [['joe', 'doe'], ['suzie', 'wong']],\n ['first', 'last'],\n summary='names. click to open...',\n)\nassert 'details' in t\nassert 'joesh_file\n\n```javascript\n$ cat \"test_file.json\"\n{\n \"a\": [\n {\n \"testfile\": \"created\"\n },\n \"at\",\n \"Thu Jun 4 00:15:07 2020\"\n ]\n}\n```\n\n
as details\n\n\n```javascript\n$ cat \"test_file.json\"\n{\n \"a\": [\n {\n \"testfile\": \"created\"\n },\n \"at\",\n \"Thu Jun 4 00:15:07 2020\"\n ]\n}\n```\n
\n\n[test_file.json](./tests/assets/sh_files/test_file.json)\n\n[as link](./tests/assets/sh_files/test_file.json)\n\n\n----\nGenerated by:\n\n\n\n```python\n# if content is given it will create it:\np2m.sh_file(fn, lang='javascript', content=c)\n# summary arg creates a details structure:\np2m.sh_file(fn, lang='javascript', content=c, summary='as details')\n# creates a link (say True to have the filename as link text)\np2m.sh_file(fn, lang='javascript', content=c, as_link=True)\np2m.sh_file(fn, lang='javascript', content=c, as_link='as link')\n```\n## bash_run\n\n```bash\n$ ./some_non_existing_command_in_assets arg1\n/bin/sh: /home/gk/repos/pytest2md/tests/assets/some_non_existing_command_in_assets: No such file or directory\n```\n\n```bash\n$ ls -lta | grep total | head -n 1\ntotal 84\n```\n\n```bash\n$ ls -lta\ntotal 84\n-rw-r--r--. 1 gk gk 14890 Jun 4 00:15 README.md\ndrwxr-xr-x. 4 gk gk 4096 Jun 4 00:14 tests\ndrwxr-xr-x. 8 gk gk 4096 Jun 4 00:09 .git\ndrwxr-xr-x. 9 gk gk 4096 Jun 4 00:09 .\n\n...(output truncated - see link below)\n```\n- [Output](./tests/assets/bash_run_outputs/bash_run.txt) of `ls -lta` \n\n\n```bash\n$ ls -lta\n```\n\n[ls -lta](./tests/assets/bash_run_outputs/bash_run.html)\n\n\n\n----\nGenerated by:\n\n\n\n```python\nrun = partial(p2m.bash_run, cmd_path_from_env=True)\n# by default we search in normal environ for the command to run\n# but we provide a switch to search in test assets.\n# errors are redirected to stdout\nres = p2m.bash_run(\n 'some_non_existing_command_in_assets arg1',\n cmd_path_from_env=False,\n ign_err=True,\n)\nassert res[0]['exitcode'] != 0\nres = run('ls -lta | grep total | head -n 1')\nassert 'total' in res[0]['res']\nres = run('ls -lta', into_file='bash_run.txt')\nassert 'total' in res[0]['res']\n# Ending with .html it converts ansi escape colors to html:\n# simple link is created.\n# (requires pip install ansi2html)\nrun('ls -lta', into_file='bash_run.html')\n```\n## md_from_source_code\nInserted markdown from running python.\n\nStrings in double apos. are rendered, no need to call a render function. \n\n\n```python\nmd('Inserted markdown from running python.')\nprint('From output of running python ')\n```\nOutput:\n\n```\nFrom output of running python\n```\n\n> More markdown \n\n\n```python\nprint('From another function')\n```\nOutput:\n\n```\nFrom another function\n```\n\nStrings can also contain instructions, like this (looked up in p2m.MdInline namespace class)\n\n\n```bash\n$ cd /etc; ls -lta | head -n 5\ntotal 2716\ndrwxr-xr-x. 165 root root 12288 Jun 3 09:04 .\n-rw-r--r--. 1 root root 139649 Jun 3 09:04 ld.so.cache\n-rw-r--r--. 1 root root 67 Jun 3 07:44 resolv.conf\ndrwxr-xr-x. 2 root root 4096 Jun 1 19:02 alternatives\n```\n\nDefault inline functions (add your own in module headers): \n\n\n```python\nprint(\n [\n k\n for k in dir(pytest2md.MdInline)\n if not k.startswith('_')\n ]\n)\n```\nOutput:\n\n```\n['bash', 'sh_file']\n```\n----\nGenerated by\n```python\n def some_test_function():\n \"\"\"\n Strings in double apos. are rendered, no need to call a render function.\n \"\"\"\n\n def func1():\n md('Inserted markdown from running python.')\n print('From output of running python ')\n\n \"\"\"\n > More markdown\n \"\"\"\n\n def func2():\n print('From another function')\n\n \"\"\"\n Strings can also contain instructions, like this (looked up in p2m.MdInline namespace class)\n\n \n\n Default inline functions (add your own in module headers):\n \"\"\"\n\n def known():\n print(\n [\n k\n for k in dir(pytest2md.MdInline)\n if not k.startswith('_')\n ]\n )\n\n # repl dict simply replaces keys with values before any processing:\n p2m.md_from_source_code(repl={'MY_REPL_DIR': '/etc'})\n\n```\n\n## Table of Contents\n\n p2m.write_markdown(with_source_ref=True, make_toc=True)\n\nSee this tutorial.\n\n\n# Link Replacements\n\nTechnical markdown content wants to link to source code often.\nHow to get those links working and that convenient?\n\nThe module does offer also some source finding / link replacement feature,\nvia the [mdtool][mdtool.py] module. The latter link was built simply by this:\n\n```\n[mdtool]\n```\n\n\nOther example: This [test_tutorial.py][test_tutorial.py] link was created by replacing \"SRC\" with the path\nto a file matching, under a given directory, prefixed by an arbitrary base URL.\n\n## Spec\n\nThese will be replaced:\n\n`[title:this,fmatch:test_tutorial,lmatch:line_match] ` (remove space between] and <)\n\n- title: The link title - text the user reads\n- fmatch: substring match for the link destination file\n- lmatch: Find matching line within that file\n- show_raw: Link to raw version of file, not the one rendered by the\n repo server\n- path: Fix file path (usually derived by fmach)\n- line: Fix the line number of the link (usually done via lmatch)\n\n## Code Repo Hoster Specific Source Links\n\nGithub, Gitlab, Bitbucked or Plain directory based static content servers\nall have their conventional URLs regarding those links.\n\nSince all of these are just serving static content w/o js possibilities,\nyou have to parametrize the intended hoster in your environment, before\nrunning a pytest / push cycle. That way the links will be working on the hoster.\n\nCurrently we understand the following namespaces for links:\n\n\n```javascript\n{\n \"github\": \"https://github.com/%(gh_repo_name)s/blob/%(git_rev)s/%(path)s%(line:#L%s)s\",\n \"github_raw\": \"https://raw.githubusercontent.com/%(gh_repo_name)s/%(git_rev)s/%(path)s%(line:#L%s)s\",\n \"static\": \"file://%(d_repo_base)s/%(path)s\",\n \"static_raw\": \"file://%(d_repo_base)s/%(path)s\"\n}\n```\n\n### Setting a link template\n\n- `export MD_LINKS_FOR=github ` # before running pytest / push\n- `` # in the markdown template, static\n\nThe latter can be overwritten by environ, should you want to push from time to time\nto a different code hoster.\n\n### Link Refs\n\nWe minimize the problem of varying generated target markdown, dependent on the hoster.\nHow? Like [any problem in IT is solved](https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering).\n\n\nBy building [reference links](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links)\nthe differences of e.g. a README.md for github vs. gitlab is\nrestricted to the links section on the end of the generated markdown.\nIn the markdown bodies you'll just see link names, which remain the same.\n\n> Check the end of the [rendering result][README.md] at the end of this README.md,\nin order to see the results for the hoster you are reading this markdown file currently.\n\n## Summary\n\n- At normal runs of pytest, the link base URL is just a local `file://` link,\n\n- Before pushes one can set via environ (e.g. `export\n MD_LINKS_FOR=github`) these e.g. to the github base URL or the repo.\n\n- `[key-values]` constructs are supported as well, extending to beyond\n just the base url. Example following:\n\nSource code showing is done like this:\n\n```python\n def test_sh_code(self):\n md('Source code showing is done like this:')\n p2m.sh_code(self.test_sh_code)\n md(\n '> Is [title:this,fmatch:test_tutorial,lmatch:exotic] an exotic form of a recursion? ;-) '\n )\n\n```\n> Is [this][test_tutorial.py#325] an exotic form of a recursion? ;-) \n\n\n\n
Command Summary\n\n\n```bash\ncat \"/etc/hosts\" | grep localhost\nls \"/home/gk/repos/pytest2md/tests\"\nls -lta /etc/hosts\n/home/gk/repos/pytest2md/tests/assets/some_non_existing_command_in_assets arg1\nls -lta | grep total | head -n 1\nls -lta\nls -lta\n```\n
\n\n\n\n\n*Auto generated by [pytest2md](https://github.com/axiros/pytest2md), running [./tests/test_tutorial.py](./tests/test_tutorial.py)\n\n\n\n# Tips\n\n- Skip \"inner\" functions, except matching ones: `export P2RUN=my_func_name_match`\n\n- Turn off stdout redirection: `export P2MFG=true` (for breakpoints in tested modules)\n\n- Local Renderer:\n\n pip install grip\n\nto get a local github compliant markdown renderer, reloading after changes of the generated markdown.\n\n- Using fixtures with unittest style test classes\n\nCreate a `conftest.py` like:\n\n```python\nroot@localhost tests]# cat conftest.py\nimport pytest\nimport pytest2md as p2m\n\n\n@pytest.fixture(scope='class')\ndef write_md(request):\n def fin():\n request.cls.p2m.write_markdown(with_source_ref=True, make_toc=False)\n\n request.addfinalizer(fin)\n\n```\n\nthen use like:\n\n```\n@pytest.mark.usefixtures('write_md')\nclass TestDevUsage(unittest.TestCase):\n p2m = p2m # on module level: p2m.P2M(__file__, fn_target_md='README.md')\n\n (...)\n\n```\n\n\n\n\n# Isolation\n\nNone. If you would screw up your host running pytest normally, then you will\nget the same result, when running markdown generating tests.\n\n----\n\n[Here](https://github.com/axiros/pycond) is a bigger tutorial, from `pytest2md`.\n\n\n\n\n\n\n[.README.tmpl.md]: https://raw.githubusercontent.com/axiros/pytest2md/d7c23813ea77f821e8c83571849dce02ac197290/.README.tmpl.md\n[README.md]: https://raw.githubusercontent.com/axiros/pytest2md/d7c23813ea77f821e8c83571849dce02ac197290/README.md\n[mdtool.py]: https://github.com/axiros/pytest2md/blob/d7c23813ea77f821e8c83571849dce02ac197290/pytest2md/mdtool.py\n[test_tutorial.py]: https://github.com/axiros/pytest2md/blob/d7c23813ea77f821e8c83571849dce02ac197290/tests/test_tutorial.py\n[test_tutorial.py#325]: https://github.com/axiros/pytest2md/blob/d7c23813ea77f821e8c83571849dce02ac197290/tests/test_tutorial.py#L325\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/axiros/pytest2md", "keywords": "markdown,markup,testing,pytest", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pytest2md", "package_url": "https://pypi.org/project/pytest2md/", "platform": "", "project_url": "https://pypi.org/project/pytest2md/", "project_urls": { "Homepage": "https://github.com/axiros/pytest2md" }, "release_url": "https://pypi.org/project/pytest2md/20200602/", "requires_dist": [ "ansi2html" ], "requires_python": "", "summary": "Create and run markdown Readmes from within pytest", "version": "20200602", "yanked": false, "yanked_reason": null }, "last_serial": 7390893, "releases": { "1901001": [ { "comment_text": "", "digests": { "md5": "954b94c9d28e8e0111e91dc9d448b5bf", "sha256": "49177b17a0ec04c8680e636901e8cab924ea506a559292271157fbee8205a944" }, "downloads": -1, "filename": "pytest2md-1901001-py3-none-any.whl", "has_sig": false, "md5_digest": "954b94c9d28e8e0111e91dc9d448b5bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35404, "upload_time": "2019-10-10T13:25:40", "upload_time_iso_8601": "2019-10-10T13:25:40.535979Z", "url": "https://files.pythonhosted.org/packages/56/fb/cd9559c6dea3045eee13a18b4632b805fabf02b19e098245571d03f9e106/pytest2md-1901001-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1f7c20b027360b1829b0d12a1e39a231", "sha256": "611f64baadecde4a526f6a499e7645b0311d9feee3ac3804a443e3828a5a85bc" }, "downloads": -1, "filename": "pytest2md-1901001.tar.gz", "has_sig": false, "md5_digest": "1f7c20b027360b1829b0d12a1e39a231", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40759, "upload_time": "2019-10-10T13:25:42", "upload_time_iso_8601": "2019-10-10T13:25:42.698783Z", "url": "https://files.pythonhosted.org/packages/89/b9/9cd332c9531f68f9bf194298b3ec7d96c0e76536a1aaca35d88d257546b8/pytest2md-1901001.tar.gz", "yanked": false, "yanked_reason": null } ], "1901002": [ { "comment_text": "", "digests": { "md5": "6c75e764c3cf63957c0dbb7451b8f464", "sha256": "81c3a1c84cbbd4f8271d9c3d24c7b1d7aad068982f03481b2456b14efaa267ee" }, "downloads": -1, "filename": "pytest2md-1901002-py3-none-any.whl", "has_sig": false, "md5_digest": "6c75e764c3cf63957c0dbb7451b8f464", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35372, "upload_time": "2019-10-10T13:27:46", "upload_time_iso_8601": "2019-10-10T13:27:46.702744Z", "url": "https://files.pythonhosted.org/packages/b6/68/30620ea813d6c36ce16fa30ccfad4ba2ecd9618c3c68bdae743e15a4c20f/pytest2md-1901002-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a1e87d9c3a58d24e3733b1dc94061770", "sha256": "2d342a086ef033c7a6003ff8b39d778aa4d5a09810ddb3711370eac4d5124c5d" }, "downloads": -1, "filename": "pytest2md-1901002.tar.gz", "has_sig": false, "md5_digest": "a1e87d9c3a58d24e3733b1dc94061770", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40709, "upload_time": "2019-10-10T13:27:48", "upload_time_iso_8601": "2019-10-10T13:27:48.640646Z", "url": "https://files.pythonhosted.org/packages/21/eb/441c7796f9a44fc0f52d7aa0ba12965a7886eb0f33ce1b35c61a369dcc2c/pytest2md-1901002.tar.gz", "yanked": false, "yanked_reason": null } ], "1901003": [ { "comment_text": "", "digests": { "md5": "1ce582ab70bd088da2f30bc2b864bc03", "sha256": "7426c1ab899388f6fc41dfc59cf43213bf252ef81966a13e0b0dc41afa01d6a4" }, "downloads": -1, "filename": "pytest2md-1901003-py3-none-any.whl", "has_sig": false, "md5_digest": "1ce582ab70bd088da2f30bc2b864bc03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35510, "upload_time": "2019-10-10T15:38:27", "upload_time_iso_8601": "2019-10-10T15:38:27.054732Z", "url": "https://files.pythonhosted.org/packages/ab/6f/dbdd04e495734a6d6da03098838c8fc4eb12dd3755be667049fcf69b0614/pytest2md-1901003-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6abe5f398c6b6022c90614c92ca0e5bd", "sha256": "055a603c3c939b0b49d7aabca4683dc51668eb72175f98ed93b9cf9c2eee9d35" }, "downloads": -1, "filename": "pytest2md-1901003.tar.gz", "has_sig": false, "md5_digest": "6abe5f398c6b6022c90614c92ca0e5bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40857, "upload_time": "2019-10-10T15:38:29", "upload_time_iso_8601": "2019-10-10T15:38:29.340640Z", "url": "https://files.pythonhosted.org/packages/53/c2/1a52854929e23a29fb03dca89339b83b9f3dab27ea13af12cf9c081b6454/pytest2md-1901003.tar.gz", "yanked": false, "yanked_reason": null } ], "1901005": [ { "comment_text": "", "digests": { "md5": "5c12eaeaed629ada2920fe07c254afc4", "sha256": "55fb28599a1aab78f6f8d354d7f91f512535bc920a84c83da255506f76786a8b" }, "downloads": -1, "filename": "pytest2md-1901005-py3-none-any.whl", "has_sig": false, "md5_digest": "5c12eaeaed629ada2920fe07c254afc4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35659, "upload_time": "2019-10-24T19:03:52", "upload_time_iso_8601": "2019-10-24T19:03:52.640404Z", "url": "https://files.pythonhosted.org/packages/19/4b/e1e05b384b8be03ae879f7a38aa4edf2ce800093f4a6069825c3ea998182/pytest2md-1901005-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f9650c8bc12d20911d6d6d700a7756ee", "sha256": "96032661f9a3bbdb1a9f769edb3a41719c89b2a92d9f3a07d6e940e50c3d6413" }, "downloads": -1, "filename": "pytest2md-1901005.tar.gz", "has_sig": false, "md5_digest": "f9650c8bc12d20911d6d6d700a7756ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40996, "upload_time": "2019-10-24T19:03:54", "upload_time_iso_8601": "2019-10-24T19:03:54.838874Z", "url": "https://files.pythonhosted.org/packages/96/d2/96b7ad80a1193a06664cc6868ef65e8b7dc6f4655e5624e2249ad5a2436c/pytest2md-1901005.tar.gz", "yanked": false, "yanked_reason": null } ], "1901025": [ { "comment_text": "", "digests": { "md5": "6956339af4a84f06dfb129088a585da6", "sha256": "3f02ceb2547a1764750b10a8c95269810a0e5078a5cb3654f7521abc408b606b" }, "downloads": -1, "filename": "pytest2md-1901025-py3-none-any.whl", "has_sig": false, "md5_digest": "6956339af4a84f06dfb129088a585da6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35651, "upload_time": "2019-10-31T16:20:07", "upload_time_iso_8601": "2019-10-31T16:20:07.578115Z", "url": "https://files.pythonhosted.org/packages/c0/b8/653b13ab206027b34426a2534ff70073be6e1adedeb2bf5201601b4b0cbc/pytest2md-1901025-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9169c468553e9892385fbad7fe270378", "sha256": "ea6b130a187ec10fc9dcc2b34a335c15bf6c945bb3035e81d1b49c4cec1ddf7f" }, "downloads": -1, "filename": "pytest2md-1901025.tar.gz", "has_sig": false, "md5_digest": "9169c468553e9892385fbad7fe270378", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40973, "upload_time": "2019-10-31T16:20:10", "upload_time_iso_8601": "2019-10-31T16:20:10.029953Z", "url": "https://files.pythonhosted.org/packages/59/8f/7c01caee25e61131a675487cc27d32fe7e1674b928854f95166894dd07c7/pytest2md-1901025.tar.gz", "yanked": false, "yanked_reason": null } ], "1901125": [ { "comment_text": "", "digests": { "md5": "14d8102ee611f45132c01a3d97f74df9", "sha256": "34d080af84beb1bd75e7d8f73e0cce9f54adc4133510faa9a5d55e81cd46c51c" }, "downloads": -1, "filename": "pytest2md-1901125-py3-none-any.whl", "has_sig": false, "md5_digest": "14d8102ee611f45132c01a3d97f74df9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35807, "upload_time": "2019-11-26T02:49:37", "upload_time_iso_8601": "2019-11-26T02:49:37.601431Z", "url": "https://files.pythonhosted.org/packages/81/8a/831bc17584555d0adc14e48ffb57bb88921d5717e8b66cd95dcbf0bbb43b/pytest2md-1901125-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d5dc6974470259805f30728c8ee19238", "sha256": "aabcbbfb639125208d52e96356a6c83a2f9716cea9d9b85611cb87618eeca7bf" }, "downloads": -1, "filename": "pytest2md-1901125.tar.gz", "has_sig": false, "md5_digest": "d5dc6974470259805f30728c8ee19238", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41095, "upload_time": "2019-11-26T02:49:39", "upload_time_iso_8601": "2019-11-26T02:49:39.666785Z", "url": "https://files.pythonhosted.org/packages/1e/8a/c689db4e8d1de65d3e9249fac2bcde18a1ee4922f7fb84f5cd4850d3003f/pytest2md-1901125.tar.gz", "yanked": false, "yanked_reason": null } ], "190423": [ { "comment_text": "", "digests": { "md5": "720e687d437b2b75cece29f3d7b42d4f", "sha256": "85a02850b47666a19743f1a41e0bef8dd7fd00493d168b393e2a78afcb0423f7" }, "downloads": -1, "filename": "pytest2md-190423-py3-none-any.whl", "has_sig": false, "md5_digest": "720e687d437b2b75cece29f3d7b42d4f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32226, "upload_time": "2019-04-22T09:01:10", "upload_time_iso_8601": "2019-04-22T09:01:10.953846Z", "url": "https://files.pythonhosted.org/packages/4e/da/25dc9d4d3c256f93c30c6431885c9d5c50f3fba4d315e83a20ab601581f5/pytest2md-190423-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "68057787024c23efe986f04f86452efc", "sha256": "28134473484f540c0d1083ae4c8dbea6ba4f63a31281d6c1ebcc967302389d38" }, "downloads": -1, "filename": "pytest2md-190423.tar.gz", "has_sig": false, "md5_digest": "68057787024c23efe986f04f86452efc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36877, "upload_time": "2019-04-22T09:01:12", "upload_time_iso_8601": "2019-04-22T09:01:12.993218Z", "url": "https://files.pythonhosted.org/packages/46/0f/7b88cc7a21255854d362536013419db8521a68220b53f785eb9cfe1c65f1/pytest2md-190423.tar.gz", "yanked": false, "yanked_reason": null } ], "190425": [ { "comment_text": "", "digests": { "md5": "ba3a031f22c565f873c29ccc697cc8ee", "sha256": "a37473ee3f7adf013581e1f7acaffe6d85a337e863ce5fbce8ed36460c7807f7" }, "downloads": -1, "filename": "pytest2md-190425-py3-none-any.whl", "has_sig": false, "md5_digest": "ba3a031f22c565f873c29ccc697cc8ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32226, "upload_time": "2019-04-22T09:35:47", "upload_time_iso_8601": "2019-04-22T09:35:47.717308Z", "url": "https://files.pythonhosted.org/packages/a4/10/63ce514143dbad39617aa9bc575d98fe78931d94ed3fa7ee4d4af0d7f7c2/pytest2md-190425-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5405a387f4e99f57ef5d9e61f66e0d3c", "sha256": "01bcb3969bb60793d1bf71012799a417f8faff490ad90deaac3d7edcb6270b26" }, "downloads": -1, "filename": "pytest2md-190425.tar.gz", "has_sig": false, "md5_digest": "5405a387f4e99f57ef5d9e61f66e0d3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36995, "upload_time": "2019-04-22T09:35:49", "upload_time_iso_8601": "2019-04-22T09:35:49.088514Z", "url": "https://files.pythonhosted.org/packages/68/ed/5c0a9cc1d2f3707bd23187523ed6dbcb5baa049143843646ccb22bc138e5/pytest2md-190425.tar.gz", "yanked": false, "yanked_reason": null } ], "190426": [ { "comment_text": "", "digests": { "md5": "851e240810a9ea743ec622819fc0cdbb", "sha256": "008546e811a707f3df49a1f9910a7c91a221f8bf0243c86a705f8ea23b3667bb" }, "downloads": -1, "filename": "pytest2md-190426-py3-none-any.whl", "has_sig": false, "md5_digest": "851e240810a9ea743ec622819fc0cdbb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32281, "upload_time": "2019-04-22T10:33:53", "upload_time_iso_8601": "2019-04-22T10:33:53.541807Z", "url": "https://files.pythonhosted.org/packages/1d/2b/2fa39963a338bd01a00ef48c6deee7e6edfcdfe5e16bbfc5b711bd169df0/pytest2md-190426-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5b591cf4eccdaba2a49e3bd5192f36b0", "sha256": "87f1862402f004063409004ee67c0d0cc732845ff25c709ed787d385fe0956a8" }, "downloads": -1, "filename": "pytest2md-190426.tar.gz", "has_sig": false, "md5_digest": "5b591cf4eccdaba2a49e3bd5192f36b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37064, "upload_time": "2019-04-22T10:33:55", "upload_time_iso_8601": "2019-04-22T10:33:55.940330Z", "url": "https://files.pythonhosted.org/packages/f9/db/fe18b3764dc2a6d259a3e1eef45857c6c3f75f70c66f5a031ae5faa9dd23/pytest2md-190426.tar.gz", "yanked": false, "yanked_reason": null } ], "190427": [ { "comment_text": "", "digests": { "md5": "5fc0da4c2058142e2729beddf84fa112", "sha256": "756bd9d93aaf60b438eacd53cc047b269e52ecb949dd69a928325e2edd505bce" }, "downloads": -1, "filename": "pytest2md-190427-py3-none-any.whl", "has_sig": false, "md5_digest": "5fc0da4c2058142e2729beddf84fa112", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32307, "upload_time": "2019-04-22T11:06:40", "upload_time_iso_8601": "2019-04-22T11:06:40.805208Z", "url": "https://files.pythonhosted.org/packages/59/20/e6077bd89d60557bc7a29f77d68f4c92b8962ce48a13e3dd930ec98771e9/pytest2md-190427-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9d2b45d85dc78a5841919ec28dde3f23", "sha256": "c284a55d5dc012c942b4288886a2945ab6427d7771230acce6d41144291a5f1a" }, "downloads": -1, "filename": "pytest2md-190427.tar.gz", "has_sig": false, "md5_digest": "9d2b45d85dc78a5841919ec28dde3f23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37133, "upload_time": "2019-04-22T11:06:43", "upload_time_iso_8601": "2019-04-22T11:06:43.729463Z", "url": "https://files.pythonhosted.org/packages/37/b2/160b879569141c2646ddb4df3a43aa1f4d16ab82ede73e60efba9929f10b/pytest2md-190427.tar.gz", "yanked": false, "yanked_reason": null } ], "190428": [ { "comment_text": "", "digests": { "md5": "06d7bcd166af8cb453793d84bad7521c", "sha256": "6277c62433b9438073d05ac44bdcebe3b45d52b2ed86b9b13a581af6e4b964ea" }, "downloads": -1, "filename": "pytest2md-190428-py3-none-any.whl", "has_sig": false, "md5_digest": "06d7bcd166af8cb453793d84bad7521c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32440, "upload_time": "2019-04-22T11:39:49", "upload_time_iso_8601": "2019-04-22T11:39:49.753161Z", "url": "https://files.pythonhosted.org/packages/e0/0a/9de52d0807161c7ceb9b406bb9f5133579e21727698b92ab46381dd907a1/pytest2md-190428-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "206b7283569737e4082563c6584fece9", "sha256": "954285febdd06232212c2ccb6fb399921fa91339514a533131ac1788e79c08c9" }, "downloads": -1, "filename": "pytest2md-190428.tar.gz", "has_sig": false, "md5_digest": "206b7283569737e4082563c6584fece9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37433, "upload_time": "2019-04-22T11:39:51", "upload_time_iso_8601": "2019-04-22T11:39:51.099048Z", "url": "https://files.pythonhosted.org/packages/6c/8b/7e184db12a958019f90405519d71d2f3f26a919a6641fc7ac45b878b85d9/pytest2md-190428.tar.gz", "yanked": false, "yanked_reason": null } ], "190910": [ { "comment_text": "", "digests": { "md5": "9faba0840628207d78320e8433dc845c", "sha256": "1059a447e110888fcefce8100a63fefa28398d765fad67ca6318498100e4c7dd" }, "downloads": -1, "filename": "pytest2md-190910-py3-none-any.whl", "has_sig": false, "md5_digest": "9faba0840628207d78320e8433dc845c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33692, "upload_time": "2019-09-15T19:51:31", "upload_time_iso_8601": "2019-09-15T19:51:31.705268Z", "url": "https://files.pythonhosted.org/packages/e7/26/f6bf0aff0ecad8ef30ab9147a126d5bfc747453998a0a077387e969acc04/pytest2md-190910-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3f8b4850171ecd820f17fb65444e3d8a", "sha256": "21954f7ba7e6ea13a15706f649067d097e66ab43662f9035f22e2b9cadc85e8c" }, "downloads": -1, "filename": "pytest2md-190910.tar.gz", "has_sig": false, "md5_digest": "3f8b4850171ecd820f17fb65444e3d8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38805, "upload_time": "2019-09-15T19:51:33", "upload_time_iso_8601": "2019-09-15T19:51:33.658210Z", "url": "https://files.pythonhosted.org/packages/9d/de/8698c22b9d1ed3136cd3d830a9e824cc446d361c387d5925a8512d26eaa2/pytest2md-190910.tar.gz", "yanked": false, "yanked_reason": null } ], "190911": [ { "comment_text": "", "digests": { "md5": "524295da4259120fefd4457d65180b00", "sha256": "1d555ac5a87e3d506c7a02107166f24a15153ffa6c138b35f527e9d6dbda444c" }, "downloads": -1, "filename": "pytest2md-190911-py3-none-any.whl", "has_sig": false, "md5_digest": "524295da4259120fefd4457d65180b00", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34315, "upload_time": "2019-09-16T23:06:11", "upload_time_iso_8601": "2019-09-16T23:06:11.604071Z", "url": "https://files.pythonhosted.org/packages/c2/c5/2a7a7850af08836304c4701b601cc71bdbd30feea9c869ad3e70e1619a58/pytest2md-190911-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5cd115eef1d4846ab325590ea8d78251", "sha256": "8dba3ed87a1547eb89a893ef1591d8da3b1418322c6f8dd48c8542513d8d1668" }, "downloads": -1, "filename": "pytest2md-190911.tar.gz", "has_sig": false, "md5_digest": "5cd115eef1d4846ab325590ea8d78251", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39451, "upload_time": "2019-09-16T23:06:13", "upload_time_iso_8601": "2019-09-16T23:06:13.971722Z", "url": "https://files.pythonhosted.org/packages/41/0d/596c5b9486d9c12a1c7b6f90b69f665ea40a0686e801d02445b19c0553ef/pytest2md-190911.tar.gz", "yanked": false, "yanked_reason": null } ], "190912": [ { "comment_text": "", "digests": { "md5": "35da2e736d32b04c9a8b40d2688959a2", "sha256": "5fb221e0e1e2bec7c5f83a8aea31d19e657c490dabeb25b9d97e5cf7d34bb2a0" }, "downloads": -1, "filename": "pytest2md-190912-py3-none-any.whl", "has_sig": false, "md5_digest": "35da2e736d32b04c9a8b40d2688959a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34419, "upload_time": "2019-09-16T23:16:48", "upload_time_iso_8601": "2019-09-16T23:16:48.370779Z", "url": "https://files.pythonhosted.org/packages/a2/c0/7805b07b167ca653689f6108af5028f76517220f300303d85428651375db/pytest2md-190912-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "96a5cdecefa8914aefa3009743968de8", "sha256": "8f95ee7128bd34f9c259233884993413e2397dc8bf0a8194239abd2ce0f047d5" }, "downloads": -1, "filename": "pytest2md-190912.tar.gz", "has_sig": false, "md5_digest": "96a5cdecefa8914aefa3009743968de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39542, "upload_time": "2019-09-16T23:16:51", "upload_time_iso_8601": "2019-09-16T23:16:51.222781Z", "url": "https://files.pythonhosted.org/packages/ff/4a/88610dde464120686478d66cbbb2c872d248670562020c814d2a12511a18/pytest2md-190912.tar.gz", "yanked": false, "yanked_reason": null } ], "190913": [ { "comment_text": "", "digests": { "md5": "c3106239a302fc8141e8c82964822651", "sha256": "a51fc3836ebdc712b51e57989222969bb698e2f242eec2ee943beb618492d269" }, "downloads": -1, "filename": "pytest2md-190913-py3-none-any.whl", "has_sig": false, "md5_digest": "c3106239a302fc8141e8c82964822651", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34417, "upload_time": "2019-09-16T23:44:30", "upload_time_iso_8601": "2019-09-16T23:44:30.962222Z", "url": "https://files.pythonhosted.org/packages/f9/f7/b21af04761cc09b07a4b10beb9b11d5d8967c4a7f015e8b9e9c88a1d862f/pytest2md-190913-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "af152570bb1ddeb1595b8abab2cd4396", "sha256": "e0a9eeae8c13325b9d7ffca834e39a8faa87d8a0142086a5d92581f93efb832f" }, "downloads": -1, "filename": "pytest2md-190913.tar.gz", "has_sig": false, "md5_digest": "af152570bb1ddeb1595b8abab2cd4396", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39536, "upload_time": "2019-09-16T23:44:33", "upload_time_iso_8601": "2019-09-16T23:44:33.132873Z", "url": "https://files.pythonhosted.org/packages/e5/9e/f9233a24768afff344416a95672c6406584bbaeac4f8b080003383f5fa84/pytest2md-190913.tar.gz", "yanked": false, "yanked_reason": null } ], "190914": [ { "comment_text": "", "digests": { "md5": "13bb98b28690c99bb46bec3b9834f058", "sha256": "dd814671a5822921fe2371ff128b633b579e62aea70c0061e61d339d9a45bcfa" }, "downloads": -1, "filename": "pytest2md-190914-py3-none-any.whl", "has_sig": false, "md5_digest": "13bb98b28690c99bb46bec3b9834f058", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34735, "upload_time": "2019-09-17T10:02:33", "upload_time_iso_8601": "2019-09-17T10:02:33.191241Z", "url": "https://files.pythonhosted.org/packages/c7/09/b766ef99117ec118214e404d69a0fa2fc285d7140103eb17df9fd87e9e79/pytest2md-190914-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5ee17e0fe034164019d69a6d8c6e4eb4", "sha256": "2c76590bf569d4e97b8b1768ed12bf07e30400892fa71b641eb6185de077607b" }, "downloads": -1, "filename": "pytest2md-190914.tar.gz", "has_sig": false, "md5_digest": "5ee17e0fe034164019d69a6d8c6e4eb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39996, "upload_time": "2019-09-17T10:02:35", "upload_time_iso_8601": "2019-09-17T10:02:35.331233Z", "url": "https://files.pythonhosted.org/packages/6b/d3/d355e9794615e9127f4f638149d95e430876d588f8136153be6dddeb90e5/pytest2md-190914.tar.gz", "yanked": false, "yanked_reason": null } ], "190915": [ { "comment_text": "", "digests": { "md5": "250547b4926acec6ab4e815cd4337656", "sha256": "eb3f9f660bc0ac4d4324529c3b0258dab82dd1cbd20f038b5f7420f4d3e71af0" }, "downloads": -1, "filename": "pytest2md-190915-py3-none-any.whl", "has_sig": false, "md5_digest": "250547b4926acec6ab4e815cd4337656", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34853, "upload_time": "2019-09-21T21:55:36", "upload_time_iso_8601": "2019-09-21T21:55:36.825682Z", "url": "https://files.pythonhosted.org/packages/2a/11/bdea88d41d51c44179b88cf15070085263e1f5ff320f24c664675946adb4/pytest2md-190915-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "09a3beb6be93d69129f8f1b260b01723", "sha256": "3b60b701ae0af5942869c629246705e6a90b5afcdfe11682e5a53415c02b36c7" }, "downloads": -1, "filename": "pytest2md-190915.tar.gz", "has_sig": false, "md5_digest": "09a3beb6be93d69129f8f1b260b01723", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40104, "upload_time": "2019-09-21T21:55:39", "upload_time_iso_8601": "2019-09-21T21:55:39.031206Z", "url": "https://files.pythonhosted.org/packages/c2/2c/21b202abb791383b5bde91e01e9540ba95cefa88a34985b3239a217f3978/pytest2md-190915.tar.gz", "yanked": false, "yanked_reason": null } ], "190917": [ { "comment_text": "", "digests": { "md5": "6735645fe1bcae51ce1f8f9689acfb43", "sha256": "13b95fffab49617f55a18eaff9fa0c67688be0dd3521f71ec4c68517bd18c61b" }, "downloads": -1, "filename": "pytest2md-190917-py3-none-any.whl", "has_sig": false, "md5_digest": "6735645fe1bcae51ce1f8f9689acfb43", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34909, "upload_time": "2019-09-22T16:32:43", "upload_time_iso_8601": "2019-09-22T16:32:43.388575Z", "url": "https://files.pythonhosted.org/packages/e5/f6/e641bd179b68d29637dfcb5e61158dfd299153e164ac30872c7f6cdf40c8/pytest2md-190917-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "368f00720342a883fe0dca1a0a968971", "sha256": "8b0fab0b799ef5b5e9925fd5846afc018184a095c3feca434fd048bba08d99c5" }, "downloads": -1, "filename": "pytest2md-190917.tar.gz", "has_sig": false, "md5_digest": "368f00720342a883fe0dca1a0a968971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40234, "upload_time": "2019-09-22T16:32:45", "upload_time_iso_8601": "2019-09-22T16:32:45.545375Z", "url": "https://files.pythonhosted.org/packages/7a/82/f0c3d08e331f8934cf9585df377a750156d487afa70ff289b33005f54d41/pytest2md-190917.tar.gz", "yanked": false, "yanked_reason": null } ], "190918": [ { "comment_text": "", "digests": { "md5": "3924ad3d2ccc23e4240694913db0e617", "sha256": "a83c7924c5cb3af77a99eb4408fd65836fcf2d88b39d48238ade42f2508d1e19" }, "downloads": -1, "filename": "pytest2md-190918-py3-none-any.whl", "has_sig": false, "md5_digest": "3924ad3d2ccc23e4240694913db0e617", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35100, "upload_time": "2019-09-25T10:48:52", "upload_time_iso_8601": "2019-09-25T10:48:52.082727Z", "url": "https://files.pythonhosted.org/packages/c9/bc/4b7283f13606c6253903b0d3158a38213d266baa8f10a54063065dba4115/pytest2md-190918-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9958ba028132bb150c4d99ad09e96628", "sha256": "940f9f86c8f45f27330927863b6527c50d4850ea117ecd3633b1c476f07f5fa6" }, "downloads": -1, "filename": "pytest2md-190918.tar.gz", "has_sig": false, "md5_digest": "9958ba028132bb150c4d99ad09e96628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40459, "upload_time": "2019-09-25T10:48:54", "upload_time_iso_8601": "2019-09-25T10:48:54.193684Z", "url": "https://files.pythonhosted.org/packages/d4/62/739c2ddf7e13dc2cfa1cd07ff796d25c6a6d913a98d29d5b8cbea246ff06/pytest2md-190918.tar.gz", "yanked": false, "yanked_reason": null } ], "190919": [ { "comment_text": "", "digests": { "md5": "080bb44d4d1e7b27dc2b937238ee5a4d", "sha256": "4c32d61d4f0fabd7a77db47d602a05a34db714632faa382476dab933f558a7a2" }, "downloads": -1, "filename": "pytest2md-190919-py3-none-any.whl", "has_sig": false, "md5_digest": "080bb44d4d1e7b27dc2b937238ee5a4d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35170, "upload_time": "2019-09-25T11:45:33", "upload_time_iso_8601": "2019-09-25T11:45:33.939633Z", "url": "https://files.pythonhosted.org/packages/19/74/c0b3987e2489fb21cd0d2b5757c1071f223c56abf1527062fa1c450aeb31/pytest2md-190919-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dc5ee5096885ee48441c189981f30754", "sha256": "7fea06d1c6431babcc072c3ae6cf153dc15598ab797176206998e580cc272ef2" }, "downloads": -1, "filename": "pytest2md-190919.tar.gz", "has_sig": false, "md5_digest": "dc5ee5096885ee48441c189981f30754", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40502, "upload_time": "2019-09-25T11:45:35", "upload_time_iso_8601": "2019-09-25T11:45:35.898785Z", "url": "https://files.pythonhosted.org/packages/6b/2a/92d8714eee7e5db3007f829ccd5ca7ae85e430b965456b07fc9f891c0ca7/pytest2md-190919.tar.gz", "yanked": false, "yanked_reason": null } ], "190920": [ { "comment_text": "", "digests": { "md5": "476f3dac7a5713e8619bc19832bd8da0", "sha256": "a79423b6e07dabd4ef2f0c5dbb4352d01d3a364dcb66b49c5da8b464e02bf390" }, "downloads": -1, "filename": "pytest2md-190920-py3-none-any.whl", "has_sig": false, "md5_digest": "476f3dac7a5713e8619bc19832bd8da0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35271, "upload_time": "2019-09-25T12:43:25", "upload_time_iso_8601": "2019-09-25T12:43:25.695577Z", "url": "https://files.pythonhosted.org/packages/a3/71/8cbf5650a58b036c52fd543ae6a5855ecb81e1341382d231c67b16986571/pytest2md-190920-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "15ee3909cb54ffa81750543628ae6054", "sha256": "2546ad892d9ded7bc23a1789968efc18b31a3a615f7aeb07496000bcbf142a90" }, "downloads": -1, "filename": "pytest2md-190920.tar.gz", "has_sig": false, "md5_digest": "15ee3909cb54ffa81750543628ae6054", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40617, "upload_time": "2019-09-25T12:43:27", "upload_time_iso_8601": "2019-09-25T12:43:27.460650Z", "url": "https://files.pythonhosted.org/packages/46/05/f349e5446dc021a9271d1617b3ca5dba9d05239ef89766f69c9e5dabd401/pytest2md-190920.tar.gz", "yanked": false, "yanked_reason": null } ], "20200530": [ { "comment_text": "", "digests": { "md5": "a711ac9132152516563554fbd4453777", "sha256": "ca5ea739f451e0decdb1e45a0ffef9196bc160b2c1b86fbd23362f5f4c49dc2f" }, "downloads": -1, "filename": "pytest2md-20200530-py3-none-any.whl", "has_sig": false, "md5_digest": "a711ac9132152516563554fbd4453777", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36066, "upload_time": "2020-05-30T09:15:18", "upload_time_iso_8601": "2020-05-30T09:15:18.789381Z", "url": "https://files.pythonhosted.org/packages/3e/91/0cdfd1339fd83865cb2245f042327f7a726d25a48f4bf3ebdc724df30e56/pytest2md-20200530-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a24842a97730bda1714a65e02fdc97ee", "sha256": "29366a3900961a300a2c4d944295b7e9f785fd41c0a040093ef7c1c8006201b7" }, "downloads": -1, "filename": "pytest2md-20200530.tar.gz", "has_sig": false, "md5_digest": "a24842a97730bda1714a65e02fdc97ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41337, "upload_time": "2020-05-30T09:15:20", "upload_time_iso_8601": "2020-05-30T09:15:20.914670Z", "url": "https://files.pythonhosted.org/packages/b3/c3/3a32412f0ad95f8081bcf4a94f9f2114dcc28dca55ff6a9fa4a8c837694b/pytest2md-20200530.tar.gz", "yanked": false, "yanked_reason": null } ], "20200531": [ { "comment_text": "", "digests": { "md5": "6eaaf95e1911e28c0e1b7fedc7159a1d", "sha256": "fda8f7c104b3588a020d6e5f1acfee3bc4154fe2c18980a6e1151b160572fa0b" }, "downloads": -1, "filename": "pytest2md-20200531-py3-none-any.whl", "has_sig": false, "md5_digest": "6eaaf95e1911e28c0e1b7fedc7159a1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36055, "upload_time": "2020-05-30T09:15:57", "upload_time_iso_8601": "2020-05-30T09:15:57.298248Z", "url": "https://files.pythonhosted.org/packages/26/d0/256332abc1d90fa6b87996057effc499efe79e41cd2f97052f86a963f1fc/pytest2md-20200531-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "297b792028d7eadc21dc059201212b5c", "sha256": "869a7a626cc9a8d4993e186dda9b8ce86b51ceae2a6374dc6dfcadc4ce2c3505" }, "downloads": -1, "filename": "pytest2md-20200531.tar.gz", "has_sig": false, "md5_digest": "297b792028d7eadc21dc059201212b5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41317, "upload_time": "2020-05-30T09:15:59", "upload_time_iso_8601": "2020-05-30T09:15:59.314589Z", "url": "https://files.pythonhosted.org/packages/7e/cb/1b6a515ae9ef74ee66a4c7f493b70cb8be54b25ab6afdbcf4ced2bbc8703/pytest2md-20200531.tar.gz", "yanked": false, "yanked_reason": null } ], "20200601": [ { "comment_text": "", "digests": { "md5": "661372c164043357bb0ceb7dc4d0fc03", "sha256": "672d305b86fd99ebd690cc46cfc4c63787d2e02edb11bbe190943c1ddb05f803" }, "downloads": -1, "filename": "pytest2md-20200601-py3-none-any.whl", "has_sig": false, "md5_digest": "661372c164043357bb0ceb7dc4d0fc03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36211, "upload_time": "2020-06-03T17:38:08", "upload_time_iso_8601": "2020-06-03T17:38:08.492535Z", "url": "https://files.pythonhosted.org/packages/ec/d1/1521d2a3becf402f3ef220c6793e795fb77a3eaa4a2b7084059deab1e9d9/pytest2md-20200601-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3477f810f9e7a68feb8116ed9d295084", "sha256": "3dbd58dd278b46f626c3a742eb4b0abf32df4960c4a1ea2891fc2883ed356761" }, "downloads": -1, "filename": "pytest2md-20200601.tar.gz", "has_sig": false, "md5_digest": "3477f810f9e7a68feb8116ed9d295084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41606, "upload_time": "2020-06-03T17:38:10", "upload_time_iso_8601": "2020-06-03T17:38:10.062407Z", "url": "https://files.pythonhosted.org/packages/14/d3/62e7ab3ab0edd212bd34f4f924587aaf5a527639a1097b808ea5ac25ec93/pytest2md-20200601.tar.gz", "yanked": false, "yanked_reason": null } ], "20200602": [ { "comment_text": "", "digests": { "md5": "6388d138016a24a651fbb2aa10cdd19c", "sha256": "b93a82b28ff566294d4b4fd5ab279faa1a630182fef2ffb6fbfbfa46ac23db56" }, "downloads": -1, "filename": "pytest2md-20200602-py3-none-any.whl", "has_sig": false, "md5_digest": "6388d138016a24a651fbb2aa10cdd19c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36250, "upload_time": "2020-06-03T22:15:16", "upload_time_iso_8601": "2020-06-03T22:15:16.174185Z", "url": "https://files.pythonhosted.org/packages/77/6f/ff4d25b86d39d2e55a8c3517b6771cabe13b01863fdf7f2a8d36cd3d6b3e/pytest2md-20200602-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "58a5fb28fb9edbce2e12dcfa9ffc6c01", "sha256": "f3446fce9090a2cdd758965885f675059cb750c3d41e6574581040ca3c9f0970" }, "downloads": -1, "filename": "pytest2md-20200602.tar.gz", "has_sig": false, "md5_digest": "58a5fb28fb9edbce2e12dcfa9ffc6c01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41609, "upload_time": "2020-06-03T22:15:18", "upload_time_iso_8601": "2020-06-03T22:15:18.073146Z", "url": "https://files.pythonhosted.org/packages/63/8c/9d45a7fc48a15280c076bcc65f5d3de3423d8d4e3dad238e73dfe8558b11/pytest2md-20200602.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6388d138016a24a651fbb2aa10cdd19c", "sha256": "b93a82b28ff566294d4b4fd5ab279faa1a630182fef2ffb6fbfbfa46ac23db56" }, "downloads": -1, "filename": "pytest2md-20200602-py3-none-any.whl", "has_sig": false, "md5_digest": "6388d138016a24a651fbb2aa10cdd19c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36250, "upload_time": "2020-06-03T22:15:16", "upload_time_iso_8601": "2020-06-03T22:15:16.174185Z", "url": "https://files.pythonhosted.org/packages/77/6f/ff4d25b86d39d2e55a8c3517b6771cabe13b01863fdf7f2a8d36cd3d6b3e/pytest2md-20200602-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "58a5fb28fb9edbce2e12dcfa9ffc6c01", "sha256": "f3446fce9090a2cdd758965885f675059cb750c3d41e6574581040ca3c9f0970" }, "downloads": -1, "filename": "pytest2md-20200602.tar.gz", "has_sig": false, "md5_digest": "58a5fb28fb9edbce2e12dcfa9ffc6c01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41609, "upload_time": "2020-06-03T22:15:18", "upload_time_iso_8601": "2020-06-03T22:15:18.073146Z", "url": "https://files.pythonhosted.org/packages/63/8c/9d45a7fc48a15280c076bcc65f5d3de3423d8d4e3dad238e73dfe8558b11/pytest2md-20200602.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }