{ "info": { "author": "Brian Wilcox", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Financial and Insurance Industry", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Concurrent-Pandas\n=================\n\n\nConcurrent Pandas\n-------------\n\n**Concurrent Pandas** is a Python Library that allows you to use Pandas and / or Quandl to concurrently download bulk data using threads or processes. What does concurrency do for you? Download your data simultaneously instead of one key at a time, Concurrent Pandas automatically spawns an optimal number of processes or threads based on the number of processes available on your machine. \n\nNote: Concurrent Pandas is not associated with Quandl or Python Pandas, it just allows you to access them faster. \n\n---\n####Features\n\n- **Working in Python 2 and 3**\n- **Sequential Downloading of Keys**\n- **Concurrent downloading of keys using thread or process pools**\n- **All Concurrent Downloading will automatically pick an optimal number of threads or processes to use for your system**\n- **Recursive data structure unpacking for key insertion**\n - Pass one or many:\n - Lists\n - Sets \n - Deques\n - Any other data structures that inherit from abstract base class *Container* provided it is not also inheriting from Python *basestring* and it allows for iteration.\n- **Automatic re-attempts if the download fails or times out**\n - Retries increase the time to try again with each successive failure\n- **Variety of data sources supported**\n - Quandl\n - Federal Reserve Economic Data\n - Google Finance\n - Yahoo Finance\n - More coming soon!\n- **Data is returned in a hashmap for fast lookups** ( *O(1) average case* )\n - Hash Map Keys are the strings entered for lookup, buckets contain your Panda data frame\n\n\n---\n####Easy to use\n```\n# Define your keys\nyahoo_keys = [\"aapl\", \"xom\", \"msft\", \"goog\", \"brk-b\", \"TSLA\", \"IRBT\"]\n# Instantiate Concurrent Pandas\nfast_panda = concurrentpandas.ConcurrentPandas()\n# Set your data source\nfast_panda.set_source_yahoo_finance()\n# Insert your keys\nfast_panda.insert_keys(yahoo_keys)\n# Choose either asynchronous threads, processes, or a single sequential download\nfast_panda.consume_keys_asynchronous_threads()\n# The Concurrent Pandas object contains a dict of your results now\nmymap = fast_panda.return_map()\n# Easily pull the data out of the map for your research\nprint(mymap[\"aapl\"].head)\n```\n\n---\n#####Installation Instructions\n\nNote : only tested on Linux\n\nTo install execute:\n\n```\npip install ConcurrentPandas\n```\n\n\n---\n#####Updates\n\nNew in 0.1.2\nAbility to interact with stock options\n\nNow requires BeautifulSoup4, and Pandas 0.16 or newer.\n\n---\n#####Misc\n\nTested on Python 2.7.6 and Python 3.4.0 \n\nTo see what else I'm building or follow / contact me check out my [github][1], [twitter][3], and my [personal site][2]. \n\n[1]: https://github.com/briwilcox\n[2]: http://brianmwilcox.com/\n[3]: https://twitter.com/brian_m_wilcox\n\n\nAuthors\n==============\n- Brian Wilcox", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/briwilcox/Concurrent-Pandas", "keywords": "Panda,Pandas,DataFrame,Data Frame,Analysis,", "license": "Apache Software License", "maintainer": null, "maintainer_email": null, "name": "ConcurrentPandas", "package_url": "https://pypi.org/project/ConcurrentPandas/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ConcurrentPandas/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/briwilcox/Concurrent-Pandas" }, "release_url": "https://pypi.org/project/ConcurrentPandas/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Download data using pandas with multi-threading and multi-processing.", "version": "0.1.2" }, "last_serial": 1477684, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fbce7522243624158805fcbd5988592d", "sha256": "ae08d330441e62a0babf56a59c6f3224449be4756a4bf7fbed88a41b42e7c636" }, "downloads": -1, "filename": "ConcurrentPandas-0.1.0.tar.gz", "has_sig": false, "md5_digest": "fbce7522243624158805fcbd5988592d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9122, "upload_time": "2014-11-11T03:10:28", "url": "https://files.pythonhosted.org/packages/43/81/acd846a80d7be2ce6dfa909023e95cbf1c766f221d18b3b06c9388055710/ConcurrentPandas-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "18699b41509b849d57a8c9fa3a011bcf", "sha256": "bae9575645f012a963b5d1f369662ad93469dc69a9a93bd4330c0ce7601d9027" }, "downloads": -1, "filename": "ConcurrentPandas-0.1.1.tar.gz", "has_sig": false, "md5_digest": "18699b41509b849d57a8c9fa3a011bcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9817, "upload_time": "2014-11-15T23:02:56", "url": "https://files.pythonhosted.org/packages/3c/fe/be8fa5482d8e02a0df20776baa26f82b62f9b3e4c6a45f350d3c77995104/ConcurrentPandas-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a6c02d410f9476d5c431b61c4cb215df", "sha256": "1ed2d0239fd34fa7ac7e3567db67fc451895bba0ef88affec5e242f59461fb01" }, "downloads": -1, "filename": "ConcurrentPandas-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a6c02d410f9476d5c431b61c4cb215df", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17470, "upload_time": "2015-03-25T21:24:47", "url": "https://files.pythonhosted.org/packages/7c/ed/8a24cb768c649bc0b90dd99d9861a0205c525c19b4f8b4bfb04cfbbb68d9/ConcurrentPandas-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7bc24ff34d9c5c4574e0494335830e5", "sha256": "30f08d8e9295f6dc5b16031f3463d4ca199598ea23ed627767eee9e3f0779017" }, "downloads": -1, "filename": "ConcurrentPandas-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a7bc24ff34d9c5c4574e0494335830e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10311, "upload_time": "2015-03-25T21:24:42", "url": "https://files.pythonhosted.org/packages/41/8f/c336d944f7f95d629844c437a414e58c277ce04025d70441aa83495b6dc6/ConcurrentPandas-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a6c02d410f9476d5c431b61c4cb215df", "sha256": "1ed2d0239fd34fa7ac7e3567db67fc451895bba0ef88affec5e242f59461fb01" }, "downloads": -1, "filename": "ConcurrentPandas-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a6c02d410f9476d5c431b61c4cb215df", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17470, "upload_time": "2015-03-25T21:24:47", "url": "https://files.pythonhosted.org/packages/7c/ed/8a24cb768c649bc0b90dd99d9861a0205c525c19b4f8b4bfb04cfbbb68d9/ConcurrentPandas-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7bc24ff34d9c5c4574e0494335830e5", "sha256": "30f08d8e9295f6dc5b16031f3463d4ca199598ea23ed627767eee9e3f0779017" }, "downloads": -1, "filename": "ConcurrentPandas-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a7bc24ff34d9c5c4574e0494335830e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10311, "upload_time": "2015-03-25T21:24:42", "url": "https://files.pythonhosted.org/packages/41/8f/c336d944f7f95d629844c437a414e58c277ce04025d70441aa83495b6dc6/ConcurrentPandas-0.1.2.tar.gz" } ] }