vaab / colour Goto Github PK
View Code? Open in Web Editor NEWPython color representations manipulation library (RGB, HSL, web, ...)
License: BSD 2-Clause "Simplified" License
Python color representations manipulation library (RGB, HSL, web, ...)
License: BSD 2-Clause "Simplified" License
It says no 'No module named dist_info' when pip install
And it gives same error info in running "python setup.py install".
my python is 2.7.14, and this version of python is in the support list.
r, g, b = (0.9999999999999999, 0.9999999999999999, 1.0)
c = Color(red=r, green=g, blue=b)
print or log c
traceback :
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 1084, in __str__
return "%s" % self.web
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 983, in __getattr__
return getattr(self, 'get_' + label)()
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 1029, in get_web
return hex2web(self.hex)
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 983, in __getattr__
return getattr(self, 'get_' + label)()
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 1002, in get_hex
return rgb2hex(self.rgb)
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 983, in __getattr__
return getattr(self, 'get_' + label)()
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 1008, in get_rgb
return hsl2rgb(self.hsl)
File "/home/lionel/Envs/rectitude-pyqt/local/lib/python2.7/site-packages/colour.py", line 346, in hsl2rgb
raise ValueError("Saturation must be between 0 and 1.")
It would be very nice if Color objects had equality operator support. Defining __eq__
and __ne__
methods in Color class would suffice:
def __eq__(self, other):
return self.hex == other.hex
def __ne__(self, other):
return self.hex != other.hex
This would allow the following syntax to evaluate as True:
Color('white') == Color('white')
Gitchangelog is only needed for the developers of this package. Regular user who only use this package as a library don't need it as a dependency.
I just wanted to say thank you for working on things like this. Your color range list function was a lifesaver for me.
I did have a problem once in a while with matplotlib where it wouldn't recognize a non-normalized web hex format. For example, a value in the middle of a range landed on #393. Matplotlib wouldn't take this value as it apparently needed the normalized #339933. I used the webcolors package to normalize the output of my color range lists from colour to avoid the random problem of landing on a color value that didn't need all 6 digits to represent it. Before webcolors I tried formatting the color value using "%s"% and .hex but it remained a 3 digit color value that matplotlib wouldn't take. The piece of code they use to normalize is this:
if len(hex_digits) == 3:
hex_digits = u''.join(2 * s for s in hex_digits)
If I'm going about this reporting wrong maybe you can let me know what I should be doing differently. I'm new to open source projects like this. Thanks.
Sam
RGB_TO_COLOR_NAMES = {
(240, 248, 255): ['aliceblue'],
(250, 235, 215): ['antiquewhite'],
(0, 255, 255): ['aqua'],
(127, 255, 212): ['aquamarine'],
(240, 255, 255): ['azure'],
(245, 245, 220): ['beige'],
(255, 228, 196): ['bisque'],
(0, 0, 0): ['black'],
(255, 235, 205): ['blanchedalmond'],
(0, 0, 255): ['blue'],
(138, 43, 226): ['blueviolet'],
(165, 42, 42): ['brown'],
(222, 184, 135): ['burlywood'],
(95, 158, 160): ['cadetblue'],
(127, 255, 0): ['chartreuse'],
(210, 105, 30): ['chocolate'],
(255, 127, 80): ['coral'],
(100, 149, 237): ['cornflowerblue'],
(255, 248, 220): ['cornsilk'],
(220, 20, 60): ['crimson'],
(0, 255, 255): ['cyan'],
(0, 0, 139): ['darkblue'],
(0, 139, 139): ['darkcyan'],
(184, 134, 11): ['darkgoldenrod'],
(169, 169, 169): ['darkgray'],
(0, 100, 0): ['darkgreen'],
(189, 183, 107): ['darkkhaki'],
(139, 0, 139): ['darkmagenta'],
(85, 107, 47): ['darkolivegreen'],
(255, 140, 0): ['darkorange'],
(153, 50, 204): ['darkorchid'],
(139, 0, 0): ['darkred'],
(233, 150, 122): ['darksalmon'],
(143, 188, 143): ['darkseagreen'],
(72, 61, 139): ['darkslateblue'],
(47, 79, 79): ['darkslategray'],
(0, 206, 209): ['darkturquoise'],
(148, 0, 211): ['darkviolet'],
(255, 20, 147): ['deeppink'],
(0, 191, 255): ['deepskyblue'],
(105, 105, 105): ['dimgray'],
(30, 144, 255): ['dodgerblue'],
(178, 34, 34): ['firebrick'],
(255, 250, 240): ['floralwhite'],
(34, 139, 34): ['forestgreen'],
(255, 0, 255): ['fuchsia'],
(220, 220, 220): ['gainsboro'],
(248, 248, 255): ['ghostwhite'],
(255, 215, 0): ['gold'],
(218, 165, 32): ['goldenrod'],
(128, 128, 128): ['gray'],
(0, 128, 0): ['green'],
(173, 255, 47): ['greenyellow'],
(240, 255, 240): ['honeydew'],
(255, 105, 180): ['hotpink'],
(205, 92, 92): ['indianred'],
(75, 0, 130): ['indigo'],
(255, 255, 240): ['ivory'],
(240, 230, 140): ['khaki'],
(230, 230, 250): ['lavender'],
(255, 240, 245): ['lavenderblush'],
(124, 252, 0): ['lawngreen'],
(255, 250, 205): ['lemonchiffon'],
(173, 216, 230): ['lightblue'],
(240, 128, 128): ['lightcoral'],
(224, 255, 255): ['lightcyan'],
(250, 250, 210): ['lightgoldenrodyellow'],
(144, 238, 144): ['lightgreen'],
(211, 211, 211): ['lightgray'],
(255, 182, 193): ['lightpink'],
(255, 160, 122): ['lightsalmon'],
(32, 178, 170): ['lightseagreen'],
(135, 206, 250): ['lightskyblue'],
(119, 136, 153): ['lightslategray'],
(176, 196, 222): ['lightsteelblue'],
(255, 255, 224): ['lightyellow'],
(0, 255, 0): ['lime'],
(50, 205, 50): ['limegreen'],
(250, 240, 230): ['linen'],
(255, 0, 255): ['magenta'],
(128, 0, 0): ['maroon'],
(102, 205, 170): ['mediumaquamarine'],
(0, 0, 205): ['mediumblue'],
(186, 85, 211): ['mediumorchid'],
(147, 112, 219): ['mediumpurple'],
(60, 179, 113): ['mediumseagreen'],
(123, 104, 238): ['mediumslateblue'],
(0, 250, 154): ['mediumspringgreen'],
(72, 209, 204): ['mediumturquoise'],
(199, 21, 133): ['mediumvioletred'],
(25, 25, 112): ['midnightblue'],
(245, 255, 250): ['mintcream'],
(255, 228, 225): ['mistyrose'],
(255, 228, 181): ['moccasin'],
(255, 222, 173): ['navajowhite'],
(0, 0, 128): ['navy'],
(253, 245, 230): ['oldlace'],
(128, 128, 0): ['olive'],
(107, 142, 35): ['olivedrab'],
(255, 165, 0): ['orange'],
(255, 69, 0): ['orangered'],
(218, 112, 214): ['orchid'],
(238, 232, 170): ['palegoldenrod'],
(152, 251, 152): ['palegreen'],
(175, 238, 238): ['paleturquoise'],
(219, 112, 147): ['palevioletred'],
(255, 239, 213): ['papayawhip'],
(255, 218, 185): ['peachpuff'],
(205, 133, 63): ['peru'],
(255, 192, 203): ['pink'],
(221, 160, 221): ['plum'],
(176, 224, 230): ['powderblue'],
(128, 0, 128): ['purple'],
(255, 0, 0): ['red'],
(188, 143, 143): ['rosybrown'],
(65, 105, 225): ['royalblue'],
(139, 69, 19): ['saddlebrown'],
(250, 128, 114): ['salmon'],
(244, 164, 96): ['sandybrown'],
(46, 139, 87): ['seagreen'],
(255, 245, 238): ['seashell'],
(160, 82, 45): ['sienna'],
(192, 192, 192): ['silver'],
(135, 206, 235): ['skyblue'],
(106, 90, 205): ['slateblue'],
(112, 128, 144): ['slategray'],
(255, 250, 250): ['snow'],
(0, 255, 127): ['springgreen'],
(70, 130, 180): ['steelblue'],
(210, 180, 140): ['tan'],
(0, 128, 128): ['teal'],
(216, 191, 216): ['thistle'],
(255, 99, 71): ['tomato'],
(64, 224, 208): ['turquoise'],
(238, 130, 238): ['violet'],
(245, 222, 179): ['wheat'],
(255, 255, 255): ['white'],
(245, 245, 245): ['whitesmoke'],
(255, 255, 0): ['yellow'],
(154, 205, 50): ['yellowgreen']
}
Building 0.1.4 from source fails:
Missing version information: running './autogen.sh'...
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 158, in save_modules
yield saved
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 199, in setup_context
yield
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 254, in run_setup
_execfile(setup_script, ns)
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 49, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-gi3u_ihf/d2to1-0.2.12.post1/setup.py", line 17, in <module>
from setuptools import setup
File "/tmp/easy_install-gi3u_ihf/d2to1-0.2.12.post1/d2to1/util.py", line 204, in cfg_to_args
File "/tmp/easy_install-gi3u_ihf/d2to1-0.2.12.post1/d2to1/util.py", line 439, in wrap_commands
File "/usr/lib/python3.6/site-packages/setuptools/dist.py", line 589, in get_command_list
cmdclass = ep.resolve()
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2322, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'tasks'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "setup.py", line 64, in <module>
d2to1=True
File "/usr/lib/python3.6/distutils/core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib/python3.6/site-packages/setuptools/dist.py", line 325, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/usr/lib/python3.6/site-packages/setuptools/dist.py", line 446, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 855, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1127, in best_match
return self.obtain(req, installer)
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1139, in obtain
return installer(requirement)
File "/usr/lib/python3.6/site-packages/setuptools/dist.py", line 518, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 672, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 698, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 879, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1118, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1104, in run_setup
run_setup(setup_script, args)
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 257, in run_setup
raise
File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 199, in setup_context
yield
File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 170, in save_modules
saved_exc.resume()
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 145, in resume
six.reraise(type, exc, self._tb)
File "/usr/lib/python3.6/site-packages/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 158, in save_modules
yield saved
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 199, in setup_context
yield
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 254, in run_setup
_execfile(setup_script, ns)
File "/usr/lib/python3.6/site-packages/setuptools/sandbox.py", line 49, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-gi3u_ihf/d2to1-0.2.12.post1/setup.py", line 17, in <module>
from setuptools import setup
File "/tmp/easy_install-gi3u_ihf/d2to1-0.2.12.post1/d2to1/util.py", line 204, in cfg_to_args
File "/tmp/easy_install-gi3u_ihf/d2to1-0.2.12.post1/d2to1/util.py", line 439, in wrap_commands
File "/usr/lib/python3.6/site-packages/setuptools/dist.py", line 589, in get_command_list
cmdclass = ep.resolve()
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2322, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'tasks'
% python
Python 3.8.1 (default, Jan 26 2020, 17:08:51)
[Clang 11.0.0 (clang-1100.0.33.8)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import culour
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/venv/lib/python3.8/site-packages/culour/__init__.py", line 1, in <module>
from culour import addstr
ImportError: cannot import name 'addstr' from partially initialized module 'culour' (most likely due to a circular import)
Nice job with this library.
The only thing I think is that it does not implement all the colour representations. Here's a check-list to motivate you to add those.
Possibly the best part of this library is that it is independent (single-file, no dependencies). I request you to please keep it the same.
When building a gradient from a color to black, the gradient go through many other hues, instead of going simply darker. It looks quite unnatural.
Wouldn't it be possible to treat white and black as special cases ?
Hi all,
When trying to install this package from source in ArchLinux using the pacaur AUR helper, I get the following error:
:: Retrieving package(s)...
Cloning into 'python-colour'...
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 4 (delta 0)
Unpacking objects: 100% (4/4), done.
:: View python-colour PKGBUILD? [Y/n] n
:: Checking python-colour integrity...
==> Making package: python-colour 0.1.2-1 (Fri Aug 18 11:20:50 CEST 2017)
==> Retrieving sources...
-> Cloning colour git repo...
Cloning into bare repository '/home/matteo/.cache/pacaur/python-colour/colour'...
remote: Counting objects: 351, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 351 (delta 1), reused 0 (delta 0), pack-reused 348
Receiving objects: 100% (351/351), 162.40 KiB | 127.00 KiB/s, done.
Resolving deltas: 100% (207/207), done.
==> Validating source files with md5sums...
colour ... Skipped
:: Building python-colour package(s)...
==> Making package: python-colour 0.1.2-1 (Fri Aug 18 11:20:54 CEST 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Entering fakeroot environment...
==> Starting package()...
Missing version information: running './autogen.sh'...
Installed /home/matteo/.cache/pacaur/python-colour/src/colour/.eggs/d2to1-0.2.12.post1-py3.6.egg
error in setup command: Error parsing /home/matteo/.cache/pacaur/python-colour/src/colour/setup.cfg: RecursionError: maximum recursion depth exceeded
==> ERROR: A failure occurred in package().
Aborting...
:: failed to build python-colour package(s)
Any idea on how to solve this? I'm not a Python expert and this seems to be a package related issue, instead of a distribution issue.
name colors does not work for all of them, thanks I wrote some tests before implement this library.
Right after doing a pip install colour
I get this error when I try to call the Color
constructor. I think you may have a bug in your setup.py file.
There is a collision in package name, both have package name == colour
This package and https://www.colour-science.org/installation-guide/
If the latter is installed in the PYTHONPATH, all attempts to import from colour import Color
will fail.
Throws Traceback error, than only one color requested
list(Color("black").range_to(Color('white'),1))
ZeroDivisionError: float division by zero
Expected list with one element:
[<Color black>,]
In setup it is stated that this package is GPL and BSD licensed. Which one is it? Would it be possible to make this wonderful package BSD licensed?
Should be replaced with using setuptools directly. See the migration guide here:
Is it possible to make mutable properties like .luminance
chainable like in spectra? (https://github.com/jsvine/spectra#colorbrightenamount10)
I can not import the most basic class and that is Color
from colour import Color
Traceback (most recent call last):
File "", line 1, in
ImportError: cannot import name 'Color' from 'colour' (unknown location)
this is in python3, and I am trying to run manim python code. How can I fix this?
Hi,
I searched in code, doc and issues but i didn't find a clear way to use CSS rgb values since Color rgb argument required float values.
Like for red color i have this CSS rule:
rgb(255, 0, 0)
I attempted to be able to do:
Color(rgb=(255, 0, 0))
Did i missed some helper or easy math to perform this ?
Thanks.
Is there a one-liner that I can use to get the color of a numeric value? For example, I want to make a color range from blue to red using 256 levels, where blue somehow maps to 0.0 and red maps to 1.0. From the markdown file I've come up with the following workflow.
from colour import Color
import numpy as np
# make the base colors
red = Color("red")
blue = Color("blue")
# define the color range
levels = 256
r_to_b = list(red.range_to(blue, levels))
def map(x, color_range, m=0.0, M=1.0):
""" This map converts a numeric value to Color object in a list of Color objects """
n = len(color_range)
numeric_range = np.linspace(m,M,n)
nearest_idx = np.abs(x - numeric_range).argmin()
return color_range[nearest_idx]
# retrieve the color of float x
x = 0.2425
color_x = map(x, r_to_b)
Is this functionality already present in colour
, or do you see a better implementation?
In [1]: second_col.web
Out[1]: 'white'
In [2]: second_col == Color("white")
Out[2]: True
In [3]: second_col != Color("white")
Out[3]: True
I might be totally off base here, but i think you're conflating lightness and luminance?
HSL is hue, saturation, lightness
luminance is sqrt( 0.299R^2 + 0.587G^2 + 0.114*B^2 )
It pip install fails, as it can't find the CHANGELOG.rst file
Pypi shows BSD-3-Clause, LICENSE and github show BSD-2-Clause.
At the moment I have to wrap it like this
c = colour.hex2rgb(colour.web2hex(args))
There's no linear interpolation .. is that correct?
Context.. see https://www.vis4.net/blog/2011/12/avoid-equidistant-hsv-colors/
or https://www.alanzucconi.com/2016/01/06/colour-interpolation/
Hello, when i use
oldcolor = Color('#800080')
newcolor = Color('#000080')
oldcolor.range_to(newcolor, 100)
the list goes through the whole rainbow (red, yellow, etc).
An option for a range with a shortest path, kind of a CMYK way, transitioning trough mauve or lilac to blue would be nice.
Hi there,
Linux 3.13.0-29-generic #53-Ubuntu SMP Wed Jun 4 21:00:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Python 2.7.9
pip install colour
Collecting colour
Using cached colour-0.1.0.tar.gz
Installed /tmp/pip-build-jSjeRq/colour/.eggs/d2to1-0.2.11-py2.7.egg
[d2to1] running patched manifest_maker command with extra_files support
Installing collected packages: colour
Running setup.py install for colour
[d2to1] running patched manifest_maker command with extra_files support
Successfully installed colour-0.1.0
from colour import Color
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named colour
It would be cool to have an .inverted property which would return an inverted Color object.
I try the most simple import of color
from colour import Color
c = Color("blue")
and I get this error
ImportError: cannot import name 'Color' from 'colour' (unknown location)
Hi, I am trying to create a plot in which each line is picked from a colormap, like in this code:
import matplotlib.pylab as plt
import numpy as np
x = np.linspace(0,10,100)
n_lines = 3
cl = plt.cm.cool(np.linspace(0, 1, n_lines))
for i in range(3):
plt.plot(x,x**(i+1),color=cl[i])
plt.show()
How can I use colour package in order to create a custom gradient and use it with matplotlib? I tried to create a gradient from brown to green in this way:
from colour import Color
brown = Color("brown")
cl = list(brown.range_to(Color("green"),3))
But it gave me error when plugging cl to the code I've given above..
Thanks for this library, it's very cool and useful. Maybe you could add another kind of range in order to make gradients, e.g. now the color range from blue to white is "passing" through other colors, like green, while it would be nice to have also the opportunity to make a gradient from blue to white which is just making the blue paler and paler until white, so basically it would be a lightness based range.
Hello, I am trying to install colour in Slackware 15 Beta 1 and I am getting this error when I run ./autogen.sh.
autogen.sh: error: Didn't find a git repository (or no tags found). ``./autogen.sh`` uses git to create changelog and version information.
As I understand it autogen.sh should create a Changelog.rst file needed by setup.py. However I need to get past the above error. Any help with this is appreciated.
Thank You.
Because of the following reasons, this package is not install-able from git:
%%version%%
is in setup.py
CHANGELOG.rst
does not exist in the repository and setup.py
depends on it.Currently, All attributes and methods of Color
return tuples or strings. It should be relatively simple to return namedtuples instead of simple tuples.
Why?
Namedtuple makes your tuples _self-document. You can easily understand what is going on by having a quick glance at your code._1
Is HSV going to be supported? The readme says it is supported, but I found only HSL implemented.
Thank you.
Hi!
This is a friendly notice to let you know that Debian is working on packaging your software for Debian. You can follow the progress of that work in bug #867800 in the Debian Bug Tracking System (BTS).
The source code for the Debian package is in this git repository. It will be uploaded into Debian shortly, at which point it will end up in the NEW queue for legal review. Once the NEW process is completed, it takes about 10 days for the package to trickle down into "testing", which will become the next Debian release. This means your software will eventually be shipped in a "long term support" release, which last from three to five years, according to the current statistics.
If you are interested in maintaining the package yourself upstream, that is definitely possible. You can either upload the package yourself if you are a Debian member or I can act as a sponsor when a new release is published.
This is just a notification, but can also act as a coordination point for upstream packaging if you wish to followup on this. otherwise, feel free to close this issue whenever you like.
Is there a chance integer RGB values can be accepted? It makes compatibility with PIL's color signatures more streamlined.
Trying to generate a Colour object using 0, 255, 0 RGB value and read back the rgb tuple. Getting a exponential negative value in place of blue.
Also tried,
Color("lime").rgb
Color("#00FF00").rgb
Color(rgb=(0,1,0)).rgb
CSS spec defined an RGBA color specification: https://www.w3.org/wiki/CSS3/Color/RGBA
However, passing a value like 'rgba(0, 0, 0, 1)' results an the error:
ValueError: 'rgba(0,0,0,1)' is not a recognized color.
This makes storing values that are intended for use in stylesheets impossible without doing unnecessary conversion.
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.