iprak / yahoofinance Goto Github PK
View Code? Open in Web Editor NEWHome Assistant component which allows you to get stock updates from Yahoo finance.
License: MIT License
Home Assistant component which allows you to get stock updates from Yahoo finance.
License: MIT License
It would be extremely useful to also get cryptocurrencies to report via Yahoo Finance
https://finance.yahoo.com/quote/BTC-EUR
Have tried several symbols, but not working.
First, thanks for this integration! Gave up on having stocks in HA a long time ago; integrations were unreliable, doing it via REST sensors involved a lot of work and hard to find APIs. Then I found this in HACS and was super happy someone was finally developing something that works!
Request: Would it be possible to include coloring for the icons based on the state of the entity? Either user input config or even simple Red/Yellow/Green for Trending Down/Neutral/Trending Up states. I'd just like that immediate visual recognition and I think it would add to the function/features.
Also: Discovered that I could add indexes by using the symbol and caret; e.g.
- platform: yahoofinance
show_trending_icon: true
scan_interval:
minutes: 15
symbols:
- ^DJI
- ^IXIC
- ^VIX
- AAPL
- AMZN
- GOOGL
- UPS
- UNM
Works great in case you want to add this to the docs; you can get the index abbreviation from the URL in the Yahoo Finance page. Thanks!
Would it be possible to include these as well?
Thanks for making this component, it's been working great!
HASS 2021.8 introduced long-term statistics (see https://www.home-assistant.io/blog/2021/08/04/release-20218/) which would be nice to have support for with yahoofinance.
From what I can tell the only thing that should be needed is to set the "state_class" property to "measurement", see: https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics
After this change the long term statistics can be seen in the developer tools (https://my.home-assistant.io/redirect/developer_statistics/) or by using the statistics graph card (https://www.home-assistant.io/dashboards/statistics-graph/)
As a secondary enhancement it might be good idea to set "device_class" property to "monetary"? See: https://www.home-assistant.io/integrations/sensor/#device-class
I would love to see the ability to set scan interval by symbol or group symbols and set scan interval by group. OR have multiple instances of the integration running. Reason: for most funds, etfs etc. a daily update would be more than enough. Only for a few stocks though I'd like to set updates by minute
Hello, great work with this, however I'm noticing that on restarting HA, the integration is bringing through what I'm assuming is the default value of USD, and then updating to what I want it to be (GBP)
This unfortunately messes up my graph as it looks like there's been a spike when there hasn't - If you ignore the start of the chart as its where I was integrating and doing loads of changes, but today o've restarted twice and both times seen a spike
Hello, I am trying to use your integrations for currency conversion and having issue with that.
I have following configuration but get no data back.
Please do let me know if its possible.
Kind Regards,
Since I updated to 2021.12.2 I can’t get any data. The following error occurs.
Logger: homeassistant.setup
Source: custom_components/yahoofinance/coordinator.py:36
Integration: yahoofinance (documentation, issues)
First occurred: 15 december 2021 22:07:54 (1 occurrences)
Last logged: 15 december 2021 22:07:54
Setup failed for yahoofinance: unknown error
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/setup.py", line 181, in _async_setup_component
component = integration.get_component()
File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/loader.py", line 522, in get_component
cache[self.domain] = importlib.import_module(self.pkg_path)
File "/usr/local/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 783, in exec_module
File "", line 219, in _call_with_frames_removed
File "/home/homeassistant/.homeassistant/custom_components/yahoofinance/init.py", line 18, in
from custom_components.yahoofinance.coordinator import YahooSymbolUpdateCoordinator
File "/home/homeassistant/.homeassistant/custom_components/yahoofinance/coordinator.py", line 32, in
class YahooSymbolUpdateCoordinator(DataUpdateCoordinator):
File "/home/homeassistant/.homeassistant/custom_components/yahoofinance/coordinator.py", line 36, in YahooSymbolUpdateCoordinator
def parse_symbol_data(symbol_data: dict) -> dict[str, any]:
TypeError: 'type' object is not subscriptable
They need to be multiplied by 100 . E.g. example percentage attribute below should be -11
TwoHundredDayAverage 22,769.63
TwoHundredDayAverageChange -2,511.97
TwoHundredDayAverageChangePercent -0.11
How do we do UK stocks? Trying to get BT.A for example and nothing is returned.
Using your integration for quick look at my main stocks.
Would be nice to have a stock attribute in the form as an url to Yahoo charts for the stock.
I get the following errors when starting home assistant
Logger: homeassistant.setup
Source: custom_components/yahoofinance/__init__.py:116
First occurred: 9:22:10 AM (1 occurrences)
Last logged: 9:22:10 AM
Error during setup of component yahoofinance
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 213, in _async_setup_component
result = await task
File "/config/custom_components/yahoofinance/__init__.py", line 148, in async_setup
scan_interval = parse_scan_interval(domain_config.get(CONF_SCAN_INTERVAL))
File "/config/custom_components/yahoofinance/__init__.py", line 116, in parse_scan_interval
elif scan_interval < MINIMUM_SCAN_INTERVAL:
TypeError: '<' not supported between instances of 'NoneType' and 'datetime.timedelta'
Logger: homeassistant.setup
Source: setup.py:280
First occurred: 9:22:10 AM (1 occurrences)
Last logged: 9:22:10 AM
Unable to prepare setup for platform yahoofinance.sensor: Unable to set up component.
This is the relevant part of my configuration.yaml
#sensors
sensor: !include_dir_merge_list include_files/sensor/
And inside that directory a file named yahoofinance.yaml
#yahoofinance
- platform: yahoofinance
show_trending_icon: true
scan_interval:
minutes: 15
symbols:
- AMD
- ALGT
- AMZN
Can you added unique ID for each entity?
Than can be modify by user - example: change name.
Thanks.
Love the integration, however it doesn't follow HA development guidelines.
The entities created should exist under the sensor
domain (perfectly capable of handling everything present in this integration), rather than a new custom domain just for this integration.
Reasons for this:
Hi,
First of all, Thanks for creating this project. I was able to get it up and running for a month (I think) but as of last week, all the sensor shows unavailable. Any advice is appreciated.
Hello,
I would like to have the value delivered back in a different currency than yahoo. I also track prices of ETFs such as the following: https://finance.yahoo.com/quote/EMIM.L
This one is listed in GPB. Would it be possible to include an automatic conversion for this, so that the price is displayed in the specified currency.
The rates of GBP => USD => EUR are provided by Yahoo Finance(GBPUSD=X / EURUSD=X), but I don't want to miss out on all attributes and features with a custom template sensor.
Regards
Log error after installing via HACS;
2022-01-08 16:04:13 ERROR (MainThread) [homeassistant.components.hassio] The system cannot restart because the configuration is not valid: Integration error: yahoofinance - Integration 'yahoofinance' not found.
Fully accept i might be doing something wrong, but can't see what?
Configuration.yaml
yahoofinance:
symbols:
- HSBA.L
- TEF.MC
scan_interval:
hours: 2
show_trending_icon: true
Thanks.
Please consider the following functionality:
Make an UI-integration so stocks can be added using the UI. – No restart off HA needed.
Add two attributes, «buy price» and «number of stocks»
Using the UI-integration the two attributes can be set by the user.
This way a portfolio can be created in HA for daily monitoring.
Cheers.
UPDATE:
I see the functionality #2 has been proposed before. I am a N00b, where and how, in your code do I write in some code to get two new attributes? This way I can populate them manually.
When there are a lot of entities and lots of symbols, then additional conversion symbol might not load. The call to async_request_refresh
goes out but data is not loaded - this might be due to debouncing since the coordinator is still processing data from the last refresh. Delaying the additional refresh seems to work.
I was setup scan_interval as 1sec, after update seems like minimum_scan_interval is change to 30sec. suggestion keep minimum scan interval as 1sec thanks
Hello!
YahooFinance seems to have issues this morning and so the servers seems to reply with error 500 when presented a request - wich I guess is something that can happen. Here is the log I see in my HA logs :
2021-02-11 13:57:20 ERROR (MainThread) [custom_components.yahoofinance] Error requesting YahooSymbolUpdateCoordinator data: 0, message='Attempt to decode JSON with unexpected mimetype: text/html;charset=utf-8', url=URL('https://query1.finance.yahoo.com/v7/finance/quote?symbols=BOB,SPG,URW.AS,COV.PA,NQ=F,%5EGSPC,%5ENDX,HUF=X,EURUSD=X,QQQ,EEM,EURHUF=X,SPY,WIZ,DUDE,ES=F,SCZ,MAC,O,TMF')
2021-02-11 13:57:20 INFO (MainThread) [homeassistant.setup] Setup of domain yahoofinance took 2.9 seconds
Now the problem is that after that first try, the custom component seems to give up and never tries again... I guess this is an issue and should be corrected - the component should do several attempts?
This used to be working until an update or two ago (it took me a couple weeks to find time to report it).
Using the following config:
- platform: yahoofinance
symbols:
- AMZN
- TSLA
- MSFT
- AMD
- GME
The integration will not start up due to this error:
Logger: homeassistant.setup
Source: custom_components/yahoofinance/__init__.py:72
First occurred: 3:04:11 PM (1 occurrences)
Last logged: 3:04:11 PM
Error during setup of component yahoofinance
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 213, in _async_setup_component
result = await task
File "/config/custom_components/yahoofinance/__init__.py", line 88, in async_setup
scan_interval = parse_scan_interval(domain_config.get(CONF_SCAN_INTERVAL))
File "/config/custom_components/yahoofinance/__init__.py", line 72, in parse_scan_interval
elif scan_interval < MINIMUM_SCAN_INTERVAL:
TypeError: '<' not supported between instances of 'NoneType' and 'datetime.timedelta'
Hi,
Thanks for creating this project.
Any chance it would be possible to add the portfolio holdings (total $$$) including total/day gains/losses?
Cheers
When adding or replacing symbols to the original config, I end up getting errors in the Home Assistant log, like this:
2021-05-27 18:04:44 WARNING (MainThread) [custom_components.yahoofinance.coordinator] Requested data for SPDR and received MSFT
When this occurs, inaccurate data is represented in lovelace (SPDR populated with MSFT values, and MSFT values are null):
At every restart, the following warning appears:
2021-12-13 10:41:26 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.yahoofinance_gc_f (<class 'custom_components.yahoofinance.sensor.YahooFinanceSensor'>) implements device_state_attributes. Please report it to the custom component author.
Not sure, if it wil be deprecated in near future or something else, just notyfing the author as instructed :).
It would be nice to have the option to add number of shares owned in the config like this:
symbols:
- symbol: AAPL
shares: 100
- symbol: MSFT
shares: 10
This would in turn make it possible to add the attributes shares
and market_value
(shares * state/regularMarketPrice) to each stock entity :-)
All is in the title, when up arrow should be green and when down should be red.
Thanks!
symbols:
- symbol: EXXT.DE
target_currency: EUR
will give this
2021-05-23 19:13:13 DEBUG (MainThread) [custom_components.yahoofinance.sensor] EXXT.DE conversion EUREUR=X=1.0
Hi,
I am on version 1.1.9, integration is working correctly. I have netities defined as sensor.yahoofinance_symbol and they are correctly retrieveing values. After upgrade to v1.1.10 integration stops retrieving data anymore. Tried couple of times, the same result.
Kind regards,
PKort
I am getting the following errors on startup and when calling the yahoofinance.refresh_symbols
service, meaning that the prices are no longer updating. This problem appears to have been introducted in v1.0.5, as downgrading to v1.0.4 causes the errors to disappear and the prices to refresh again. I have highlighted the potential cause, which looks like it could be a typo / syntax error for the operator '+:'
2021-02-17 17:24:46 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform yahoofinance
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 315, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 506, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 530, in add_to_platform_finish
await self.async_added_to_hass()
File "/config/custom_components/yahoofinance/sensor.py", line 282, in async_added_to_hass
self._coordinator.async_add_listener(self.async_write_ha_state)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 83, in async_add_listener
self._schedule_refresh()
File "/config/custom_components/yahoofinance/init.py", line 228, in _schedule_refresh
utcnow().replace(microsecond=0) + self.get_next_update_interval(),
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'NoneType'
2021-02-17 17:24:46 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up yahoofinance platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 206, in _async_setup_platform
await asyncio.gather(*pending)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 315, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 506, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 530, in add_to_platform_finish
await self.async_added_to_hass()
File "/config/custom_components/yahoofinance/sensor.py", line 282, in async_added_to_hass
self._coordinator.async_add_listener(self.async_write_ha_state)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 83, in async_add_listener
self._schedule_refresh()
File "/config/custom_components/yahoofinance/init.py", line 228, in _schedule_refresh
utcnow().replace(microsecond=0) + self.get_next_update_interval(),
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'NoneType'
2021-02-17 17:30:00 ERROR (MainThread) [homeassistant.components.automation.shares_update_prices] Shares: Update prices: Error executing script. Unexpected error for call_service at pos 1: unsupported operand type(s) for +: 'datetime.datetime' and 'NoneType'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 254, in _async_step
await getattr(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 464, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1455, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1490, in _execute_service
await handler.job.target(service_call)
File "/config/custom_components/yahoofinance/init.py", line 148, in handle_refresh_symbols
await coordinator.async_request_refresh()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 131, in async_request_refresh
await self._debounced_refresh.async_call()
File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 75, in async_call
await task
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 195, in async_refresh
self._schedule_refresh()
File "/config/custom_components/yahoofinance/init.py", line 228, in _schedule_refresh
utcnow().replace(microsecond=0) + self.get_next_update_interval(),
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'NoneType'
2021-02-17 17:30:00 ERROR (MainThread) [homeassistant.components.automation.shares_update_prices] While executing automation automation.shares_update_prices
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/automation/init.py", line 404, in async_trigger
await self.action_script.async_run(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1033, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 246, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 254, in _async_step
await getattr(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 464, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1455, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1490, in _execute_service
await handler.job.target(service_call)
File "/config/custom_components/yahoofinance/init.py", line 148, in handle_refresh_symbols
await coordinator.async_request_refresh()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 131, in async_request_refresh
await self._debounced_refresh.async_call()
File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 75, in async_call
await task
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 195, in async_refresh
self._schedule_refresh()
File "/config/custom_components/yahoofinance/init.py", line 228, in _schedule_refresh
utcnow().replace(microsecond=0) + self.get_next_update_interval(),
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'NoneType'
Provide settings include_pre_attributes
, include_post_attributes
, inclued_two_hundred_day_attributes
, inclued_fifty_day_attributes
to control the attributes related to those sets from being saved.
Let the new settings default to true.
The README refers to/links browser_mod in relation to color-coding the trend icons. I think this should say card_mod.
Since update to home assistant 2023.02 these warnings are emitted on startup:
WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.yahoofinance_xxxx (<class 'custom_components.yahoofinance.sensor.YahooFinanceSensor'>) is using state class 'measurement' which is impossible considering device class ('monetary') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
I am getting an error w/ Hassos v2021.02
The errors has something to do w/ the scan interval change introduced here
2021-02-04 11:50:28 ERROR (MainThread) [homeassistant.setup] Error during setup of component yahoofinance
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 213, in _async_setup_component
result = await task
File "/config/custom_components/yahoofinance/__init__.py", line 88, in async_setup
scan_interval = parse_scan_interval(domain_config.get(CONF_SCAN_INTERVAL))
File "/config/custom_components/yahoofinance/__init__.py", line 72, in parse_scan_interval
elif scan_interval < MINIMUM_SCAN_INTERVAL:
TypeError: '<' not supported between instances of 'NoneType' and 'datetime.timedelta'
my config is as follows:
sensor:
- platform: yahoofinance
show_trending_icon: true
symbols:
- CSCO
scan_interval:
hours: 1
I am running v1.01
Thanks
v1.0.0 appears to have broken the ability to include currency exchange rates? - working ok for me in v0.4:
- platform: yahoofinance
symbols:
- USDEUR=X
Thank you!
Is there any way to update the prices like every 10 minutes? Or is it a limitation in requests to the API?
I just install HACS and when I restart the server and here is the issue. Please advise
Traceback (most recent call last): File "/srv/homeassistant/lib/python3.9/site-packages/homeassistant/setup.py", line 229, in _async_setup_component result = await task File "/home/homeassistant/.homeassistant/custom_components/yahoofinance/__init__.py", line 171, in async_setup scan_interval = parse_scan_interval(domain_config.get(CONF_SCAN_INTERVAL)) File "/home/homeassistant/.homeassistant/custom_components/yahoofinance/__init__.py", line 136, in parse_scan_interval elif scan_interval < MINIMUM_SCAN_INTERVAL: TypeError: '<' not supported between instances of 'NoneType' and 'datetime.timedelta'
I have a feature request.
It would be nice to be able to enter details about the initial purchase of the stock, without creating an additional template entity for each symbol. For example:
sensor:
- platform: yahoofinance
symbols:
- SYMBOL
quantity: 43
cost_per_share: 3.52
date: 2020-04-29
Then add some additional attributes:
Finally having some new entities could provide useful as well.
Is it possible to have data for dividends? payment day at least?
it would be nice to hear on my daily welcome routine information that some company is paying me today:) Avanza has those data, but there is only a limited stock market (the US and only some European countries ) - Yahoo has more stocks
Would it be possible to change the icon based on the value compared to the previous close? If so you could use the tending up/down icons instead of the currency symbol.
https://cdn.materialdesignicons.com/5.3.45/
This could be an option in the config so users could decide which they prefer.
In fact, being able to enter the number of actions could be useful, but the possibility of managing the number of decimals would also simplify the output on the cards. Anyway thanks for the great job, this integration was missing in our Home Assistant.
Hi,
If I use the symbol EUR=X I get the following errors:
Logger: custom_components.yahoofinance.coordinator
Source: custom_components/yahoofinance/coordinator.py:218
Integration: Yahoo Finance ([documentation](https://github.com/iprak/yahoofinance), [issues](https://github.com/iprak/yahoofinance/issues))
First occurred: 11:22:41 (22 occurrences)
Last logged: 15:54:01
Received USDEUR=X not in symbol list
No data received for ['EUR=X']
It looks like EUR=X is defined but USDEUR=X is used to query Yahoo?
Might be useful to have both 50 and 200 days averages.
But not sure whether there's a real time volume available?
Could it be possible to have a notification for new IPOs calendar?
example:
sensor:
- platform: yahoofinance
calendar
and that could change to 1 for an update and after a few hrs change back to 0, that way we could create an alarm that could send a notification to the phone.
Running the integration on the latest beta triggers the following error message:
Detected integration that called async_timeout.timeout with loop keyword argument. The loop keyword argument is deprecated and calls will fail after Home Assistant 2022.2. Please report issue to the custom component author for yahoofinance using this method at custom_components/yahoofinance/coordinator.py, line 163: async with async_timeout.timeout(WEBSESSION_TIMEOUT, loop=self.loop):
I get the following error after updating the plugin to version 1.0.7. I came from 1.0.0 so had to reconfigure my configuration.yaml. After starting homeassistant the following error pops up.
ERROR (MainThread) [homeassistant.components.sensor] Error while setting up yahoofinance platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 201, in _async_setup_platform
await asyncio.gather(*pending)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 310, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 481, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 521, in add_to_platform_finish
await self.async_added_to_hass()
File "/config/custom_components/yahoofinance/sensor.py", line 286, in async_added_to_hass
self._coordinator.async_add_listener(self.async_write_ha_state)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 77, in async_add_listener
self._schedule_refresh()
File "/config/custom_components/yahoofinance/__init__.py", line 229, in _schedule_refresh
self._job,
AttributeError: 'YahooSymbolUpdateCoordinator' object has no attribute '_job'
Configfile is as follows
show_trending_icon: true
scan_interval:
minutes: 1
symbols:
- USDEUR=X
- symbol: TSLA
target_currency: EUR
- symbol: GOOGL
target_currency: EUR
- symbol: MSFT
target_currency: EUR
- BTC-EUR
- ETH-EUR
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.