{ "info": { "author": "Alan Arechiga", "author_email": "alan@macler.us", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Financial and Insurance Industry", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Office/Business :: Financial", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "=============\nInVaIN\n=============\n\n| Python module to get stock data from YAHOO! Finance \n\nBrief Overview\n--------------\nReal time stock data works either through the **Simple API** or the **Advanced API**\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n| **Simple API** is only for one ticker. Once created it will get any stock data for that ticker. It returns just the value so no need for parsing data. Simple API allow for ticker to be changed.\n| **Advanced API** hold a list of tickers that can be added to and modified. Advanced API can use Simple object methods, but also have the ability to add several data fields to gather large data sets quickly. Returns values in a dict object so parsing data is neccesary. \n\nHistorical data works through the **History API**\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n| **History API** is only for historical data and will **NOT** provide real time data. History API holds a list of tickers that can be added to, a time period to get data for, and the frequency (*daily, weekly, or monthly*) and number of frequency between (*any number >= 1*) of data to return all of which can be modified or retrieved.\n| When created it will automatically pull data for the tickers passed, using the default values for time period(*30 days from current day to current day*), frequency(*daily*), and number of frequency between (*1*), or the values supplied by you.\n\nInstall\n-------\n\nFrom PyPI with pip:\n\n.. code:: bash\n\n $ pip install invain\n\nCode Examples\n-------------\n\nExample: Simple API -- Apple Inc. (``AAPL``)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.. code:: python\n\n import invain\n\n #Create Simple API object\n api = invain.Simple('HD') \n #Get market price\n print(api.get_price())\n ###################\n '173.07''\n\nExample: Advanced API Method 1 -- Apple Inc. (``AAPL``), Alphabet Inc. (``GOOG``), Microsoft Inc. (``MSFT``) \n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python \n\n import invain\n\n #Create Advanced API object with all the tickers provided\n api = invain.Advanced('AAPL','GOOG', 'MSFT')\n\n #Use Simple API method to get price\n prices = api.get_price()\n\n #Returns dict object with stock as the index\n for stock in prices:\n print(stock, prices[stock])\n ###################\n 'AAPL 173.07'\n 'GOOG 1047.41'\n 'MSFT 84.88'\n\nExample: Advanced API Method 2 -- Apple Inc. (``AAPL``), Alphabet Inc. (``GOOG``), Microsoft Inc. (``MSFT``) \n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python \n\n import invain\n\n #Create Advanced API object with all the tickers provided\n api = invain.Advanced('AAPL','GOOG', 'MSFT')\n\n #Add price field to data \n api.add_price()\n\n #Fetch custom data set\n prices = api.get_customData()\n\n #Returns dict object with stock as the index\n for stock in prices:\n print(stock, prices[stock])\n ###################\n 'AAPL {'price': 173.07}'\n 'GOOG {'price': 1047.41}'\n 'MSFT {'price': 84.88}'\n\nExample: History API Method 1 -- Apple Inc. (``AAPL``), Alphabet Inc. (``GOOG``), Microsoft Inc. (``MSFT``) \n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n import invain\n\n #Create History API object with all tickers provided. \n #This will pull stock data for the past 30 days with an interval of 1 day.\n #Note that when creating a History object, historical data is automatically pulled. \n #If tickers, start or end dates, or frequency are changed, you will need to run api.update_dataset()\n api = invain.History('AAPL','GOOG', 'MSFT')\n\n #Get custom data set\n historical_data = api.get_dataset()\n\n #Returns dict object with stock as the index\n for stock in historical_data:\n print(stock, historical_data[stock])\n ###################\n AAPL{\n 'Adj Close': [...],\n 'Close': [...],\n 'Date': [...],\n 'High': [...],\n 'Low': [...],\n 'Open': [...],\n 'Volume': [...]\n }\n GOOG{\n 'Adj Close': [...],\n 'Close': [...],\n 'Date': [...],\n 'High': [...],\n 'Low': [...],\n 'Open': [...],\n 'Volume': [...]\n }\n MSFT{\n 'Adj Close': [...],\n 'Close': [...],\n 'Date': [...],\n 'High': [...],\n 'Low': [...],\n 'Open': [...],\n 'Volume': [...]\n }\n\nAvailable methods\n-----------------\n\nHistory API\n^^^^^^^^^^^^\n\n- ``add_ticker(ticker)``\n- ``add_tickers(tickers)`` -- takes argument as array (['ticker1', 'ticker2', ...]) or individual parameters (ticker1, ticker2, ...)\n- ``remove_ticker(tickers)``\n- ``get_tickers()``\n- ``get_period()``\n- ``get_startDate()``\n- ``get_endDate()``\n- ``change_period(periods)``-- takes argument as array (['period1', 'period2']) or individual parameters ('period1', 'period2')\n- ``change_startTime(start)``\n- ``change_endTime(end)``\n- ``get_dataset()``\n- ``update_dataset()``\n- ``change_frequency(frequency, num_between=1)`` -- frequency can be daily, weekly, or monthly. num_between is the step between dates (Not required. Default is 1)\n- ``get_date()`` -- if ticker(s) provided only returns data for those ticker(s)\n- ``get_open()`` -- if ticker(s) provided only returns data for those ticker(s)\n- ``get_high()`` -- if ticker(s) provided only returns data for those ticker(s)\n- ``get_low()`` -- if ticker(s) provided only returns data for those ticker(s)\n- ``get_close()`` -- if ticker(s) provided only returns data for those ticker(s)\n- ``get_adj_close()`` -- if ticker(s) provided only returns data for those ticker(s)\n- ``get_volume()`` -- if ticker(s) provided only returns data for those ticker(s)\n- ``get_combo(ticker=\"ticker\",field=\"high\")`` -- Either ticker or field MUST be given (both is valid). If no ticker is provided returns data for all tickers. If no field is provided returns data for all fields.\n\nSimple API\n^^^^^^^^^^\n\n- ``change_ticker(ticker)``\n- ``get_ticker()``\n- ``get_price()``\n- ``get_volume()``\n- ``get_ask()``\n- ``get_askSize()``\n- ``get_averageDailyVolume3Month()``\n- ``get_averageDailyVolume10Day()``\n- ``get_bid()``\n- ``get_bidSize()``\n- ``get_bookValue()``\n- ``get_currency()``\n- ``get_earningsTimestamp()``\n- ``get_earningsTimestampEnd()``\n- ``get_earningsTimestampStart()``\n- ``get_epsForward()``\n- ``get_epsTrailingTwelveMonths()``\n- ``get_fiftyDayAverage()``\n- ``get_fiftyDayAverageChange()``\n- ``get_fiftyDayAverageChangePercent()``\n- ``get_fiftyTwoWeekHigh()``\n- ``get_fiftyTwoWeekHighChange()``\n- ``get_fiftyTwoWeekHighChangePercent()``\n- ``get_fiftyTwoWeekLow()``\n- ``get_fiftyTwoWeekLowChange()``\n- ``get_fiftyTwoWeekLowChangePercent()``\n- ``get_financialCurrency()``\n- ``get_forwardPE()``\n- ``get_fullExchangeName()``\n- ``get_gmtOffSetMilliseconds()``\n- ``get_longName()``\n- ``get_marketCap()``\n- ``get_marketChange()``\n- ``get_marketChangePercent()``\n- ``get_marketDayHigh()``\n- ``get_marketDayLow()``\n- ``get_marketOpen()``\n- ``get_marketPreviousClose()``\n- ``get_marketTime()``\n- ``get_postMarketChange()``\n- ``get_postMarketChangePercent()``\n- ``get_postMarketPrice()``\n- ``get_postMarketTime()``\n- ``get_priceHint()``\n- ``get_priceToBook()``\n- ``get_sharesOutstanding()``\n- ``get_shortName()``\n- ``get_symbol()`` -- Returns ticker for stock data being fetched\n- ``get_tradeable()``\n- ``get_trailingPE()``\n- ``get_twoHundredDayAverage()``\n- ``get_twoHundredDayAverageChange()``\n- ``get_twoHundredDayAverageChangePercent()``\n\nAdvanced API\n^^^^^^^^^^^^\n\n- ``get_customData()``\n- ``add_ticker(ticker)``\n- ``add_tickers(tickers)`` -- takes list of tickers as argument (or add_tickers(ticker1,ticker2,...))\n- ``get_tickers(tickers)``\n- ``remove_tickers(tickers)``\n- ``add_price()``\n- ``add_volume()``\n- ``add_ask()``\n- ``add_askSize()``\n- ``add_averageDailyVolume3Month()``\n- ``add_averageDailyVolume10Day()``\n- ``add_bid()``\n- ``add_bidSize()``\n- ``add_bookValue()``\n- ``add_currency()``\n- ``add_earningsTimestamp()``\n- ``add_earningsTimestampEnd()``\n- ``add_earningsTimestampStart()``\n- ``add_epsForward()``\n- ``add_epsTrailingTwelveMonths()``\n- ``add_fiftyDayAverage()``\n- ``add_fiftyDayAverageChange()``\n- ``add_fiftyDayAverageChangePercent()``\n- ``add_fiftyTwoWeekHigh()``\n- ``add_fiftyTwoWeekHighChange()``\n- ``add_fiftyTwoWeekHighChangePercent()``\n- ``add_fiftyTwoWeekLow()``\n- ``add_fiftyTwoWeekLowChange()``\n- ``add_fiftyTwoWeekLowChangePercent()``\n- ``add_financialCurrency()``\n- ``add_forwardPE()``\n- ``add_fullExchangeName()``\n- ``add_gmtOffSetMilliseconds()``\n- ``add_longName()``\n- ``add_marketCap()``\n- ``add_marketChange()``\n- ``add_marketChangePercent()``\n- ``add_marketDayHigh()``\n- ``add_marketDayLow()``\n- ``add_marketOpen()``\n- ``add_marketPreviousClose()``\n- ``add_marketTime()``\n- ``add_postMarketChange()``\n- ``add_postMarketChangePercent()``\n- ``add_postMarketPrice()``\n- ``add_postMarketTime()``\n- ``add_priceHint()``\n- ``add_priceToBook()``\n- ``add_sharesOutstanding()``\n- ``add_shortName()``\n- ``add_symbol()``\n- ``add_tradeable()``\n- ``add_trailingPE()``\n- ``add_twoHundredDayAverage()``\n- ``add_twoHundredDayAverageChange()``\n- ``add_twoHundredDayAverageChangePercent()``\n- ``Remove for Above Functions``\n\nTODO/Future Updates\n-------------------\n- ``Historical Data - In Progress (install from clone to use pre-alpha version)``\n- ``Better Error Handling - After Historical Data is in package release``\n- ``Add Documentation - Will attempt to do this periodically untill full docs are complete. Any assistance on this would be great :)``\n\nRequirements\n------------\nrequests\n\nFeedback, Issues, and Features:\n-------------------------------\nFeedback\n^^^^^^^^\n| I'd love to get some feedback from users. I want to know how you are using InVaIN so I can focus on updating it in ways that improve your experience. If you'd like to do so you can email me at *invainapi@gmail.com* **(NOTE: Email abuse will result in your email address being BLOCKED AND/OR REMOVAL OF YOUR ACCESS to InVaIN's data retrieval services)**\n| In that vein, I just wanted to outline some guidelines for submitting issues on github.\n\nBugs\n^^^^\nIf you experience any bugs when running the package please submit an issue with a description of the issue. Bugs will take priority over all other issues. \n\nBad Data\n^^^^^^^^\nIf you experience any problems with returned data please create an issue and include:\n- ``Code related to creating, modifiying, and accessing the InVaIN API object``\n- ``Data Returned``\n- ``Day and Approximate Time of Access``\n\nThis will allow me to better identify what is causing the issue. If you'd rather not post this information on github, please email it to the email listed in the feedback section.\n\nNew Features\n^^^^^^^^^^^^\nPlease don't hesitate to ask for new features you'd like to see or make suggestions for improvements. You can open an issue here on github and I'll take a look at it as soon as I can.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/hailfire113/InVaIN/archive/0.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hailfire113/InVaIN", "keywords": "invain,stocks,data,finance,yahoo,quotes", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "invain", "package_url": "https://pypi.org/project/invain/", "platform": "", "project_url": "https://pypi.org/project/invain/", "project_urls": { "Download": "https://github.com/hailfire113/InVaIN/archive/0.1.tar.gz", "Homepage": "https://github.com/hailfire113/InVaIN" }, "release_url": "https://pypi.org/project/invain/0.4.0/", "requires_dist": [ "requests" ], "requires_python": "", "summary": "A Python library for getting stock data from Yahoo Finance", "version": "0.4.0" }, "last_serial": 4329092, "releases": { "0.2.5.1": [ { "comment_text": "", "digests": { "md5": "f038eddecc21dd944ba7797a160c30ab", "sha256": "2e2a73bc0ffe59bbfdc694d749abf16d0f20c7e196fa4cb64b8fa08707f766e0" }, "downloads": -1, "filename": "invain-0.2.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f038eddecc21dd944ba7797a160c30ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9916, "upload_time": "2017-12-14T21:53:43", "url": "https://files.pythonhosted.org/packages/3c/67/fba4b8359b44eeb6c98d3a874a3467dee3bbadd7503700f43b3b08af8550/invain-0.2.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e5cce926e3f4a1300dd3d84e6a87d7d", "sha256": "09c645e080dece578963a3f0cb2aec9c2e457588efa012ac73d5ae3a404a1af2" }, "downloads": -1, "filename": "invain-0.2.5.1.tar.gz", "has_sig": false, "md5_digest": "4e5cce926e3f4a1300dd3d84e6a87d7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7138, "upload_time": "2017-12-14T21:53:44", "url": "https://files.pythonhosted.org/packages/69/34/26aaf80c4f2a4233038abe03a568894b5f15f0729bab355b0d5f21541fd1/invain-0.2.5.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "66c6d17fa72629453eccb60bfea9316c", "sha256": "b1281166a23b959ca90181c8dcb3f66c09bb690ecc523cd179df548d4282e952" }, "downloads": -1, "filename": "invain-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "66c6d17fa72629453eccb60bfea9316c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9879, "upload_time": "2017-12-14T21:57:45", "url": "https://files.pythonhosted.org/packages/9b/05/beb9c4c03943f69da2a391855a6549ec3f1605ad359b42297c2a2e99d1c7/invain-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "372ea14793d60151e87d36489c800587", "sha256": "b372916a13b6589b18b01467a3499dd023b4ebee5befee15f037c7822819b7a3" }, "downloads": -1, "filename": "invain-0.3.0.tar.gz", "has_sig": false, "md5_digest": "372ea14793d60151e87d36489c800587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7134, "upload_time": "2017-12-14T21:57:47", "url": "https://files.pythonhosted.org/packages/50/02/abd6215dddc1d55610671d330d0ebb3a91246ea7bb5ec776168c221665bb/invain-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "fd957635a561ce1ca0e621fe074dbbee", "sha256": "e55866a4ea6afd8f2259ca069cd1ca55315b6079d8860c33f8a3c6fb8f721661" }, "downloads": -1, "filename": "invain-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fd957635a561ce1ca0e621fe074dbbee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9881, "upload_time": "2017-12-14T22:00:18", "url": "https://files.pythonhosted.org/packages/3a/93/c54c8e30712acf9d1fa790a5bf341cb496a5aa91a951e12252da54394472/invain-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d63d86740885a1467eefd175bd50aee9", "sha256": "d3a7016b78ece3b1dd6c7ea0a1a60412805b87cc25dda407961fe25561360f6d" }, "downloads": -1, "filename": "invain-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d63d86740885a1467eefd175bd50aee9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7131, "upload_time": "2017-12-14T22:00:19", "url": "https://files.pythonhosted.org/packages/b8/43/d9b61ad27ecf437327920327e4217a385ae7079308e2a1c3c5c6e7ab48b3/invain-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "b3dab0fc1d86e28e512a46d7d118c7eb", "sha256": "477cd08d6d698814088d31586f9b3cf9bad9ef1b926b8f91ff03732a1131e5f2" }, "downloads": -1, "filename": "invain-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b3dab0fc1d86e28e512a46d7d118c7eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9921, "upload_time": "2018-02-05T23:24:17", "url": "https://files.pythonhosted.org/packages/3a/dd/85b3215eac1f61fd1c59f48d632efe44bb92702317d6b33b30f1d53e99a2/invain-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8efb2fa468c0f8cbb6cb890cdb705ae", "sha256": "beeae44a3843b89fd5397424d8d5b88df3721b4a5e64a07aad051ca87a3ee5cf" }, "downloads": -1, "filename": "invain-0.3.2.tar.gz", "has_sig": false, "md5_digest": "c8efb2fa468c0f8cbb6cb890cdb705ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7042, "upload_time": "2018-02-05T23:24:19", "url": "https://files.pythonhosted.org/packages/86/c0/2183fde736eba5b7da8463a7bcfea078bba6c126db66fa7d70c3afb3ce73/invain-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e2bf8991c50848f536f25afdfead5e05", "sha256": "73c4c3b1182d33ef617034011fce1dd96de199fc31be18e2b0b89c15c0c12132" }, "downloads": -1, "filename": "invain-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e2bf8991c50848f536f25afdfead5e05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12994, "upload_time": "2018-10-01T15:47:16", "url": "https://files.pythonhosted.org/packages/93/d5/a417f0daa521075fe388689f9bc65b0550eb7b19abb8c32a4f681e03cc54/invain-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f1836a66075c7a6493aab0eca7ac789", "sha256": "5de8d92df5e51cceceff177319ccef91dfbd0a187e4846fe5aa84e9d43383694" }, "downloads": -1, "filename": "invain-0.4.0.tar.gz", "has_sig": false, "md5_digest": "0f1836a66075c7a6493aab0eca7ac789", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14718, "upload_time": "2018-10-01T15:47:17", "url": "https://files.pythonhosted.org/packages/36/de/7795aee820dd87a66f6de690f8b00959216ef57c12c3d6d02a3c3b7bae9e/invain-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e2bf8991c50848f536f25afdfead5e05", "sha256": "73c4c3b1182d33ef617034011fce1dd96de199fc31be18e2b0b89c15c0c12132" }, "downloads": -1, "filename": "invain-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e2bf8991c50848f536f25afdfead5e05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12994, "upload_time": "2018-10-01T15:47:16", "url": "https://files.pythonhosted.org/packages/93/d5/a417f0daa521075fe388689f9bc65b0550eb7b19abb8c32a4f681e03cc54/invain-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f1836a66075c7a6493aab0eca7ac789", "sha256": "5de8d92df5e51cceceff177319ccef91dfbd0a187e4846fe5aa84e9d43383694" }, "downloads": -1, "filename": "invain-0.4.0.tar.gz", "has_sig": false, "md5_digest": "0f1836a66075c7a6493aab0eca7ac789", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14718, "upload_time": "2018-10-01T15:47:17", "url": "https://files.pythonhosted.org/packages/36/de/7795aee820dd87a66f6de690f8b00959216ef57c12c3d6d02a3c3b7bae9e/invain-0.4.0.tar.gz" } ] }