Go is an open-source language with builtin primitives to easily handle concurrency.
Python is the de facto glue language in science.
More and more analyses are written in Python with performance hotspots being rewritten in
What if we could leverage the concurrency features of
This is the goal of the gopy tool.
gopy takes a
Go package, inspects it and generates
C code to wrap it with the
This is a process that is made relatively straightforward thanks to the high level constructs of
Go and its standard libraries to inspect
Go code (mainly
gopy only generates wrappers for
The science ecosystem is finally migrating to
gopy needs to support this migration.
This project intends to modify the code generation mechanism to generate (pure Python)
cffi code so that
Go packages can be used from
CPython (2 and 3),
Go (>=1.6)and a
gopyunit tests to this new mechanism
errorand make them pythonic (raising an
gopy command that can generate wrapping code (using
cffi) for the current set of unit tests of
Go >= 1.5.
Go language, Python language, git.