Comments (9)
This looks like an installation issue. Can you determine the value of __package__
in line 34 of version.py
?
from autowrap.
value of __package__ is 'autowrap'
however I dont really install it, I simply build it with python setup.py build
and then use the build directory. Is that a problem?
from autowrap.
Yes. I recommend to run python setup.py develop
then autowrap
should be available from the commandline. Additionally I create a single virtualenv
for autowrap
before I run this command.
from autowrap.
the problem is for python setup.py develop
one needs sudo privileges and I think it would be really nice if one could install the package without virtualenv. Especially since this worked before and is now broken.
from autowrap.
I now also get problems when I use virtualenv and download autowrap
$ git clone [email protected]:uweschmitt/autowrap.git
$ source ~/projects/autowrap/py3env/bin/activate
$ py.test-3.2 tests/
=============================== test session starts ================================
platform linux2 -- Python 3.2.3 -- py-1.4.26 -- pytest-2.6.4
collected 3 items / 7 errors
tests/import_test.py F
tests/test_main.py FF
====================================== ERRORS ======================================
_______________________ ERROR collecting tests/test_code.py ________________________
tests/test_code.py:31: in <module>
import autowrap.Code
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
this may or may not be related to the Python 3, see issue #17
from autowrap.
Did you run python setup.py develop
before running the tests ?
from autowrap.
also then it doesnt work:
-- could we please revert the edit to version.py until these issues are resolved?
$ git clone ~/projects/autowrap/
$ cd autowrap/
$ python setup.py develop
running develop
running egg_info
creating autowrap.egg-info
writing requirements to autowrap.egg-info/requires.txt
writing autowrap.egg-info/PKG-INFO
writing top-level names to autowrap.egg-info/top_level.txt
writing dependency_links to autowrap.egg-info/dependency_links.txt
writing entry points to autowrap.egg-info/entry_points.txt
writing manifest file 'autowrap.egg-info/SOURCES.txt'
reading manifest file 'autowrap.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'autowrap.egg-info/SOURCES.txt'
running build_ext
Creating /home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/autowrap.egg-link (link to .)
Removing autowrap 0.5.1 from easy-install.pth file
Adding autowrap 0.5.1 to easy-install.pth file
Installing autowrap script to /home/hr/projects/autowrap/py3env/bin
Installed /tmp/tt/autowrap
Processing dependencies for autowrap==0.5.1
Searching for Cython==0.21.2
Best match: Cython 0.21.2
Adding Cython 0.21.2 to easy-install.pth file
Installing cython script to /home/hr/projects/autowrap/py3env/bin
Installing cygdb script to /home/hr/projects/autowrap/py3env/bin
Installing cythonize script to /home/hr/projects/autowrap/py3env/bin
Using /home/hr/projects/autowrap/py3env/lib/python3.2/site-packages
Finished processing dependencies for autowrap==0.5.1
$ py.test-3.2 tests/
======================================================= test session starts ========================================================
platform linux2 -- Python 3.2.3 -- py-1.4.26 -- pytest-2.6.4
collected 3 items / 7 errors
tests/import_test.py F
tests/test_main.py FF
============================================================== ERRORS ==============================================================
_______________________________________________ ERROR collecting tests/test_code.py ________________________________________________
tests/test_code.py:31: in <module>
import autowrap.Code
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
__________________________________________ ERROR collecting tests/test_code_generator.py ___________________________________________
tests/test_code_generator.py:36: in <module>
import autowrap.DeclResolver
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
_______________________________________ ERROR collecting tests/test_cython_build_process.py ________________________________________
tests/test_cython_build_process.py:32: in <module>
import autowrap.Utils
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
___________________________________________ ERROR collecting tests/test_decl_resolver.py ___________________________________________
tests/test_decl_resolver.py:33: in <module>
import autowrap.DeclResolver as DeclResolver
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
____________________________________________ ERROR collecting tests/test_pxd_parser.py _____________________________________________
tests/test_pxd_parser.py:36: in <module>
import autowrap.PXDParser
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
_______________________________________________ ERROR collecting tests/test_types.py _______________________________________________
tests/test_types.py:34: in <module>
from autowrap.Types import CppType
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
_______________________________________________ ERROR collecting tests/test_utils.py _______________________________________________
tests/test_utils.py:32: in <module>
import autowrap.Utils
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: in yield_lines
for ss in strs:
E TypeError: 'NoneType' object is not iterable
============================================================= FAILURES =============================================================
____________________________________________________________ testImport ____________________________________________________________
def testImport():
> import autowrap
tests/import_test.py:33:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
autowrap/__init__.py:36: in <module>
from .version import *
autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
strs = None
def yield_lines(strs):
"""Yield non-empty/non-comment lines of a ``basestring`` or sequence"""
if isinstance(strs,str):
for s in strs.splitlines():
s = s.strip()
if s and not s.startswith('#'): # skip blank lines/comments
yield s
else:
> for ss in strs:
for s in yield_lines(ss):
yield s
E TypeError: 'NoneType' object is not iterable
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: TypeError
______________________________________________________ test_from_command_line ______________________________________________________
def test_from_command_line():
import os
old_dir = os.path.abspath(os.getcwd())
script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(os.path.join(script_dir, "test_files"))
args = ["pxds/*.pxd", "--out", "out.pyx", "--addons=/addons",
"--converters=converters"]
> from autowrap.Main import _main
../test_main.py:62:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../autowrap/__init__.py:36: in <module>
from .version import *
../../autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
strs = None
def yield_lines(strs):
"""Yield non-empty/non-comment lines of a ``basestring`` or sequence"""
if isinstance(strs,str):
for s in strs.splitlines():
s = s.strip()
if s and not s.startswith('#'): # skip blank lines/comments
yield s
else:
> for ss in strs:
for s in yield_lines(ss):
yield s
E TypeError: 'NoneType' object is not iterable
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: TypeError
_____________________________________________________________ test_run _____________________________________________________________
def test_run():
> from autowrap.Main import run
../test_main.py:71:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../autowrap/__init__.py:36: in <module>
from .version import *
../../autowrap/version.py:34: in <module>
__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:686: in require
needed = self.resolve(parse_requirements(requirements))
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:556: in resolve
requirements = list(requirements)[::-1] # set up the stack
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:2493: in parse_requirements
for line in lines:
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1893: in yield_lines
for s in yield_lines(ss):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
strs = None
def yield_lines(strs):
"""Yield non-empty/non-comment lines of a ``basestring`` or sequence"""
if isinstance(strs,str):
for s in strs.splitlines():
s = s.strip()
if s and not s.startswith('#'): # skip blank lines/comments
yield s
else:
> for ss in strs:
for s in yield_lines(ss):
yield s
E TypeError: 'NoneType' object is not iterable
/home/hr/projects/autowrap/py3env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg/pkg_resources.py:1892: TypeError
================================================ 3 failed, 7 error in 1.00 seconds =================================================
from autowrap.
PS: if I edit the version.py file, it all works nicely
$ git diff
diff --git a/autowrap/ConversionProvider.py b/autowrap/ConversionProvider.py
index 15c199f..50ad2fe 100644
--- a/autowrap/ConversionProvider.py
+++ b/autowrap/ConversionProvider.py
@@ -78,7 +78,7 @@ class ConverterRegistry(object):
self.lookup = defaultdict(list)
- self.names_of_wrapper_classes = instance_mapping.keys()
+ self.names_of_wrapper_classes = list(instance_mapping.keys())
self.names_of_wrapper_classes += ["const %s" % k for k in instance_mapping.keys()]
self.names_of_classes_to_wrap = names_of_classes_to_wrap
self.names_of_enums_to_wrap = names_of_enums_to_wrap
diff --git a/autowrap/version.py b/autowrap/version.py
index 1af718b..4cf278d 100644
--- a/autowrap/version.py
+++ b/autowrap/version.py
@@ -31,7 +31,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""
import pkg_resources
-__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
+#__version__ = tuple(map(int, pkg_resources.require(__package__)[0].version.split(".")))
+__version__ = (0,5,1)
+
# for compatibility to older version:
version = __version__
then it all works:
$ py.test-3.2 tests/
====================================================== test session starts =======================================================
platform linux2 -- Python 3.2.3 -- py-1.4.26 -- pytest-2.6.4
collected 69 items
tests/import_test.py .
tests/test_code.py .
tests/test_code_generator.py .....
tests/test_cython_build_process.py ..
tests/test_decl_resolver.py ........................
tests/test_main.py ..
tests/test_pxd_parser.py ........................
tests/test_types.py .....
tests/test_utils.py .....
=================================================== 69 passed in 29.39 seconds ===================================================
from autowrap.
ok, version 0.6.0 is out now, you should find it on PyPI too.
from autowrap.
Related Issues (20)
- [Typing] Remaining mini issues
- 22.9 chokes on templated vector HOT 6
- Overloaded method docstrings don't indent properly HOT 1
- Use inheritance instead of assignment for "attached" classes
- Re-evaluate default docstrings HOT 1
- Typehint issues
- Evaluate if wrapping functions that accept std::function (callbacks) are easily possible
- named parameters possible? HOT 2
- Do not use list as pair replacement, since list cannot be heterogenously typed
- How to handle unnamed parameters in typestubs
- Remove all python2 special handling cases
- ConversionProviders for libcpp_container[libcpp_*_string, *] not picked up -> Careful with typing
- Autoapply reformating in CI?
- release-autowrap.yaml need updating
- Adapt docstring generation regarding inheritance
- [Typestubs] Declare classes that implement iterators as Iterable
- add wrap-return-self to change default behavior from returning a copy to a reference HOT 1
- Rewrite generation of _get_item_
- Generate __str__ and __repr__
- Multiline comment parsing update breaks things HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from autowrap.