Use a (mostly) hermetic Python interpreter
It still requires python to be installed on the host to run the wrapper
scripts, but it's close to being fully hermetic.
This also requires/enables the following changes, unfortunately all at
the same time:
* Use a downloaded f2py
* Use a downloaded scipy/numpy/matplotlib
* Fix a few things that don't run with the python version in their #!
* Stop using bazel-generated __init__.py files, because those interfere
with importing matplotlib nicely
Change-Id: Ife280464613d67cece9587b7d947f0b1d5466d7e
diff --git a/y2016/control_loops/BUILD b/y2016/control_loops/BUILD
new file mode 100644
index 0000000..de3bfeb
--- /dev/null
+++ b/y2016/control_loops/BUILD
@@ -0,0 +1,6 @@
+py_library(
+ name = "python_init",
+ srcs = ["__init__.py"],
+ visibility = ["//visibility:public"],
+ deps = ["//y2016:python_init"],
+)
diff --git a/y2016/control_loops/__init__.py b/y2016/control_loops/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/y2016/control_loops/__init__.py
diff --git a/y2016/control_loops/python/BUILD b/y2016/control_loops/python/BUILD
index d2a5905..adb3150 100644
--- a/y2016/control_loops/python/BUILD
+++ b/y2016/control_loops/python/BUILD
@@ -1,156 +1,184 @@
-package(default_visibility = ['//y2016:__subpackages__'])
+package(default_visibility = ["//y2016:__subpackages__"])
py_binary(
- name = 'drivetrain',
- srcs = [
- 'drivetrain.py',
- ],
- deps = [
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:drivetrain',
- ],
- restricted_to = ['//tools:k8'],
+ name = "drivetrain",
+ srcs = [
+ "drivetrain.py",
+ ],
+ legacy_create_init = False,
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":python_init",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:drivetrain",
+ ],
)
py_binary(
- name = 'polydrivetrain',
- srcs = [
- 'polydrivetrain.py',
- 'drivetrain.py',
- ],
- deps = [
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:polydrivetrain',
- ],
- restricted_to = ['//tools:k8'],
+ name = "polydrivetrain",
+ srcs = [
+ "drivetrain.py",
+ "polydrivetrain.py",
+ ],
+ legacy_create_init = False,
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":python_init",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:polydrivetrain",
+ ],
)
py_library(
- name = 'polydrivetrain_lib',
- srcs = [
- 'polydrivetrain.py',
- 'drivetrain.py',
- ],
- deps = [
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- ],
- restricted_to = ['//tools:k8'],
+ name = "polydrivetrain_lib",
+ srcs = [
+ "drivetrain.py",
+ "polydrivetrain.py",
+ ],
+ restricted_to = ["//tools:k8"],
+ deps = [
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ ],
)
py_binary(
- name = 'shooter',
- srcs = [
- 'shooter.py',
- ],
- deps = [
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- ],
- restricted_to = ['//tools:k8'],
+ name = "shooter",
+ srcs = [
+ "shooter.py",
+ ],
+ legacy_create_init = False,
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":python_init",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ "@matplotlib",
+ ],
)
py_binary(
- name = 'intake',
- srcs = [
- 'intake.py',
- ],
- deps = [
- '//aos/common/util:py_trapezoid_profile',
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- ],
- restricted_to = ['//tools:k8'],
+ name = "intake",
+ srcs = [
+ "intake.py",
+ ],
+ legacy_create_init = False,
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":python_init",
+ "//aos/common/util:py_trapezoid_profile",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ "@matplotlib",
+ ],
)
py_binary(
- name = 'shoulder',
- srcs = [
- 'shoulder.py',
- ],
- deps = [
- '//aos/common/util:py_trapezoid_profile',
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- ],
- restricted_to = ['//tools:k8'],
+ name = "shoulder",
+ srcs = [
+ "shoulder.py",
+ ],
+ legacy_create_init = False,
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":python_init",
+ "//aos/common/util:py_trapezoid_profile",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ "@matplotlib",
+ ],
)
py_binary(
- name = 'wrist',
- srcs = [
- 'wrist.py',
- ],
- deps = [
- '//aos/common/util:py_trapezoid_profile',
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- ],
- restricted_to = ['//tools:k8'],
+ name = "wrist",
+ srcs = [
+ "wrist.py",
+ ],
+ legacy_create_init = False,
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":python_init",
+ "//aos/common/util:py_trapezoid_profile",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ "@matplotlib",
+ ],
)
py_library(
- name = 'wrist_lib',
- srcs = [
- 'wrist.py',
- ],
- deps = [
- '//aos/common/util:py_trapezoid_profile',
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- ],
- restricted_to = ['//tools:k8'],
+ name = "wrist_lib",
+ srcs = [
+ "wrist.py",
+ ],
+ restricted_to = ["//tools:k8"],
+ deps = [
+ "//aos/common/util:py_trapezoid_profile",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ ],
)
py_library(
- name = 'shoulder_lib',
- srcs = [
- 'shoulder.py',
- ],
- deps = [
- '//aos/common/util:py_trapezoid_profile',
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- ],
- restricted_to = ['//tools:k8'],
+ name = "shoulder_lib",
+ srcs = [
+ "shoulder.py",
+ ],
+ restricted_to = ["//tools:k8"],
+ deps = [
+ "//aos/common/util:py_trapezoid_profile",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ "@matplotlib",
+ ],
)
py_library(
- name = 'arm_lib',
- srcs = [
- 'arm.py',
- ],
- deps = [
- ':wrist_lib',
- ':shoulder_lib',
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- '//aos/common/util:py_trapezoid_profile',
- ],
- restricted_to = ['//tools:k8'],
+ name = "arm_lib",
+ srcs = [
+ "arm.py",
+ ],
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":shoulder_lib",
+ ":wrist_lib",
+ "//aos/common/util:py_trapezoid_profile",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ "@matplotlib",
+ ],
)
+
py_binary(
- name = 'arm',
- srcs = [
- 'arm.py',
- ],
- deps = [
- ':wrist_lib',
- ':shoulder_lib',
- '//external:python-gflags',
- '//external:python-glog',
- '//frc971/control_loops/python:controls',
- '//aos/common/util:py_trapezoid_profile',
- ],
- restricted_to = ['//tools:k8'],
+ name = "arm",
+ srcs = [
+ "arm.py",
+ ],
+ legacy_create_init = False,
+ restricted_to = ["//tools:k8"],
+ deps = [
+ ":python_init",
+ ":shoulder_lib",
+ ":wrist_lib",
+ "//aos/common/util:py_trapezoid_profile",
+ "//external:python-gflags",
+ "//external:python-glog",
+ "//frc971/control_loops/python:controls",
+ ],
+)
+
+py_library(
+ name = "python_init",
+ srcs = ["__init__.py"],
+ visibility = ["//visibility:public"],
+ deps = ["//y2016/control_loops:python_init"],
)
diff --git a/y2016/control_loops/python/__init__.py b/y2016/control_loops/python/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/y2016/control_loops/python/__init__.py
diff --git a/y2016/control_loops/python/intake.py b/y2016/control_loops/python/intake.py
index d99160d..02c1ada 100755
--- a/y2016/control_loops/python/intake.py
+++ b/y2016/control_loops/python/intake.py
@@ -5,7 +5,6 @@
from frc971.control_loops.python import controls
import numpy
import sys
-import matplotlib
from matplotlib import pylab
import gflags
import glog
diff --git a/y2016/control_loops/python/wrist.py b/y2016/control_loops/python/wrist.py
index f08f1a2..6de8551 100755
--- a/y2016/control_loops/python/wrist.py
+++ b/y2016/control_loops/python/wrist.py
@@ -4,7 +4,6 @@
from frc971.control_loops.python import controls
import numpy
import sys
-import matplotlib
from matplotlib import pylab
import gflags
import glog