{ "info": { "author": "Brett Elliot", "author_email": "brett@theelliots.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "=============\nWhat is ecal?\n=============\n\n``ecal`` (pronounced ee-cal) is a package for getting a US equity earnings announcement calendar.\n\nFor more documentation, please see http://ecal.readthedocs.io.\n\nInstallation\n------------\n\n``ecal`` can be easily installed with pip::\n\n $ pip install ecal\n\nUsage\n-----\n``ecal`` is really simple to use. Below you'll find the basics.\n\nGetting the earnings announcements for a single date\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo get the earnings announcements for a single date simply import ``ecal`` and call ``get()``:\n\n.. code-block:: python\n\n import ecal\n\n cal_df = ecal.get('2017-03-30')\n\nThe results will be an earnings calendar in a pandas DataFrame:\n\n.. code-block:: none\n\n ticker when\n date\n 2017-03-30 AEHR amc\n 2017-03-30 ANGO bmo\n 2017-03-30 BSET --\n 2017-03-30 FC amc\n 2017-03-30 LNN bmo\n 2017-03-30 SAIC bmo\n 2017-03-30 TITN bmo\n\n\nThe returned DataFrame has the following columns:\n\n *ticker*\n is the ticker symbol on NYSE or NASDAQ.\n\n *when*\n can be ``bmo`` which means *before market open*, ``amc`` which means *after market close* or\n ``--`` which means *no time reported*.\n\nIf there were no announcements for this day, an empty DataFrame will be returned.\n\nGetting the earnings announcements for a date range\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIt is equally easy to get the earnings announcements for a date range:\n\n.. code-block:: python\n\n import ecal\n\n cal_df = ecal.get('2018-01-01', '2018-01-05')\n\nOnce again the results will be an earnings calendar in a pandas DataFrame:\n\n.. code-block:: none\n\n ticker when\n date\n 2018-01-04 CMC bmo\n 2018-01-04 LNDC amc\n 2018-01-04 NEOG bmo\n 2018-01-04 RAD amc\n 2018-01-04 RECN amc\n 2018-01-04 UNF bmo\n 2018-01-05 AEHR amc\n 2018-01-05 ANGO bmo\n 2018-01-05 FC amc\n 2018-01-05 LW bmo\n 2018-01-05 PKE bmo\n 2018-01-05 PSMT amc\n 2018-01-05 RPM bmo\n 2018-01-05 SONC amc\n 2018-01-05 WBA bmo\n\nDays with no earnings announcements will have no rows in the DataFrame. In the example above, there were no announcements on Jan first, second and third.\n\nIt should be noted that ``ecal`` fetches earnings announcements from ``api.earningscalendar.net`` by default. This source limits us to 1 call per second. However you don't have to worry about this because the ``ecal.ECNFetcher`` throttles calls to the API to prevent rate limiting. That said, please note that this fetcher gets announcements one day at a time which means if you want 30 days, it's going to take 30 seconds to get that data. Yikes. Fear not... that's why ``ecal`` comes with caching.\n\nCaching\n~~~~~~~\n\n``ecal`` supports caching so that repeated calls to ``ecal.get()`` don't actually make calls to the server. Runtime caching is enabled by default which means calls during your program's execution will be cached. However, the ``ecal.RuntimeCache`` is only temporary and the next time your program runs it will call the API again.\n\nPersistent on disk caching is provided via ``ecal.SqliteCache`` and can be easily enabled by setting ``ecal.default_cache`` once before calls to ``ecal.get()``:\n\n.. code-block:: python\n\n import ecal\n ecal.default_cache = ecal.SqliteCache('ecal.db')\n\n cal_df = ecal.get('2017-03-30')\n\nExtension\n~~~~~~~~~\n\n``ecal`` is very easy to extend in case you want to support another caching system or even create an earnings announcement fetcher. For more documentation, please see http://ecal.readthedocs.io.\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/brettelliot/ecal", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ecal", "package_url": "https://pypi.org/project/ecal/", "platform": "", "project_url": "https://pypi.org/project/ecal/", "project_urls": { "Homepage": "https://github.com/brettelliot/ecal" }, "release_url": "https://pypi.org/project/ecal/1.0.2/", "requires_dist": [ "pandas (==0.22.0)", "requests (>=2.19.1)", "urllib3 (>=1.23)" ], "requires_python": "", "summary": "A package for getting a US equity earnings announcement calendar.", "version": "1.0.2" }, "last_serial": 4531322, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ffb52d335e127ab016e2905d5dfa7e9d", "sha256": "d0cc01c17d9c3d0e62877f9dc41c91e311221a32383572f210a0a1953876369d" }, "downloads": -1, "filename": "ecal-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ffb52d335e127ab016e2905d5dfa7e9d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4612, "upload_time": "2018-09-21T17:56:28", "url": "https://files.pythonhosted.org/packages/a7/e2/5813a173dd3a2b4af75eea4e52d06fc82daa0c5aaf6a68d26bb8f000c3fc/ecal-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54d839b0817601edf01d50ae9cd9369f", "sha256": "90eaed5a120f5815dcee43aaa920d325cc2522e71e9046427a4821202668b4d5" }, "downloads": -1, "filename": "ecal-0.0.1.tar.gz", "has_sig": false, "md5_digest": "54d839b0817601edf01d50ae9cd9369f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3271, "upload_time": "2018-09-21T17:56:30", "url": "https://files.pythonhosted.org/packages/e3/9a/2a16cc8a0e6c6a13d45d3f8db6b6b6354638ff0e6ec7881e544746aab449/ecal-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "24f5ee84ab783c5b5b64e85aa697bfc9", "sha256": "6d30dd73cc392e7217b5cc632290212a06589d79d85b599f3afcfad954e532c0" }, "downloads": -1, "filename": "ecal-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "24f5ee84ab783c5b5b64e85aa697bfc9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4621, "upload_time": "2018-09-21T18:06:45", "url": "https://files.pythonhosted.org/packages/97/96/b1832fc859f2451e71a4ab76845c8457864ea6ea6853cc4eae3f3a83cd8d/ecal-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7feb58bde39648e968dc6c3191322c09", "sha256": "6f9b956ee7e05ee293b69d6f524fbccaa40d50e9a6401ce794e1cfa3b44cc67e" }, "downloads": -1, "filename": "ecal-0.0.2.tar.gz", "has_sig": false, "md5_digest": "7feb58bde39648e968dc6c3191322c09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3291, "upload_time": "2018-09-21T18:06:46", "url": "https://files.pythonhosted.org/packages/b9/44/18bc2a779c06cc9b3f40f7315f5964d015843f5e34ceb86aebc9fd90a4eb/ecal-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "aa48fddbcebfbb8bd154c879a2b61cef", "sha256": "836958563e40a06587931183541dc9bb9673bc25dfea94780305e7bb96942878" }, "downloads": -1, "filename": "ecal-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "aa48fddbcebfbb8bd154c879a2b61cef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4617, "upload_time": "2018-09-21T18:18:07", "url": "https://files.pythonhosted.org/packages/c3/ee/b18483099ed24cb97a70d9236778e8c071281885e7db0f46acb71c9211e4/ecal-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89a88cdc5fda58a1e591a2a3278d8875", "sha256": "5e51f8765a39bb44d705f3d132abb9d337f6c9da6d72c33df1cc3e5ec3f371f4" }, "downloads": -1, "filename": "ecal-0.0.3.tar.gz", "has_sig": false, "md5_digest": "89a88cdc5fda58a1e591a2a3278d8875", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3281, "upload_time": "2018-09-21T18:18:08", "url": "https://files.pythonhosted.org/packages/c0/20/b24ee3ad7ef81ae8a92186c1428b3b31b4c246e4b3de727826e97da0b872/ecal-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "03c8a6d7b98701014438003dd638dfdc", "sha256": "82b49f890a66d7159e7d9ed7c1cdd7a4c4bd60ab3c122bcd0a6a3e9bb518625d" }, "downloads": -1, "filename": "ecal-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "03c8a6d7b98701014438003dd638dfdc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8060, "upload_time": "2018-09-24T00:33:20", "url": "https://files.pythonhosted.org/packages/d7/f3/81f8ff2eb04818b1251e3b94c7bae6a30f3b789945aa40780b4d7ffd646d/ecal-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd4cadde9743fcc939fb2ee556eac656", "sha256": "1885482b4437c42419b90878e31181c9c5a8eb2ecf411f24eb6254709d6748e6" }, "downloads": -1, "filename": "ecal-0.0.4.tar.gz", "has_sig": false, "md5_digest": "dd4cadde9743fcc939fb2ee556eac656", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4090, "upload_time": "2018-09-24T00:33:21", "url": "https://files.pythonhosted.org/packages/27/6a/02f715af655806c891fc81f71a6fad37ae2e3d97c368af240472d823f3aa/ecal-0.0.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "b436de4f9d06fe15d9c06f881c29da86", "sha256": "280e4ce60ebfbe68e20a983df3b8797cf49e874ebe8e63647734d9aa954745fe" }, "downloads": -1, "filename": "ecal-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b436de4f9d06fe15d9c06f881c29da86", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10957, "upload_time": "2018-10-07T13:21:58", "url": "https://files.pythonhosted.org/packages/f5/aa/6f58c6e21a4f0dfe5f4fc8f83eee7e15ee27e7c4bd98d00c3026a2428c7a/ecal-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2bde01b401c8aec7004b38b5900172c", "sha256": "dd608ae21e8630b564ba98896d70a5f46fc1df685c873ebe5b6cb1ac35c9003c" }, "downloads": -1, "filename": "ecal-1.0.0.tar.gz", "has_sig": false, "md5_digest": "f2bde01b401c8aec7004b38b5900172c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6164, "upload_time": "2018-10-07T13:22:00", "url": "https://files.pythonhosted.org/packages/53/55/c3a17429e089bbaa87f806f2a610b7a634549f861f6a4cb7a6dd6b3603f6/ecal-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "1227eae32c9e3b5e18ddba76c90c2742", "sha256": "f149ef4da6bbb5bfeb487f4c1cafc3bb0f0aca4cd16e63895ca01e43866d15e2" }, "downloads": -1, "filename": "ecal-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1227eae32c9e3b5e18ddba76c90c2742", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11574, "upload_time": "2018-10-07T23:47:30", "url": "https://files.pythonhosted.org/packages/fc/c4/3cd22bb4d7c0e8056c75593f0e511fcdc91a3189b7a9151278a67636a071/ecal-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "265536761e3486ece1a80dd664a54293", "sha256": "4a76bc03d9f26958e99dea25bc788351a4193201cc9bd171d807db7818e2c97b" }, "downloads": -1, "filename": "ecal-1.0.1.tar.gz", "has_sig": false, "md5_digest": "265536761e3486ece1a80dd664a54293", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6942, "upload_time": "2018-10-07T23:47:31", "url": "https://files.pythonhosted.org/packages/b8/86/73cc6fd7401eb50f080891b28665c820b7dc7da85fd1c50092c76daf7ed8/ecal-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "00505350fc15c3c6979f4e1784270567", "sha256": "900b9fea81e7f7f6fa91e61227bbb258c44f47d4546866539b14673aa82136ea" }, "downloads": -1, "filename": "ecal-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "00505350fc15c3c6979f4e1784270567", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10845, "upload_time": "2018-11-26T21:41:33", "url": "https://files.pythonhosted.org/packages/39/c3/f1a56b8ad5ffdf5d444b37d96bc6c6296c17ad09a2f0b09e628f170814de/ecal-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5da67867ab07b2705303399a7f2ef22", "sha256": "bf617ecec08df6a114fb0e1cc053d0a96ce0e4ae34bc758dc648a9c2ed9e06d1" }, "downloads": -1, "filename": "ecal-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d5da67867ab07b2705303399a7f2ef22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7662, "upload_time": "2018-11-26T21:41:34", "url": "https://files.pythonhosted.org/packages/05/15/45123a05b1c77a156681cafbfb2ff33630b2d48574329d337627c6a942ef/ecal-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "00505350fc15c3c6979f4e1784270567", "sha256": "900b9fea81e7f7f6fa91e61227bbb258c44f47d4546866539b14673aa82136ea" }, "downloads": -1, "filename": "ecal-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "00505350fc15c3c6979f4e1784270567", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10845, "upload_time": "2018-11-26T21:41:33", "url": "https://files.pythonhosted.org/packages/39/c3/f1a56b8ad5ffdf5d444b37d96bc6c6296c17ad09a2f0b09e628f170814de/ecal-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5da67867ab07b2705303399a7f2ef22", "sha256": "bf617ecec08df6a114fb0e1cc053d0a96ce0e4ae34bc758dc648a9c2ed9e06d1" }, "downloads": -1, "filename": "ecal-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d5da67867ab07b2705303399a7f2ef22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7662, "upload_time": "2018-11-26T21:41:34", "url": "https://files.pythonhosted.org/packages/05/15/45123a05b1c77a156681cafbfb2ff33630b2d48574329d337627c6a942ef/ecal-1.0.2.tar.gz" } ] }