{ "info": { "author": "Justin Salamon & Duncan MacConnell", "author_email": "justin.salamon@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Multimedia :: Sound/Audio :: Analysis", "Topic :: Multimedia :: Sound/Audio :: Sound Synthesis" ], "description": "# scaper\n\n\n\nA library for soundscape synthesis and augmentation\n\n[![PyPI](https://img.shields.io/pypi/v/scaper.svg)](https://pypi.python.org/pypi/scaper)\n[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![Build Status](https://travis-ci.org/justinsalamon/scaper.svg?branch=master)](https://travis-ci.org/justinsalamon/scaper)\n[![Coverage Status](https://coveralls.io/repos/github/justinsalamon/scaper/badge.svg?branch=master)](https://coveralls.io/github/justinsalamon/scaper?branch=master)\n[![Documentation Status](https://readthedocs.org/projects/scaper/badge/?version=latest)](http://scaper.readthedocs.io/en/latest/?badge=latest)\n[![PyPI](https://img.shields.io/badge/python-2.7%2C%203.4%2C%203.5%2C%203.6-blue.svg)]()\n\nPlease refer to the [documentation](http://scaper.readthedocs.io/) for details.\n\nFor the motivation behind scaper and its applications check out the scaper-paper:\n\n[Scaper: A library for soundscape synthesis and augmentation](http://www.justinsalamon.com/uploads/4/3/9/4/4394963/salamon_scaper_waspaa_2017.pdf)
\nJ. Salamon, D. MacConnell, M. Cartwright, P. Li, and J. P. Bello
\nIn IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA), New Paltz, NY, USA, Oct. 2017.\n\n## Installation\n\n### Non-python dependencies\nScaper has two non-python dependencies:\n- SoX: http://sox.sourceforge.net/\n- FFmpeg: https://ffmpeg.org/\n\n#### Linux/macOS\nIf you're using [Anaconda](https://www.anaconda.com/distribution/) (or [miniconda](https://docs.conda.io/en/latest/miniconda.html)) to manage your python environment (recommended), you can install these dependencies using `conda` on macOS/Linux:\n\n```\nconda install -c conda-forge sox ffmpeg\n```\n\n#### macOS\nOn macOS these can be installed using [homebrew](https://brew.sh/):\n\n```\nbrew install sox\nbrew install ffmpeg\n```\n\n#### Linux\nOn linux you can use your distribution's package manager, e.g. on Ubuntu (15.04 \"Vivid Vervet\" or newer):\n\n```\nsudo apt-get install sox\nsudo apt-get install ffmpeg\n```\nNOTE: on earlier versions of Ubuntu [ffmpeg may point to a Libav binary](http://stackoverflow.com/a/9477756/2007700) which is not the correct binary. If you are using Anaconda, you can install the correct version as described earlier by calling `conda install -c conda-forge ffmpeg`. Otherwise, you can [obtain a static binary from the ffmpeg website](https://ffmpeg.org/download.html).\n\n#### Windows\nOn windows you can use the provided installation binaries:\n- SoX: https://sourceforge.net/projects/sox/files/sox/\n- FFmpeg: https://ffmpeg.org/download.html#build-windows\n\n### Installing Scaper\n\nThe simplest way to install scaper is by using `pip`, which will also install the required python dependencies if needed. To install scaper using pip, simply run:\n\n```\npip install scaper\n```\n\nTo install the latest version of scaper from source, clone or pull the lastest version:\n\n```\ngit clone git@github.com:justinsalamon/scaper.git\n```\n\nThen enter the source folder and install using pip to handle python dependencies:\n\n```\ncd scaper\npip install -e .\n```\n## Tutorial\n\nTo help you get started with scaper, please see this [step-by-step tutorial](http://scaper.readthedocs.io/en/latest/tutorial.html).\n\n## Example\n\n```python\nimport scaper\nimport numpy as np\n\n# OUTPUT FOLDER\noutfolder = 'audio/soundscapes/'\n\n# SCAPER SETTINGS\nfg_folder = 'audio/soundbank/foreground/'\nbg_folder = 'audio/soundbank/background/'\n\nn_soundscapes = 1000\nref_db = -50\nduration = 10.0 \n\nmin_events = 1\nmax_events = 9\n\nevent_time_dist = 'truncnorm'\nevent_time_mean = 5.0\nevent_time_std = 2.0\nevent_time_min = 0.0\nevent_time_max = 10.0\n\nsource_time_dist = 'const'\nsource_time = 0.0\n\nevent_duration_dist = 'uniform'\nevent_duration_min = 0.5\nevent_duration_max = 4.0\n\nsnr_dist = 'uniform'\nsnr_min = 6\nsnr_max = 30\n\npitch_dist = 'uniform'\npitch_min = -3.0\npitch_max = 3.0\n\ntime_stretch_dist = 'uniform'\ntime_stretch_min = 0.8\ntime_stretch_max = 1.2\n\n# Generate 1000 soundscapes using a truncated normal distribution of start times\n\nfor n in range(n_soundscapes):\n\n print('Generating soundscape: {:d}/{:d}'.format(n+1, n_soundscapes))\n\n # create a scaper\n sc = scaper.Scaper(duration, fg_folder, bg_folder)\n sc.protected_labels = []\n sc.ref_db = ref_db\n\n # add background\n sc.add_background(label=('const', 'noise'), \n source_file=('choose', []), \n source_time=('const', 0))\n\n # add random number of foreground events\n n_events = np.random.randint(min_events, max_events+1)\n for _ in range(n_events):\n sc.add_event(label=('choose', []), \n source_file=('choose', []), \n source_time=(source_time_dist, source_time), \n event_time=(event_time_dist, event_time_mean, event_time_std, event_time_min, event_time_max), \n event_duration=(event_duration_dist, event_duration_min, event_duration_max), \n snr=(snr_dist, snr_min, snr_max),\n pitch_shift=(pitch_dist, pitch_min, pitch_max),\n time_stretch=(time_stretch_dist, time_stretch_min, time_stretch_max))\n\n # generate\n audiofile = os.path.join(outfolder, \"soundscape_unimodal{:d}.wav\".format(n))\n jamsfile = os.path.join(outfolder, \"soundscape_unimodal{:d}.jams\".format(n))\n txtfile = os.path.join(outfolder, \"soundscape_unimodal{:d}.txt\".format(n))\n\n sc.generate(audiofile, jamsfile,\n allow_repeated_label=True,\n allow_repeated_source=False,\n reverb=0.1,\n disable_sox_warnings=True,\n no_audio=False,\n txt_path=txtfile)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "http://github.com/justinsalamon/scaper/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/justinsalamon/scaper", "keywords": "audio sound soundscape environmental dsp mixing", "license": "BSD-3-Clause", "maintainer": "", "maintainer_email": "", "name": "scaper", "package_url": "https://pypi.org/project/scaper/", "platform": "", "project_url": "https://pypi.org/project/scaper/", "project_urls": { "Download": "http://github.com/justinsalamon/scaper/releases", "Homepage": "https://github.com/justinsalamon/scaper" }, "release_url": "https://pypi.org/project/scaper/1.0.3/", "requires_dist": [ "sox (>=1.3.3)", "jams (>=0.3.2)", "sphinx (==1.2.3); extra == 'docs'", "sphinxcontrib-napoleon; extra == 'docs'", "sphinx-rtd-theme; extra == 'docs'", "numpydoc; extra == 'docs'", "backports.tempfile; extra == 'tests'", "pysoundfile; extra == 'tests'" ], "requires_python": "", "summary": "A library for soundscape synthesis and augmentation", "version": "1.0.3" }, "last_serial": 5105903, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9057f36d8521f631bede4c624afb2fb1", "sha256": "7c9bf80c8df443cb354fe4ed54acb08b5949cd4f9b1cf2bcc8cb8637d3d8dae6" }, "downloads": -1, "filename": "scaper-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9057f36d8521f631bede4c624afb2fb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30364, "upload_time": "2017-10-06T15:22:43", "url": "https://files.pythonhosted.org/packages/07/33/44dfb6c102a8f044a66f460baccd881d307cebc2dcffc2ab5cd968e9d0e4/scaper-0.1.0.tar.gz" } ], "0.1.0rc1": [ { "comment_text": "", "digests": { "md5": "1ce4df4f7dee21a551a4c89641352d03", "sha256": "f4bd5f8dc735a1070c985f0db0d4695935e7505172965044e61f3351ac9214a1" }, "downloads": -1, "filename": "scaper-0.1.0rc1.tar.gz", "has_sig": false, "md5_digest": "1ce4df4f7dee21a551a4c89641352d03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31423, "upload_time": "2017-10-02T20:05:11", "url": "https://files.pythonhosted.org/packages/46/88/02a5e9175504bc3120607ea469cc7047cbffd2305a1ea0f0922c6a29ad4c/scaper-0.1.0rc1.tar.gz" } ], "0.1.0rc2": [ { "comment_text": "", "digests": { "md5": "eedadd60e06a92248b8eec1cad24fa34", "sha256": "d5ea06c2507f7b373cf9092bbd88526dc1aacf74789fd56fa0532dbd8e0b5cde" }, "downloads": -1, "filename": "scaper-0.1.0rc2.tar.gz", "has_sig": false, "md5_digest": "eedadd60e06a92248b8eec1cad24fa34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29934, "upload_time": "2017-10-03T00:44:06", "url": "https://files.pythonhosted.org/packages/e0/4f/01d5d4b934a0afa54989aa8f3707d80b614c06060cd515f2459453b8416f/scaper-0.1.0rc2.tar.gz" } ], "0.1.0rc3": [ { "comment_text": "", "digests": { "md5": "d131c1d0ff67af4b85845f64694f7e67", "sha256": "cc3015a55bf9005caf38b0fc2bef81d7674c5049986c131f0edaa485c97937e0" }, "downloads": -1, "filename": "scaper-0.1.0rc3.tar.gz", "has_sig": false, "md5_digest": "d131c1d0ff67af4b85845f64694f7e67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30020, "upload_time": "2017-10-03T01:01:27", "url": "https://files.pythonhosted.org/packages/99/19/f7698fbea2baffa750357f96ef2980189de336e4db6486fefaa439992cf2/scaper-0.1.0rc3.tar.gz" } ], "0.1.0rc4": [ { "comment_text": "", "digests": { "md5": "bbe5f28ad8190c0db427ff97d75e02ba", "sha256": "45a985c3b63351f3268a72096f40b87beaaaf025d38203ed61e2496034c99ed5" }, "downloads": -1, "filename": "scaper-0.1.0rc4.tar.gz", "has_sig": false, "md5_digest": "bbe5f28ad8190c0db427ff97d75e02ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30022, "upload_time": "2017-10-03T01:30:38", "url": "https://files.pythonhosted.org/packages/72/dc/3dc4d70429ef5bb362caa2ed2c2085bda98a8ffb2cc922a4292259158cae/scaper-0.1.0rc4.tar.gz" } ], "0.1.0rc5": [ { "comment_text": "", "digests": { "md5": "a391906415d10ac906c8b586d15dc182", "sha256": "cc3b1c01bf7b049226dbf4a82e0482aa3616700e06c01b6cb5cc8aa2130ab584" }, "downloads": -1, "filename": "scaper-0.1.0rc5.tar.gz", "has_sig": false, "md5_digest": "a391906415d10ac906c8b586d15dc182", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30226, "upload_time": "2017-10-03T01:41:26", "url": "https://files.pythonhosted.org/packages/19/04/4e6528df7bf08aa4e2a994454622b6a8804cda81cbf9e7c108e5a79e7ea5/scaper-0.1.0rc5.tar.gz" } ], "0.1.0rc6": [ { "comment_text": "", "digests": { "md5": "e6e4a82aa54d065e381d3113d53f00b9", "sha256": "c3f19767b5439a77014e300084d24a82421ce8bbaf532d5083c839de75fa81e7" }, "downloads": -1, "filename": "scaper-0.1.0rc6.tar.gz", "has_sig": false, "md5_digest": "e6e4a82aa54d065e381d3113d53f00b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30371, "upload_time": "2017-10-05T19:48:31", "url": "https://files.pythonhosted.org/packages/f8/e8/656ef4775e5d91d180bf623018c5d95b0815d2c1954acb58fe1d209bf222/scaper-0.1.0rc6.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6ce7ccbd32b3d9cb1f8eb2858111318a", "sha256": "416ddf21c3b0698cb88eef413cf52b545bb93eeabf8864d099f2217468064c4e" }, "downloads": -1, "filename": "scaper-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6ce7ccbd32b3d9cb1f8eb2858111318a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20844, "upload_time": "2018-04-17T21:35:56", "url": "https://files.pythonhosted.org/packages/d5/ac/fadb3708cfb331a3ff400af03c05c5915e84f887c69c4d5abb163b138087/scaper-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "bae357a0a9f713c2b77e6464fcb484eb", "sha256": "9ab8d478adfd7afe6571f8c35ce45e7e024e71f69ab76868ed0369843eadd8d1" }, "downloads": -1, "filename": "scaper-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bae357a0a9f713c2b77e6464fcb484eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21482, "upload_time": "2018-04-25T22:41:30", "url": "https://files.pythonhosted.org/packages/1a/24/5db8f8b3acf6108f290abfaa0568084a1f6a389ea7556a5c89c2f22b23c3/scaper-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "92f212e5d3c652960e04a26386efbf0e", "sha256": "acb0b116902584b9c8511c0ef3120a8e02660c1c28ff0e353e0c6c389c6fde31" }, "downloads": -1, "filename": "scaper-0.2.0.tar.gz", "has_sig": false, "md5_digest": "92f212e5d3c652960e04a26386efbf0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22099, "upload_time": "2018-07-22T19:38:04", "url": "https://files.pythonhosted.org/packages/7b/61/c5d7e17dd2fdf85c326fd50863943ec105a8cef4b2e6f1ecf4903324bfed/scaper-0.2.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "651fd92eff57849a1dba8514cdac9a69", "sha256": "eb390a474a427b4ccc7275b4cabdad680b4bdfa86c97840fbd4cdd3e1474aea5" }, "downloads": -1, "filename": "scaper-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "651fd92eff57849a1dba8514cdac9a69", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23469, "upload_time": "2018-08-08T18:48:50", "url": "https://files.pythonhosted.org/packages/4e/52/8b2d623cdd7c72b1fc783eef6ada18e2f043cc86571a86dec5da81d7747e/scaper-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "729c375915d23e1a4b04849c2b1c6b25", "sha256": "9296ad2c313e7c421a17f1e335f40bdf9e4e5c3f7fabd4406f57bf4d18c1729e" }, "downloads": -1, "filename": "scaper-1.0.0.tar.gz", "has_sig": false, "md5_digest": "729c375915d23e1a4b04849c2b1c6b25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21663, "upload_time": "2018-08-08T18:48:51", "url": "https://files.pythonhosted.org/packages/cc/79/f71ade981b450a33f7f3d438f8ae422e00dcbcc297fdc81e812fbe99b9e9/scaper-1.0.0.tar.gz" } ], "1.0.0rc0": [ { "comment_text": "", "digests": { "md5": "4e2dbfcfc6296309a4404f3f1c911249", "sha256": "53e39ef1310c69e6273e6bc55487a4d241067c4cbae3a787a569cc533d693a1d" }, "downloads": -1, "filename": "scaper-1.0.0rc0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e2dbfcfc6296309a4404f3f1c911249", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23505, "upload_time": "2018-07-29T22:31:32", "url": "https://files.pythonhosted.org/packages/93/2e/65840707afe148a755e8a2eaf305bf8b138b4676ff80a0b4530e38186b54/scaper-1.0.0rc0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd26c1fabf097b34dd9757f3b4739bd9", "sha256": "12e5dace5523e2ceef8d9a1a0f9a530719e627eff8a997c5c7fc89aa09e62c8e" }, "downloads": -1, "filename": "scaper-1.0.0rc0.tar.gz", "has_sig": false, "md5_digest": "fd26c1fabf097b34dd9757f3b4739bd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21900, "upload_time": "2018-07-29T22:31:33", "url": "https://files.pythonhosted.org/packages/4e/a5/9680fe6da01a27dab77f06d38384672e200acb2dc502daf5238f5492baa8/scaper-1.0.0rc0.tar.gz" } ], "1.0.0rc1": [ { "comment_text": "", "digests": { "md5": "f711ee5e4e167ace5f19c679d64097ad", "sha256": "7d684ca638b505c4531e9a7ebd31b67a4ace2741a5767681bac0a0bb604ff669" }, "downloads": -1, "filename": "scaper-1.0.0rc1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f711ee5e4e167ace5f19c679d64097ad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23503, "upload_time": "2018-07-29T23:21:31", "url": "https://files.pythonhosted.org/packages/49/02/d93c6919b7909285750afb33dc2cfe3aaa2ec7ffbe0534f8184b60a96523/scaper-1.0.0rc1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a824722ad5b488e0d6d3bd492fc6a3fe", "sha256": "a20a6de78e384f02009e79a5a95edc725c830f06b9f1d6079df1f9532af92e88" }, "downloads": -1, "filename": "scaper-1.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "a824722ad5b488e0d6d3bd492fc6a3fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21660, "upload_time": "2018-07-29T23:21:32", "url": "https://files.pythonhosted.org/packages/87/3c/67c05db4a22b5cd3a79a25a0cfa741b0bfd578b7ae29a3b039a9026baf3f/scaper-1.0.0rc1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "f8c872079d67b08e39781978c35a4a12", "sha256": "418c9aef6d7686592a15f9428558c0fbda706592b222ea4efdd22678817f8621" }, "downloads": -1, "filename": "scaper-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8c872079d67b08e39781978c35a4a12", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23144, "upload_time": "2019-04-01T20:41:21", "url": "https://files.pythonhosted.org/packages/cf/f8/daab6730a8c599b53d14cb0a1d03df4c9f3c98c49fe6fc36b779674063c3/scaper-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "486e62dbab7f944a249f3710399f3514", "sha256": "135b6fcaa4d2e87a6dd5369b44685b7c13f4d82ad22ccd76d50020ddeca3ef63" }, "downloads": -1, "filename": "scaper-1.0.2.tar.gz", "has_sig": false, "md5_digest": "486e62dbab7f944a249f3710399f3514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21693, "upload_time": "2019-04-01T20:41:23", "url": "https://files.pythonhosted.org/packages/72/d4/82f67c32430a0cdeb8e4247513dac97a78376d13b25053986bf01262c026/scaper-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "3992f622e1aa269c93a4d5edb8fc0d3e", "sha256": "c9a0e7cc5bea20fc8f1e79157a1dbc9f4a36470f9770225bf14946dcd1b8234a" }, "downloads": -1, "filename": "scaper-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3992f622e1aa269c93a4d5edb8fc0d3e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23276, "upload_time": "2019-04-05T22:19:06", "url": "https://files.pythonhosted.org/packages/7e/42/0d6d31020a5ee7b52d4e79c1a9f62146a14dea49165ec2d1a06fc7126731/scaper-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aed5763207d1af36b32138e23b1759f1", "sha256": "ab9fc92ff139978905a797998fc71b33da5803453d9e61b3b0dde61dab433bd6" }, "downloads": -1, "filename": "scaper-1.0.3.tar.gz", "has_sig": false, "md5_digest": "aed5763207d1af36b32138e23b1759f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21845, "upload_time": "2019-04-05T22:19:07", "url": "https://files.pythonhosted.org/packages/d5/e3/c062e6ae842f7a1df775f9b5b5212ffaf17cf1d42ed74f074240b394419d/scaper-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3992f622e1aa269c93a4d5edb8fc0d3e", "sha256": "c9a0e7cc5bea20fc8f1e79157a1dbc9f4a36470f9770225bf14946dcd1b8234a" }, "downloads": -1, "filename": "scaper-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3992f622e1aa269c93a4d5edb8fc0d3e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23276, "upload_time": "2019-04-05T22:19:06", "url": "https://files.pythonhosted.org/packages/7e/42/0d6d31020a5ee7b52d4e79c1a9f62146a14dea49165ec2d1a06fc7126731/scaper-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aed5763207d1af36b32138e23b1759f1", "sha256": "ab9fc92ff139978905a797998fc71b33da5803453d9e61b3b0dde61dab433bd6" }, "downloads": -1, "filename": "scaper-1.0.3.tar.gz", "has_sig": false, "md5_digest": "aed5763207d1af36b32138e23b1759f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21845, "upload_time": "2019-04-05T22:19:07", "url": "https://files.pythonhosted.org/packages/d5/e3/c062e6ae842f7a1df775f9b5b5212ffaf17cf1d42ed74f074240b394419d/scaper-1.0.3.tar.gz" } ] }