vacanza / python-holidays Goto Github PK
View Code? Open in Web Editor NEWGenerate and work with holidays in Python
Home Page: https://pypi.org/project/holidays
License: MIT License
Generate and work with holidays in Python
Home Page: https://pypi.org/project/holidays
License: MIT License
>>> import holidays
>>> bc = holidays.CA(prov='BC')
>>> on = holidays.CA(prov='ON')
>>> bc + on
Traceback (most recent call last):
File "sum.py", line 4, in <module>
bc + on
File "/Users/ryan/Code/holidays.py/holidays.py", line 104, in __add__
HolidaySum = createHolidaySum(c1, c2)
File "/Users/ryan/Code/holidays.py/holidays.py", line 115, in createHolidaySum
class HolidaySum(class1, class2):
TypeError: Error when calling the metaclass bases
duplicate base class CA
12th of October is a national holiday in Spain.
Add support for new country: Singapore
http://www.mom.gov.sg/newsroom/press-releases/2017/0405-singapore-public-holidays-2018
Is it possible that Martin Luther King, Jr. Day is missing for Georgia?
for date,holiday in sorted(holidays.US(state='GA', years=range(2011,2014)).items()):
print date, holiday
2010-12-31 New Year's Day (Observed)
2011-01-01 New Year's Day
2011-01-17 Robert E. Lee's Birthday
2011-04-25 Confederate Memorial Day
...
2012-01-01 New Year's Day
2012-01-02 New Year's Day (Observed)
2012-04-23 Confederate Memorial Day
...
2012-11-22 Thanksgiving
2012-11-23 Robert E. Lee's Birthday
2012-12-24 Washington's Birthday
2012-12-25 Christmas Day
2013-01-01 New Year's Day
2013-04-22 Confederate Memorial Day
2013-05-27 Memorial Day
...
(For brevity, I replaced some holidays with ... )
The code seems to associate Martin Luther King, Jr. Day with Robert E. Lee's Birthday prior to 2012.
# Martin Luther King, Jr. Day
if year >= 1986:
name = "Martin Luther King, Jr. Day"
if self.state == 'AL':
name = "Robert E. Lee/Martin Luther King Birthday"
elif self.state in ('AS', 'MS'):
name = ("Dr. Martin Luther King Jr. "
"and Robert E. Lee's Birthdays")
elif self.state in ('AZ', 'NH'):
name = "Dr. Martin Luther King Jr./Civil Rights Day"
elif self.state == 'GA' and year < 2012:
name = "Robert E. Lee's Birthday"
elif self.state == 'ID' and year >= 2006:
name = "Martin Luther King, Jr. - Idaho Human Rights Day"
if self.state != 'GA' or year < 2012:
self[date(year, 1, 1) + rd(weekday=MO(+3))] = name
However, there are two issues. First, for Martin Luther King, Jr. Day to be included for Georgia after 2012, the last two lines should probably read
if self.state != 'GA' or year >= 2012:
self[date(year, 1, 1) + rd(weekday=MO(+3))] = name
Second, it seems that Martin Luther King, Jr. Day has been a state holiday in Georgia already prior to 2012. See https://web.archive.org/web/20110224172609/http://www.georgia.gov/00/channel_modifieddate/0,2096,4802_64437763,00.html, https://web.archive.org/web/20100304032739/http://www.georgia.gov/00/channel_modifieddate/0,2096,4802_64437763,00.html, and https://georgia.gov/popular-topic/observing-state-holidays.
Besides, the above links also seem to suggest that Lincoln's Birthday does not necessarily coincide with Martin Luther King, Jr. Day in Georgia.
pip install holidays
fails if python-dateutil is not already present
I believe the project needs to include a requirement file to ensure the dependencies get installed.
This is essential for including this package into any automated deployments...
Is there a reason why you didn't include the US Presidential Inauguration Day:
http://www.opm.gov/policy-data-oversight/pay-leave/pay-administration/fact-sheets/holidays-work-schedules-and-pay
Day after Thanksgiving is a holiday in CA: https://www.dmv.ca.gov/portal/dmv/detail/about/holidays
As shown below holidays won't appear in the object until I check if a date is in the holiday object.
Python 2.7.5 (default, Oct 11 2015, 17:47:16)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import holidays
>>> print holidays.__version__
0.5
>>> h = holidays.UnitedStates()
>>> h
{}
>>> datetime.datetime.now() in h
False
>>> h
{datetime.date(2016, 11, 24): 'Thanksgiving', datetime.date(2016, 2, 15): "Washington's Birthday", datetime.date(2016, 7, 4): 'Independence Day', datetime.date(2016, 9, 5): 'Labor Day', datetime.date(2016, 12, 25): 'Christmas Day', datetime.date(2016, 1, 1): "New Year's Day", datetime.date(2016, 10, 10): 'Columbus Day', datetime.date(2016, 1, 18): 'Martin Luther King, Jr. Day', datetime.date(2016, 12, 26): 'Christmas Day (Observed)', datetime.date(2016, 11, 11): 'Veterans Day', datetime.date(2016, 5, 30): 'Memorial Day'}
The UK definitions are based on a calculation of when holidays would fall in a given year. However this fails to take into account additional bank holidays. For example 29 April 2011 was a bank holiday but the library reports that it was not.
>>> from datetime import date
>>> import holidays
>>>
>>> class TestHolidays(holidays.US):
... def _populate(self, year):
... holidays.US._populate(self, year)
... self[date(year, 12, 31)] = "New Year's Eve"
...
>>> '2014-12-31' in TestHolidays()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "holidays.py", line 79, in __contains__
return dict.__contains__(self, self.__keytransform__(key))
File "holidays.py", line 75, in __keytransform__
self._populate(year)
File "<stdin>", line 4, in _populate
File "holidays.py", line 85, in __setitem__
return dict.__setitem__(self, self.__keytransform__(key), value)
File "holidays.py", line 75, in __keytransform__
self._populate(year)
File "<stdin>", line 4, in _populate
File "holidays.py", line 85, in __setitem__
return dict.__setitem__(self, self.__keytransform__(key), value))
...
File "holidays.py", line 75, in __keytransform__
self._populate(year)
File "<stdin>", line 3, in _populate
File "holidays.py", line 112, in _populate
self[date(year, 1, 1)] = name
File "holidays.py", line 85, in __setitem__
return dict.__setitem__(self, self.__keytransform__(key), value)
File "holidays.py", line 72, in __keytransform__
year = (key + rd(days=+1)).year
RuntimeError: maximum recursion depth exceeded while calling a Python object
Hi
I am a newbie to this library and I tried to find the holidays in a date range that started from date A to date B in Canada.
for example, this is what I would do with the U.S. holidays:
from pandas.tseries.holiday import USFederalHolidayCalendar as calendar
cal = calendar()
holidays = cal.holidays(start='05-13-2014, end=05-13-2016)
print(holidays)
I would appreciate if you help me with that.
Regards
Hi,
thanks for coming up with this nice package, I am using 0.9.5 from Debian :-)
I just realized, that the holidays for BW in Germany are incomplete:
import holidays
bw_holidays = holidays.DE(state='BW',years=2018)
for date, name in sorted(bw_holidays.items()):
print(date, name)
results in
rd@b370:~$ python3 test-holidays.py
2018-01-01 Neujahr
2018-03-30 Karfreitag
2018-04-02 Ostermontag
2018-05-01 Maifeiertag
2018-05-10 Christi Himmelfahrt
2018-05-21 Pfingstmontag
2018-10-03 Tag der Deutschen Einheit
2018-12-25 Erster Weihnachtstag
2018-12-26 Zweiter Weihnachtstag
rd@b370:~$
A full list is give e.g. here:
https://www.schulferien.org/Feiertage/Feiertage_Baden_Wuerttemberg.html
When setup.py us run in non-unicode locales, it crashes with the error below. This is caused by the implicit use of codecs. To find the version number, holidays.py is read using the codecs module, but no codec is specified. Because of this, the codec used depends on the locale, which is ascii for non-unicode locales. Holidays.py contains many non-ascii characters in the holiday names, so this fails.
Non-unicode locales are the default in most minimal setups (such as docker images), so this has quite a bit of impact. Fortunately the fix is trivial; I'll add a merge request.
Collecting holidays (from -r requirements.txt (line 22))
Downloading holidays-0.6.tar.gz (40kB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-a2dby65n/holidays/setup.py", line 21, in <module>
fd.read(), re.MULTILINE).group(1)
File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 16417: ordinal not in range(128)
Workaround for those who depend on the pypi version (requires the C.UTF-8
locale to be generated on your system. Ubuntu docker image has that by default.)
LC_CTYPE=C.UTF-8 python setup.py install # or whatever pip command you need
Could it be possible to include Brazilian national (federal) and state holidays? I am working on an app where I need to calculate odd workdays
, that is single weekdays squeezed between holidays, or holiday and weekend. What I need for now is the federal + the state of Espírito Santo.
For some reason I don't understand python-holidays
only defines Easter Sunday for country == 'DE'
as holiday in prov = 'BB'
which I guess means Brandenburg. Easter Monday and Good Friday are (correctly) set up for entire Germany.
I'm not aware of any special regulation in Brandenburg, so I'd say this is a bug. Of course, Easter Sunday is always a Sunday, so the consequences aren't that great from a work time perspective, but anyhow...
P.S.: https://www.youtube.com/watch?v=kdwKbiMyvu0
P.P.S: Same issue with Pentecost (Pfingstsonntag)...
Did you not include these on purpuse ? i dont mind writing a pull request and fix it
I'd like to suggest adding Israeli holidays.
Note that Israel has a few different calendars for holidays: they are not different between states (no states in Israel) but rather between religions: Jewish, Christian and Muslim holidays are all different.
Furthermore, they don't all follow the Georgian calendar. Libraries such as pyluach might be convenient in implementing these holidays.
I will try to address the issue, and update accordingly.
The Show starts on the first Friday of August - providing this is not prior to the 5th - in which case it will begin on the second Friday.
https://www.rna.org.au/about-us/ekka-dates-2013-2050.aspx
So the Wednesday during the show is a public holiday in our state.
PR will be provided including a test.
Days off are great, but holidays may also be understood as school vacation. did someone already spend some time on this topic ?
Latest master is failing due to a new flake8 warning:
$ flake8 holidays.py tests.py
holidays.py:71:13: E722 do not use bare except'
Got the following error while trying to install under Python 3.5:
Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-e2vwj6jf-build/setup.py", line 29, in <module> long_description=open('README.rst').read(), File "/root/miniconda2/envs/keras/lib/python3.5/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5823: ordinal not in range(128)
Thank you for the package, BTW!
Hi,
from 1990 until 1994, Buß- und Bettag was a Germany-wide holiday after which it was removed except for federal state Saxonia (prov == 'SN').
python-holidays` incorrectly lists it as a Saxonia-specific holiday from 1990 onward.
https://en.wikipedia.org/wiki/Bu%C3%9F-_und_Bettag#As_a_statutory_non-working_holiday
https://de.wikipedia.org/wiki/Bu%C3%9F-_und_Bettag#Abschaffung
Please push 0.9.5 as archive to PyPI. Thanks.
It appears that there is a problem with the build configuration. pip install $DATEUTIL
fails on Python 3.2 (and therefore also pypy3). This may be because pip>=8.0.0
no longer supports python 3.2.
See eg https://travis-ci.org/ryanss/python-holidays/jobs/232419470
Similarly to what has been requested for Israel, Singapore public holidays are made of fixed dates (New Year, Labour day, National Day and Christmas). Other public holidays are "religious" celebrations taken from muslim, Hinddu and Buddhist calendars). These "religious" celebrations vary every year but the Ministry of Manpower in Singapore publishes the official public holidays with 1 year in advance (currently published are 2018 and 2019).
There is no accurate way to calculate (or I do not know it) what will be the dates for these religious holidays for 2020 and beyond. Which means that this library, if it is created will have to be updated at the beginning or every year.
I have prepared a SG class covering 2018 and 2019. I could submit it but I will need some guidance as I am a newbie to all this (Github, python,...)
Here is the code:
`# -- coding: utf-8 --
class Singapore(HolidayBase):
PROVINCES = []
def __init__(self, **kwargs):
self.country = 'SG'
HolidayBase.__init__(self, **kwargs)
def _populate(self, year):
# Singapore became independent on 9th August 1965
if year < 1965:
return
# New Year's Day
name = "New Year's Day"
jan1 = date(year, 1, 1)
self[jan1] = name
# If New year falls on Sunday, Monday becomes public Holiday
if self.observed and jan1.weekday() == 6:
self[date(year, 1, 2)] = name + " (Observed)"
# Chinese New Year
name = "Chinese New Year (1)"
if year == 2018:
self[date(year, 2, 16) = name
if year == 2019:
self[date(year, 2, 5) = name
# Chinese New Year
name = "Chinese New Year (2)"
if year == 2018:
self[date(year, 2, 17) = name
if year == 2019:
self[date(year, 2, 6) = name
# Good Friday
self[easter(year) + rd(weekday=FR(-1))] = "Good Friday"
# Labour Day
name = "Labour Day"
# Started being celebrated in 1960 after People Action Party went into power
# Reference Wikipedia (Labour Day Singapore)
if year >= 1960:
self[date(year, 5, 1) = name
# if Labour day falls on a Sunday, Monday is observed
if self.observed and may1.weekday() == 6:
self[date(year, 5, 2)] = name + " (Observed)"
# Vesak Day
name = "Vesak day"
if year == 2018:
self[date(year, 5, 29) = name
if year == 2019:
self[date(year, 5, 19) = name
# Hari Raya Puasa
# End of Ramadan
name = "Hari Raya Puasa"
if year == 2018:
self[date(year, 6, 15) = name
if year == 2019:
self[date(year, 6, 5) = name
# National Day
if year > 1965:
name = "National Day"
aug9 = date(year, 8, 9)
self[feb6] = name
# if National day falls on a Sunday, Monday is observed
if self.observed and year >= 1965 and aug9.weekday() == 6:
self[date(year, 8, 10)] = name + " (Observed)"
# Hari Raya Hadji
# First day of muslim pilgrimage to Mecca
name = "Hari Raya Hadji"
if year == 2018:
self[date(year, 8, 22) = name
if year == 2019:
self[date(year, 8, 11) = name
# Deepavali
name = "Deepavali"
if year == 2018:
self[date(year, 11, 6) = name
if year == 2019:
self[date(year, 10, 27) = name
# Christmas Day
name = "Christmas Day"
dec25 = date(year, 12, 25)
self[dec25] = name
# if Christms day falls on a Sunday, Monday is observed
if self.observed and dec25.weekday() == 6 :
self[date(year, 12, 26)] = name + " (Observed)"
class SG(Singapore):
pass
`
Hello,
I am working on Argentina Holidays, and I have an issue.
In addition to 'traditional holidays', we have some holidays named 'Non-work day' for some religions and 'Bridge holidays' or 'tourist holidays'. The last, is not fixed each year. How could I register this holidays?
Regards!
I have reviewed/tested the code to check what exactly it does with US.
My assumption is that the main use for the module is to identify business vs. non-business days. Seems like there might some discrepancies / options at least within US.
The current list seems to reflect US Post Office schedule, though most businesses are likely to follow Bank Holiday schedule (no business if bank is closed - main difference banks closed on Easter).
Moreover, there are some special cases (e.g. "long weekends" with extra Friday on Thanksgiving, etc, early business closing on "pre-holiday" days, like xmas/new year and possibly others).
I wonder if it might be valuable to make things like this configurable beyond the basic USPS schedule?
References -
http://www.theholidayschedule.com/post-office-holidays.php
http://www.theholidayschedule.com/bank-holidays.php
http://www.theholidayschedule.com/nyse-holidays.php
AttributeError Traceback (most recent call last)
in ()
----> 1 holidays.IND()
AttributeError: module 'holidays' has no attribute 'IND'
please suggest any solution for this.
Could it be possible to include France national holidays?
Currently the United Kingdom has no province/state member but there are different bank holidays between the countries that make up the UK.
Specifically with E=England, W=Wales, S=Scotland, N=Northern Ireland, R=Republic of Ireland & M=Isle of Man and with all holidays movable to the next working day in the case of not falling on a working day:
The really confusing one is that if Christmas day falls on a weekend day it is move to the day after Boxing Day so that if the 25th is Saturday then Boxing Day will be moved from Sunday to Monday and Christmas Day will have a substitute day on the 28th.
Please consider adding these regions with their specific holidays to this tool
Hi,
shouldn't states and provinces be synonyms so that they can be used interchangeably?
For example, so that
holidays.DE(state='BW') == holidays.DE(prov='BW') # True
Regards,
Achim
When generating the US holidays for 2022, the observed new year's day is in 2021 (Dec. 31).
us_holidays = holidays.US()
date(2022, 1, 1) in us_holidays
The observed new year's day in not among the us_holidays. To have the observed holiday, you need to also populate 2021:
date(2021, 1, 1) in us_holidays
The national day of Spain seems to be missing from the holiday list. It is held every year on October 12.
>>> import holidays
>>> hd = holidays.ES()
>>> hd.get('2016-10-12')
More information can be found on the Wikipedia page: https://en.wikipedia.org/wiki/Fiesta_Nacional_de_Espa%C3%B1a
Assuming that, CountryHoliday
is used as described in the README and the country is not know until runtime (e.g. it is read from a config or user input):
import holidays
country = "DE" # from sys.argv, for example
ch = holidays.CountryHoliday(country)
This of course yields a perfectly fine instance. The problem comes up when the state or province is also relevant. Since CountryHoliday
returns an instance, there is no way to add a state, which is set using the constructor.
A couple of workarounds:
type()
or .__class__
to get the class; create a new instancegetattr(holidays, country)
to get the class directly, skips the nice error handlingNeither of those seem like a sleek and easy to understand solution to me.
To resolve this, I propose that all keyword arguments to CountryHoliday
should be passed onto the class, like so (omitting error handling):
def CountryHoliday(country, **kwargs):
country_holiday = globals()[country](**kwargs)
return country_holiday
holidays_de_he = CountryHoliday("DE", prov="HE")
This enables setting the state/province and of course all other options like expand
or observed
, even when using the very friendly CountryHoliday
. The external API stays stable, since arguments are only added and the single existing one just stays in place.
What do you think? :) I am happy to code up a quick PR including docs and a test, if you'd like.
In many occasions the country for which we want to retrive the calendar is a parameter of the program/analysis itself so don't want to hardcode an infinite list of if ... elif
.
Is it possible to have a function like get_calendar(country)
, from which we can retrive a calendar class by passing a string with the country name/abbreviation?
Thanks
Is it possible to get dates of specific holidays in next few years? Like holidays.get_dates('Labor Day', next=5) will return the dates of labor day in next 5 years?
Thanks.
The package is now "not found" on PyPI ( https://pypi.python.org/pypi/holidays/0.1 ), pip install command fails as well
Why is today holiday in uk?
if datetime.date.today() in holidays.UK():
print('UK holiday')
It might be nice to allow for not adding holidays that are not going to be observed on their normal date. I'm guessing that this only happens when the actual holiday falls on a weekend so maybe it doesn't matter.
Hello there!
As long as the library provides verbose human-readable pieces of text (names of holidays), it would make a lot of sense to make that locale-aware. It is especially relevant for countries that have several official languages (like Switzerland, Canada or Belarus).
I see the simplest implementation as adding another parameter to HolidayBase.__init__
as well as the respective get()
and its variations.
>>> h = holidays.Canada()
>>> h.get('2018-09-03')
Labour Day
>>> h.get('2018-09-03', locale='fr_CA')
Fête du travail
Would love to hear if that sounds reasonable...
Thank you!
Doing some googling the following could be used as data source:
http://api.dryg.net/dagar/v2.1/YYYY, http://api.dryg.net/dagar/v2.1/YYYY/MM, http://api.dryg.net/dagar/v2.1/YYYY/MM/DD
Result for 2017
{
"cachetid": "2017-05-10 14:05:17",
"version": "2.1",
"uri": "/dagar/v2.1/2017",
"startdatum": "2017-01-01",
"slutdatum": "2017-12-31",
"dagar": [
{
"datum": "2017-01-01",
"veckodag": "Söndag",
"arbetsfri dag": "Ja",
"röd dag": "Ja",
"vecka": "52",
"dag i vecka": "7",
"helgdag": "Nyårsdagen",
"namnsdag": [],
"flaggdag": "Nyårsdagen"
},
{
"datum": "2017-01-02",
"veckodag": "Måndag",
"arbetsfri dag": "Nej",
"röd dag": "Nej",
"vecka": "01",
"dag i vecka": "1",
"namnsdag": [
"Svea"
],
"flaggdag": ""
},
{
...
Documentation can be found at: https://api.dryg.net
Hi there.
South Australia has a part day public holiday after 7pm on Christmas Eve and New Years Eve:
http://www.safework.sa.gov.au/show_page.jsp?id=2483#.VyR-0GNvN0c
(I'm guessing this is not something that will be supported any time soon: I've still not implemented it in my manual public-holiday stuff internally).
for date, name in sorted(holidays.CO(years=2017).items()):
print(date, name)
?????
2017-01-09 Día de los Reyes Magos Epiphany
2017-03-20 Día de San José Saint Joseph's Day
2017-04-13 Jueves Santo [Maundy Thursday]
2017-04-14 Viernes Santo [Good Friday]
2017-05-01 Día del Trabajo [Labour Day]
2017-05-29 Ascensión del señor Ascension of Jesus
2017-06-19 Corpus Christi [Corpus
.
.
.
on 2016 and 2018 appears ok
thanks, good job
Yes, we are bit odd state that we celebrate her birthday on a different date compared to all other Australian states, just like WA does.
We used to have same exact date up until 2012 (that we decided to celebrate twice) than turned back to normal for a few years. In 2016, we again decided that we could move her birthday to completely different month, first Monday of October (same as in 2012) and it remained permanent (so far).
https://www.timeanddate.com/holidays/australia/queens-birthday
PR will be provided within the cumulative merge #84.
Could you please push 0.9.6 as archive to PyPI? At the moment only the .egg is available.
Thanks.
Is required by home-assistant/core#15831
Reformationstag 31.10. is always a public holiday in Germanys state Brandenburg (BR)
Furthermore in 2017 it is a public holiday in all states (500. Anniversary of Martin Luthers 95 Thesis)
Hi,
The logic for "Bevrijdingsdag" in the Netherlands is not entirely correct:
Related code: https://github.com/ryanss/python-holidays/blob/master/holidays.py#L2015
Related PR: #37
Official government page about this day (in Dutch): https://www.rijksoverheid.nl/onderwerpen/arbeidsovereenkomst-en-cao/vraag-en-antwoord/bevrijdingsdag-5-mei-vrije-dag
Summary: It is an official holiday every year but people do not necessarily get a day off. For a lot of people (but not all) their contract states that they have a day off every 5 years (year % 5
) so in those cases the current logic is correct.
Solution: The solution depends on the definition of holiday. If it has to be a day that nobody has to work, then bevrijdingsdag is never a holiday. If it is 'just' an official holiday, bevrijdingsdag is a holiday every year.
I might have time to work on the solution during the weekend.
Cheers,
Aart
In the code, it should be 10, not 8.
# October Bank Holiday (last Monday in October) if self.country == 'Ireland': name = "October Bank Holiday" self[date(year, 8, 31) + rd(weekday=MO(-1))] = name
You currently report Canada Day as being valid all the way back to 1867, but before 1983, the holiday was called "Dominion Day".
Also, it was not a statutory holiday until 1879, which means there should be no "(Observed)" version of Dominion Day before 1879.
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.