{ "info": { "author": "Ilya Flyamer", "author_email": "flyamer@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "# coolpup.py\n[![DOI](https://zenodo.org/badge/147190130.svg)](https://zenodo.org/badge/latestdoi/147190130)\n[![PyPI version](https://badge.fury.io/py/coolpuppy.svg)](https://badge.fury.io/py/coolpuppy)\n[![Build Status](https://travis-ci.org/Phlya/coolpuppy.svg?branch=master)](https://travis-ci.org/Phlya/coolpuppy)\n\n.**cool** file **p**ile-**up**s with **py**thon.\n\n# Introduction\n\n## .cool format\nA versatile tool to perform pile-up analysis on Hi-C data in .cool format (https://github.com/mirnylab/cooler). And who doesn't like cool pupppies?\n\n.cool is a modern and flexible (and the best, in my opinion) format to store Hi-C data.\nIt uses HDF5 to store a sparse representation of the Hi-C data, which allows low memory requirements when dealing with high resolution datasets. Another popular format to store Hi-C data, .hic, can be converted into .cool files using `hic2cool` (https://github.com/4dn-dcic/hic2cool).\n\nSee for details:\n\nAbdennur, N., and Mirny, L. (2019). Cooler: scalable storage for Hi-C data and other genomically-labeled arrays. Bioinformatics. [10.1093/bioinformatics/btz540](https://doi.org/10.1093/bioinformatics/btz540)\n\n## What are pileups?\n\nThis is the idea of how pileups work to check whether certain regions tend to interacts with each other:\n\n\n\nWhat's not shown here is normalization to the expected values. This can be done in two ways: either using a provided file with expected values of interactions at different distances (output of `cooltools compute-expected`), or directly from Hi-C data by dividing the pileups over randomly shifted control regions. If neither expected normalization approach is used (just set `--nshifts 0`), this becomes essentially identical to the APA approach (Rao et al., 2014), which can be used for averaging strongly interacting regions, e.g. annotated loops. For weaker interactors, decay of contact probability with distance can hide any focal enrichment that could be observed otherwise.\n\n`coolpup.py` is particularly well suited performance-wise for analysing huge numbers of potential interactions, since it loads whole chromosomes into memory one by one (or in parallel to speed it up) to extract small submatrices quickly. Having to read everything into memory makes it relatively slow for small numbers of loops, but performance doesn't decrease until you reach a huge number of interactions.\n\n# Getting started\n\n## Installation\nAll requirements apart from `cooltools` are available from PyPI or conda. For `cooltools`, do\n\n`\npip install https://github.com/mirnylab/cooltools/archive/master.zip\n`\n\nFor coolpuppy (and other dependencies) simply do:\n\n`pip install coolpuppy`\n\nor\n\n`pip install https://github.com/Phlya/coolpuppy/archive/master.zip`\n\nto get the latest version from GitHub. This will make `coolpup.py` callable in your terminal, and importable in python as `coolpuppy`.\n\n## Usage\n\nSome examples to get you started are available here: https://github.com/Phlya/coolpuppy/blob/master/docs/Examples.ipynb\n\nHelp message should help you with the details. It is a single command that has a lot of options and can do a lot of things!\n\n```\nUsage: coolpup.py [-h] [--bed2 BED2] [--bed2_unordered] [--pad PAD]\n [--minshift MINSHIFT] [--maxshift MAXSHIFT]\n [--nshifts NSHIFTS] [--expected EXPECTED]\n [--mindist MINDIST] [--maxdist MAXDIST] [--minsize MINSIZE]\n [--maxsize MAXSIZE] [--excl_chrs EXCL_CHRS]\n [--incl_chrs INCL_CHRS] [--subset SUBSET] [--anchor ANCHOR]\n [--by_window] [--save_all] [--local] [--unbalanced]\n [--coverage_norm] [--rescale] [--rescale_pad RESCALE_PAD]\n [--rescale_size RESCALE_SIZE] [--weight_name WEIGHT_NAME]\n [--n_proc N_PROC] [--outdir OUTDIR] [--outname OUTNAME]\n [-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}]\n coolfile baselist\n\npositional arguments:\n coolfile Cooler file with your Hi-C data\n baselist A 3-column bed file or a 6-column double-bed file\n (i.e. chr1,start1,end1,chr2,start2,end2). Should be\n tab-delimited. With a bed file, will consider all cis\n combinations of intervals. To pileup features along\n the diagonal instead, use the --local argument. Can be\n piped in via stdin, then use \"-\".\n\noptional arguments:\n -h, --help show this help message and exit\n --bed2 BED2 A 3-column bed file. Should be tab-delimited. Will\n consider all cis combinations of intervals between\n baselist and bed2. (default: None)\n --bed2_unordered Whether to only use baselist as left ends, and bed2 as\n right ends of regions. (default: True)\n --pad PAD Padding of the windows around the centres of specified\n features (i.e. final size of the matrix is 2\u00d7pad+res),\n in kb. Ignored with --rescale, use --rescale_pad\n instead. (default: 100)\n --minshift MINSHIFT Shortest distance for randomly shifting coordinates\n when creating controls (default: 100000)\n --maxshift MAXSHIFT Longest distance for randomly shifting coordinates\n when creating controls (default: 1000000)\n --nshifts NSHIFTS Number of control regions per averaged window\n (default: 10)\n --expected EXPECTED File with expected (output of cooltools compute-\n expected). If None, don't use expected and use\n randomly shifted controls (default: None)\n --mindist MINDIST Minimal distance of intersections to use. If not\n specified, uses 2*pad+2 (in bins) as mindist (default:\n None)\n --maxdist MAXDIST Maximal distance of intersections to use (default:\n None)\n --minsize MINSIZE Minimal length of features to use for local analysis\n (default: None)\n --maxsize MAXSIZE Maximal length of features to use for local analysis\n (default: None)\n --excl_chrs EXCL_CHRS\n Exclude these chromosomes from analysis (default:\n chrY,chrM)\n --incl_chrs INCL_CHRS\n Include these chromosomes; default is all. excl_chrs\n overrides this. (default: all)\n --subset SUBSET Take a random sample of the bed file - useful for\n files with too many featuers to run as is, i.e. some\n repetitive elements. Set to 0 or lower to keep all\n data. (default: 0)\n --anchor ANCHOR A UCSC-style coordinate to use as an anchor to create\n intersections with coordinates in the baselist\n (default: None)\n --by_window Create a pile-up for each coordinate in the baselist.\n Will save a master-table with coordinates, their\n enrichments and cornerCV, which is reflective of\n noisiness (default: False)\n --save_all If by-window, save all individual pile-ups in a\n separate json file (default: False)\n --local Create local pileups, i.e. along the diagonal\n (default: False)\n --unbalanced Do not use balanced data. Useful for single-cell Hi-C\n data together with --coverage_norm, not recommended\n otherwise. (default: False)\n --coverage_norm If --unbalanced, also add coverage normalization based\n on chromosome marginals (default: False)\n --rescale Do not use centres of features and pad, and rather use\n the actual feature sizes and rescale pileups to the\n same shape and size (default: False)\n --rescale_pad RESCALE_PAD\n If --rescale, padding in fraction of feature length\n (default: 1.0)\n --rescale_size RESCALE_SIZE\n If --rescale, this is used to determine the final size\n of the pileup, i.e. it will be size\u00d7size. Due to\n technical limitation in the current implementation,\n has to be an odd number (default: 99)\n --weight_name WEIGHT_NAME\n Name of the norm to use for getting balanced data\n (default: weight)\n --n_proc N_PROC Number of processes to use. Each process works on a\n separate chromosome, so might require quite a bit more\n memory, although the data are always stored as sparse\n matrices (default: 1)\n --outdir OUTDIR Directory to save the data in (default: .)\n --outname OUTNAME Name of the output file. If not set, is generated\n automatically to include important information.\n (default: auto)\n -l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log {DEBUG,INFO,WARNING,ERROR,CRITICAL}\n Set the logging level. (default: INFO)\n\n```\n\nCurrently, `coolpup.py` doesn't support inter-chromosomal pileups, but this is an addition that is planned for the future.\n\n### Plotting results\nFor flexible plotting, I suggest to use `matplotlib` or another library. However simple plotting capabilities are included in this package. Just run `plotpup.py` with desired options and list all the output files of `coolpup.py` you'd like to plot.\n```\nUsage: plotpup.py [-h] [--cmap CMAP] [--symmetric SYMMETRIC] [--vmin VMIN]\n [--vmax VMAX] [--scale {linear,log}]\n [--cbar_mode {single,edge,each}] [--n_cols N_COLS]\n [--col_names COL_NAMES] [--row_names ROW_NAMES]\n [--norm_corners NORM_CORNERS] [--enrichment ENRICHMENT]\n [--output OUTPUT]\n [pileup_files [pileup_files ...]]\n\npositional arguments:\n pileup_files All files to plot (default: None)\n\noptional arguments:\n -h, --help show this help message and exit\n --cmap CMAP Colourmap to use (see\n https://matplotlib.org/users/colormaps.html) (default:\n coolwarm)\n --symmetric SYMMETRIC\n Whether to make colormap symmetric around 1, if log\n scale (default: True)\n --vmin VMIN Value for the lowest colour (default: None)\n --vmax VMAX Value for the highest colour (default: None)\n --scale {linear,log} Whether to use linear or log scaling for mapping\n colours (default: log)\n --cbar_mode {single,edge,each}\n Whether to show a single colorbar, one per row or one\n for each subplot (default: single)\n --n_cols N_COLS How many columns to use for plotting the data. If 0,\n automatically make the figure as square as possible\n (default: 0)\n --col_names COL_NAMES\n A comma separated list of column names (default: None)\n --row_names ROW_NAMES\n A comma separated list of row names (default: None)\n --norm_corners NORM_CORNERS\n Whether to normalize pileups by their top left and\n bottom right corners. 0 for no normalization, positive\n number to define the size of the corner squares whose\n values are averaged (default: 0)\n --enrichment ENRICHMENT\n Whether to show the level of enrichment in the central\n pixels. 0 to not show, odd positive number to define\n the size of the central square whose values are\n averaged (default: 1)\n --output OUTPUT, -o OUTPUT\n Where to save the plot (default: pup.pdf)\n ```\n\n## Citing coolpup.py\n\nUntil it has been published in a peer-reviewed journal, please cite our preprint\n\n**Coolpup.py - a versatile tool to perform pile-up analysis of Hi-C data**\n\nIlya M. Flyamer, Robert S. Illingworth, Wendy A. Bickmore\n\nhttps://www.biorxiv.org/content/10.1101/586537v3\n\n## This tool has been used in the following publications\n\n**DNA methylation directs polycomb-dependent 3D genome re- organisation in naive pluripotency**\n\nKaty A McLaughlin, Ilya M Flyamer, John P Thomson, Heidi K Mjoseng, Ruchi Shukla, Iain Williamson, Graeme R Grimes, Robert S Illingworth, Ian R Adams, Sari Pennings, Richard R Meehan, Wendy A Bickmore\n\nhttps://www.biorxiv.org/content/10.1101/527309v1\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": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "coolpuppy", "package_url": "https://pypi.org/project/coolpuppy/", "platform": "", "project_url": "https://pypi.org/project/coolpuppy/", "project_urls": { "Issues": "https://github.com/Phlya/coolpuppy/issues", "Source": "https://github.com/Phlya/coolpuppy" }, "release_url": "https://pypi.org/project/coolpuppy/0.9.1/", "requires_dist": [ "Cython", "numpy", "cooler", "pandas", "natsort", "scipy", "cooltools" ], "requires_python": "", "summary": "A versatile tool to perform pile-up analysis on Hi-C data in .cool format.", "version": "0.9.1" }, "last_serial": 5949776, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "9f9287eaf52080abc2a34881c51af905", "sha256": "9305a85891e1bdaf84bd4fe2bea9a40af9e9ffdc332de3c928621e0df769dbff" }, "downloads": -1, "filename": "coolpuppy-0.1.tar.gz", "has_sig": false, "md5_digest": "9f9287eaf52080abc2a34881c51af905", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6425, "upload_time": "2018-11-14T12:13:22", "url": "https://files.pythonhosted.org/packages/7e/01/3e0c4e50c2080c86a5b24360f890d623d464f7688d06e19c3382b6ac961d/coolpuppy-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "28b86c2e9a6ff0178329711f4f1d804e", "sha256": "e5d1f3c6e747fda52b6ae8514e72cd67157687b757c8ee17a0de72128c661e62" }, "downloads": -1, "filename": "coolpuppy-0.2.tar.gz", "has_sig": false, "md5_digest": "28b86c2e9a6ff0178329711f4f1d804e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6441, "upload_time": "2018-11-15T13:26:53", "url": "https://files.pythonhosted.org/packages/e3/71/c2b0f749464f37df29a48de046fd3fa96bd4a5398aebd0dbefdc16c0f25f/coolpuppy-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "78b41ea8d3e78518fecd124f354946b1", "sha256": "eca2bca77c8ad2cc169883ac17a28467fd0cc40927bafc37e423a965fdfb90d1" }, "downloads": -1, "filename": "coolpuppy-0.3.tar.gz", "has_sig": false, "md5_digest": "78b41ea8d3e78518fecd124f354946b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6496, "upload_time": "2018-11-16T11:23:07", "url": "https://files.pythonhosted.org/packages/ac/fb/829711256f534dcc8c5cfc6ec944576805012722d6ee31436746056b70c2/coolpuppy-0.3.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "d2e513da1c531b925a2c8f16b3703c3a", "sha256": "e2ff3dea55a735ff68a6e6405871f2d9d587319a98fec1c42e7819e4c44ea42c" }, "downloads": -1, "filename": "coolpuppy-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d2e513da1c531b925a2c8f16b3703c3a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7461, "upload_time": "2019-01-14T13:14:48", "url": "https://files.pythonhosted.org/packages/3f/cb/ca1bf3a4f869883d4c1a5d1a38e9c3fb80b2ae9e0f8c0bc9e4a05eb41651/coolpuppy-0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6288dbb8e563c785568069e56623f53", "sha256": "e0548bdc7fa051ee0dc99a54f12d98c957d2c83d1a3933187f00aef60dcf89f2" }, "downloads": -1, "filename": "coolpuppy-0.5.tar.gz", "has_sig": false, "md5_digest": "c6288dbb8e563c785568069e56623f53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7336, "upload_time": "2019-01-14T13:15:22", "url": "https://files.pythonhosted.org/packages/8f/0c/2bdbc9dfc244b804fddd5b03fa1b996927d534f28f30b2653520886c158d/coolpuppy-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "59ac29cb6268330f85403bb2b61baece", "sha256": "324f5182db241a8b5801786769c35bb562b06b5b935c1a0594bf4bb820ea32e0" }, "downloads": -1, "filename": "coolpuppy-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "59ac29cb6268330f85403bb2b61baece", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7492, "upload_time": "2019-01-14T13:35:09", "url": "https://files.pythonhosted.org/packages/49/81/9ae12833ddac9ef030c7bf29e7957298c1b1a3829c82517c4519adbfc0c9/coolpuppy-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f91dbbccb2a61434ebf51be8b2e6ee7", "sha256": "b9d118fa4dc7e52c5a05c77645eb8e9489118a4e8e5fbc201aca72f1186da207" }, "downloads": -1, "filename": "coolpuppy-0.5.1.tar.gz", "has_sig": false, "md5_digest": "7f91dbbccb2a61434ebf51be8b2e6ee7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7335, "upload_time": "2019-01-14T13:35:10", "url": "https://files.pythonhosted.org/packages/a6/81/0fddbc1bd4e6f1ddb99b2e3aa570bada435f7c122ac6cdc18cad345fa128/coolpuppy-0.5.1.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "6e03dbd3caa03f493090e7176cabe357", "sha256": "be63736f621cc05e8b2a9b8a77186b3d6e994ea534f49aebaf0fbb2d6c243718" }, "downloads": -1, "filename": "coolpuppy-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6e03dbd3caa03f493090e7176cabe357", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7481, "upload_time": "2019-01-14T13:45:06", "url": "https://files.pythonhosted.org/packages/62/c4/e33aed69556dfb77b6149b1a241e937ef222c97bf894e1c0b635e112cf88/coolpuppy-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24424b6aea84c2bb6f924c9972595e46", "sha256": "dce738369c983f0fde00a195040c3a4861d9730024787ac1c24a0742ff7f419e" }, "downloads": -1, "filename": "coolpuppy-0.5.3.tar.gz", "has_sig": false, "md5_digest": "24424b6aea84c2bb6f924c9972595e46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7332, "upload_time": "2019-01-14T13:45:07", "url": "https://files.pythonhosted.org/packages/1d/30/6b04cc440e9b2bc66454f5dccc9f416ef73a41fdf79f7ae797b7e39c2648/coolpuppy-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "8c46540ea0e03fdf01acba24d3590ee0", "sha256": "c272e59a03455952f1a4472610ee9698b7f12305b7a062e6e102fe3737d1aa84" }, "downloads": -1, "filename": "coolpuppy-0.5.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8c46540ea0e03fdf01acba24d3590ee0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7456, "upload_time": "2019-01-14T17:48:37", "url": "https://files.pythonhosted.org/packages/b8/41/b1d300b3e6982c6061ef57871ed766e54e84583af4efea0dcb9876b323e8/coolpuppy-0.5.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6cc2e0d0200dbb03ed75e7c077105dd4", "sha256": "256ed8d4b330538f1c2083c1393a133092c753d84a452a1e94b9b3d2145a36cc" }, "downloads": -1, "filename": "coolpuppy-0.5.4.tar.gz", "has_sig": false, "md5_digest": "6cc2e0d0200dbb03ed75e7c077105dd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7316, "upload_time": "2019-01-14T17:48:39", "url": "https://files.pythonhosted.org/packages/27/6d/0f6197387b44584d41aec75190e4dd1351c491839c048e40e73e1cab8ad6/coolpuppy-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "278d27350bbc199bfca4cb7a2293ad67", "sha256": "d0761992959a37a3749ed51ad9daf88ff500db5a4d511ec485ff5fa35ea8cd3e" }, "downloads": -1, "filename": "coolpuppy-0.5.5-py3-none-any.whl", "has_sig": false, "md5_digest": "278d27350bbc199bfca4cb7a2293ad67", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7518, "upload_time": "2019-01-15T12:18:04", "url": "https://files.pythonhosted.org/packages/65/af/14b866ae90d29b8def6896b3d4e943affca75b8b6ce73d6eea34175fc0e6/coolpuppy-0.5.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84d3fa79550fbbec643e5110a64e2549", "sha256": "fa7cecbc8b7e1983fc11c3bca073d0617d56b6a22835713abe8834af300c2630" }, "downloads": -1, "filename": "coolpuppy-0.5.5.tar.gz", "has_sig": false, "md5_digest": "84d3fa79550fbbec643e5110a64e2549", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7366, "upload_time": "2019-01-15T12:18:06", "url": "https://files.pythonhosted.org/packages/f9/83/8b79dc8256d307c7bbb1974309f1ea900b2082eb9f08d8141f43ffc1f90e/coolpuppy-0.5.5.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "200833f72df0d0961a581939ef06af40", "sha256": "6dc2b25f07fb2968a7293fe3b6d9bdfeaa9a41aa56d8ef033519640ff1511416" }, "downloads": -1, "filename": "coolpuppy-0.7.tar.gz", "has_sig": false, "md5_digest": "200833f72df0d0961a581939ef06af40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10961, "upload_time": "2019-02-20T17:32:15", "url": "https://files.pythonhosted.org/packages/21/a5/ff13dbf4bbd4f21435c6f9d1ba2da6cbf2aa10c151212503c2eca1378c80/coolpuppy-0.7.tar.gz" } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "88d7714d4dba58819507d0159f4a7909", "sha256": "1d1af194849d10a48384af64c766c69d821caa404586da35d54e72e248fe9cc0" }, "downloads": -1, "filename": "coolpuppy-0.7.5.tar.gz", "has_sig": false, "md5_digest": "88d7714d4dba58819507d0159f4a7909", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11667, "upload_time": "2019-03-20T16:44:04", "url": "https://files.pythonhosted.org/packages/d9/89/310c023e05bbd903b8902d1dc4b4b9ffe311a3f343fded669371565cdb60/coolpuppy-0.7.5.tar.gz" } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "1bafba232082f1fd4ceb79db144e68e8", "sha256": "72558d396353b7693249af5fa05f266e988a41e9d64a7edd0a4a7e3958f655fe" }, "downloads": -1, "filename": "coolpuppy-0.7.6.tar.gz", "has_sig": false, "md5_digest": "1bafba232082f1fd4ceb79db144e68e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11786, "upload_time": "2019-03-20T16:56:11", "url": "https://files.pythonhosted.org/packages/71/59/faa5c0cc7322d0b4d5fedb0eabc657cd965b98a0439ebcd15c4acc682a50/coolpuppy-0.7.6.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "053d03ad3e9dc815677d53b147de87a3", "sha256": "85508c571996bb00ea362c175afe165b23c2f572eb6d276fc9e974b2c6cf968e" }, "downloads": -1, "filename": "coolpuppy-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "053d03ad3e9dc815677d53b147de87a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16846, "upload_time": "2019-03-23T16:01:11", "url": "https://files.pythonhosted.org/packages/55/c9/6a776a2bb8b44d8ade4f8290cd1fddeb83f3f353df6977f8a415a86bdd80/coolpuppy-0.8.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8cfec6c3ac22cd011ea913f570945155", "sha256": "2d47f4372dfe259e999a6d52bcdfeb426f3d4d0feb0f3c8cd72de566935e94fb" }, "downloads": -1, "filename": "coolpuppy-0.8.1.tar.gz", "has_sig": false, "md5_digest": "8cfec6c3ac22cd011ea913f570945155", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12140, "upload_time": "2019-03-23T16:01:13", "url": "https://files.pythonhosted.org/packages/ad/84/59f53d9c2bd06df91f7a7efd6b5c4bc476dae1ee8dd97e184c0423e2f82e/coolpuppy-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "4c41c3f8bedc475bbd13a37b9f052f64", "sha256": "58f088dde434a6065a75d1fc2301642ace568d1e880bfda941143821beac101a" }, "downloads": -1, "filename": "coolpuppy-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4c41c3f8bedc475bbd13a37b9f052f64", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17227, "upload_time": "2019-03-24T18:03:15", "url": "https://files.pythonhosted.org/packages/fa/9f/8601e9e8886cfc5727bcd9066e3391e19861e226f48474354ec8b5a46d93/coolpuppy-0.8.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0198971a2c6d49fc5e9d5008b4ebcb6", "sha256": "29d65071dbd445c16dea2535fe8eaf260bcb0bcd7bfdc9a72e6c0009eb109571" }, "downloads": -1, "filename": "coolpuppy-0.8.2.tar.gz", "has_sig": false, "md5_digest": "a0198971a2c6d49fc5e9d5008b4ebcb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12213, "upload_time": "2019-03-24T18:03:16", "url": "https://files.pythonhosted.org/packages/91/7b/ec8e9ae3affe2ff5e39789b3b96c12dc993a10ef104838b474044b7de257/coolpuppy-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "ad607241967d49e6ff2de99d48c9da60", "sha256": "d1f731675b3b8146a6e4cf9e02f5b8f70c10ba4c46e8493b8a9ef6f3b5cc61eb" }, "downloads": -1, "filename": "coolpuppy-0.8.3.tar.gz", "has_sig": false, "md5_digest": "ad607241967d49e6ff2de99d48c9da60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12214, "upload_time": "2019-03-24T18:11:14", "url": "https://files.pythonhosted.org/packages/02/02/7bf2d1d646e1d3ff638e2a620ee854dc356e4abf45be246b36277b29a922/coolpuppy-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "db0266ffb65f538419dedabb091f60d8", "sha256": "03d9cc3178826ee6494b092d2855ecd47e54798cdbb0a603a2d6b9d0b82367a3" }, "downloads": -1, "filename": "coolpuppy-0.8.4.tar.gz", "has_sig": false, "md5_digest": "db0266ffb65f538419dedabb091f60d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15496, "upload_time": "2019-03-30T11:16:20", "url": "https://files.pythonhosted.org/packages/57/7b/a33899b776578435dce3fd5303315a32fdde74cc3ea954568bbc9b9e0d68/coolpuppy-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "fdd8609354d07f8d3029b457867e3a4a", "sha256": "3ac54cea016fb2079534ecbd7ff98515d8e228fadaa7d2936fa32d41ec2c2ac1" }, "downloads": -1, "filename": "coolpuppy-0.8.5-py3-none-any.whl", "has_sig": false, "md5_digest": "fdd8609354d07f8d3029b457867e3a4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17350, "upload_time": "2019-05-13T12:23:39", "url": "https://files.pythonhosted.org/packages/e3/8a/98cbb67dea02d4fc6297d1c68d647e4823f74367c90b48565ba6e4d00459/coolpuppy-0.8.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fb9779a4a339ae773d51922adf829fe", "sha256": "412a2e9299139fd3ce7446b0c0cc8220c87629b15dbd93713e16d6855ddeeaa8" }, "downloads": -1, "filename": "coolpuppy-0.8.5.tar.gz", "has_sig": false, "md5_digest": "2fb9779a4a339ae773d51922adf829fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16047, "upload_time": "2019-05-13T12:23:40", "url": "https://files.pythonhosted.org/packages/13/ce/e1a76b082eed53db1b865ea314c82b26e01c99c71730c7f8a527d31bf561/coolpuppy-0.8.5.tar.gz" } ], "0.8.7": [ { "comment_text": "", "digests": { "md5": "ebdf83a341207e7c916ad1566ca9b900", "sha256": "a27660bffa15400fac17c3f6fea860cf5c0f11dce6cbd1390a9a23a1b163cb17" }, "downloads": -1, "filename": "coolpuppy-0.8.7.tar.gz", "has_sig": false, "md5_digest": "ebdf83a341207e7c916ad1566ca9b900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17290, "upload_time": "2019-06-03T15:46:29", "url": "https://files.pythonhosted.org/packages/61/85/8daae1cfa0029076d045482e361869c573b61912d478e349b94bd60c4ca2/coolpuppy-0.8.7.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "a9f4e2b199a2d6c5dd4f613e126b70ca", "sha256": "29f518db58238f2b961a45bd3859d07a69c514c3427ad9b5028640955367ee66" }, "downloads": -1, "filename": "coolpuppy-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a9f4e2b199a2d6c5dd4f613e126b70ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20497, "upload_time": "2019-10-09T13:23:19", "url": "https://files.pythonhosted.org/packages/46/17/76486fe8120c3153244f3e16b751c481571c0c0380a1ba6f503358c9515b/coolpuppy-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d0d5fa6341c280b1d5bc25be7004dd6", "sha256": "df10267ac72b39d24db75dfd09b8120ead38d0185ba2c778f3e6d5a0a0c67d03" }, "downloads": -1, "filename": "coolpuppy-0.9.1.tar.gz", "has_sig": false, "md5_digest": "3d0d5fa6341c280b1d5bc25be7004dd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19420, "upload_time": "2019-10-09T13:23:21", "url": "https://files.pythonhosted.org/packages/21/53/5f2b0010dd48e798e3c9c4fe5dd27625be8bee3143df47aaced5c115cd0b/coolpuppy-0.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a9f4e2b199a2d6c5dd4f613e126b70ca", "sha256": "29f518db58238f2b961a45bd3859d07a69c514c3427ad9b5028640955367ee66" }, "downloads": -1, "filename": "coolpuppy-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a9f4e2b199a2d6c5dd4f613e126b70ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20497, "upload_time": "2019-10-09T13:23:19", "url": "https://files.pythonhosted.org/packages/46/17/76486fe8120c3153244f3e16b751c481571c0c0380a1ba6f503358c9515b/coolpuppy-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d0d5fa6341c280b1d5bc25be7004dd6", "sha256": "df10267ac72b39d24db75dfd09b8120ead38d0185ba2c778f3e6d5a0a0c67d03" }, "downloads": -1, "filename": "coolpuppy-0.9.1.tar.gz", "has_sig": false, "md5_digest": "3d0d5fa6341c280b1d5bc25be7004dd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19420, "upload_time": "2019-10-09T13:23:21", "url": "https://files.pythonhosted.org/packages/21/53/5f2b0010dd48e798e3c9c4fe5dd27625be8bee3143df47aaced5c115cd0b/coolpuppy-0.9.1.tar.gz" } ] }