From 72446127b21f3c9a3d07102da48c8f5c5d9d3270 Mon Sep 17 00:00:00 2001 From: dayfine <26423504+dayfine@users.noreply.github.com> Date: Mon, 20 Apr 2020 22:18:34 -0700 Subject: [PATCH] set up running local jupyter server that can be connected to colab --- README.md | 2 +- WORKSPACE | 23 +++++++---- requirements.in | 6 +++ requirements.txt | 65 +++++++++++++++++++++++++++++-- xlab/colab/BUILD | 24 ++++++++++++ xlab/colab/start_local_runtime.py | 3 ++ xlab/colab/start_local_runtime.sh | 5 +++ xlab/data/providers/BUILD | 2 +- xlab/data/scripts/BUILD | 2 +- xlab/data/store/BUILD | 2 +- xlab/data/store/in_memory/BUILD | 2 +- xlab/data/store/textproto/BUILD | 2 +- xlab/net/http/BUILD | 2 +- xlab/net/proto/BUILD | 2 +- xlab/util/status/BUILD | 2 +- 15 files changed, 123 insertions(+), 21 deletions(-) create mode 100644 requirements.in create mode 100644 xlab/colab/BUILD create mode 100644 xlab/colab/start_local_runtime.py create mode 100644 xlab/colab/start_local_runtime.sh diff --git a/README.md b/README.md index 23561c8..56d3c09 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# xlab \ No newline at end of file +# xlab diff --git a/WORKSPACE b/WORKSPACE index d9617c1..f04fe19 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -35,6 +35,15 @@ http_archive( ], ) +rules_python_external_version = "0.1.5" + +http_archive( + name = "rules_python_external", + sha256 = "bc655e6d402915944e014c3b2cad23d0a97b83a66cc22f20db09c9f8da2e2789", + strip_prefix = "rules_python_external-{version}".format(version = rules_python_external_version), + url = "https://github.com/dillon-giacoppo/rules_python_external/archive/v{version}.zip".format(version = rules_python_external_version), +) + load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") protobuf_deps() @@ -58,15 +67,13 @@ load("@rules_python//python:repositories.bzl", "py_repositories") py_repositories() # Only needed if using the packaging rules. -load("@rules_python//python:pip.bzl", "pip3_import", "pip_repositories") +load("@rules_python_external//:repositories.bzl", "rules_python_external_dependencies") -pip_repositories() +rules_python_external_dependencies() -pip3_import( - name = "remote_deps", +load("@rules_python_external//:defs.bzl", "pip_install") + +pip_install( + name = "py_deps", requirements = "//:requirements.txt", ) - -load("@remote_deps//:requirements.bzl", "pip_install") - -pip_install() diff --git a/requirements.in b/requirements.in new file mode 100644 index 0000000..f31ec0c --- /dev/null +++ b/requirements.in @@ -0,0 +1,6 @@ +absl-py>=0.9.0 +jupyter_http_over_ws==0.0.8 +notebook>=6.0.0 +pandas==1.0.1 +protobuf==3.11.3 +requests==2.23.0 diff --git a/requirements.txt b/requirements.txt index cb89227..a90e762 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,61 @@ -absl-py>=0.9.0 -pandas==1.0.1 -protobuf==3.11.3 -requests==2.23.0 +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile requirements.in +# +absl-py==0.9.0 # via -r requirements.in +appnope==0.1.0 # via ipykernel, ipython +attrs==19.3.0 # via jsonschema +backcall==0.1.0 # via ipython +bleach==3.1.4 # via nbconvert +certifi==2020.4.5.1 # via requests +chardet==3.0.4 # via requests +decorator==4.4.2 # via ipython, traitlets +defusedxml==0.6.0 # via nbconvert +entrypoints==0.3 # via nbconvert +idna==2.9 # via requests +importlib-metadata==1.6.0 # via jsonschema +ipykernel==5.2.1 # via notebook +ipython-genutils==0.2.0 # via nbformat, notebook, traitlets +ipython==7.13.0 # via ipykernel +jedi==0.17.0 # via ipython +jinja2==2.11.2 # via nbconvert, notebook +jsonschema==3.2.0 # via nbformat +jupyter-client==6.1.3 # via ipykernel, notebook +jupyter-core==4.6.3 # via jupyter-client, nbconvert, nbformat, notebook +jupyter_http_over_ws==0.0.8 # via -r requirements.in +markupsafe==1.1.1 # via jinja2 +mistune==0.8.4 # via nbconvert +nbconvert==5.6.1 # via notebook +nbformat==5.0.6 # via nbconvert, notebook +notebook==6.0.3 # via -r requirements.in, jupyter-http-over-ws +numpy==1.18.3 # via pandas +pandas==1.0.1 # via -r requirements.in +pandocfilters==1.4.2 # via nbconvert +parso==0.7.0 # via jedi +pexpect==4.8.0 # via ipython +pickleshare==0.7.5 # via ipython +prometheus-client==0.7.1 # via notebook +prompt-toolkit==3.0.5 # via ipython +protobuf==3.11.3 # via -r requirements.in +ptyprocess==0.6.0 # via pexpect, terminado +pygments==2.6.1 # via ipython, nbconvert +pyrsistent==0.16.0 # via jsonschema +python-dateutil==2.8.1 # via jupyter-client, pandas +pytz==2019.3 # via pandas +pyzmq==19.0.0 # via jupyter-client, notebook +requests==2.23.0 # via -r requirements.in +send2trash==1.5.0 # via notebook +six==1.14.0 # via absl-py, bleach, jsonschema, jupyter-http-over-ws, protobuf, pyrsistent, python-dateutil, traitlets +terminado==0.8.3 # via notebook +testpath==0.4.4 # via nbconvert +tornado==6.0.4 # via ipykernel, jupyter-client, jupyter-http-over-ws, notebook, terminado +traitlets==4.3.3 # via ipykernel, ipython, jupyter-client, jupyter-core, nbconvert, nbformat, notebook +urllib3==1.25.9 # via requests +wcwidth==0.1.9 # via prompt-toolkit +webencodings==0.5.1 # via bleach +zipp==3.1.0 # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/xlab/colab/BUILD b/xlab/colab/BUILD new file mode 100644 index 0000000..8e44c70 --- /dev/null +++ b/xlab/colab/BUILD @@ -0,0 +1,24 @@ +load("@rules_python//python:defs.bzl", "py_binary", "py_library") +load("@py_deps//:requirements.bzl", "requirement") + +package(default_visibility = ["//xlab:internal"]) + +py_binary( + name = "start_local_runtime", + srcs = ["start_local_runtime.py"], + srcs_version = "PY3", + deps = [ + ":notebook_deps", + requirement("jupyter_http_over_ws"), + requirement("notebook"), + ], +) + +py_library( + name = "notebook_deps", + srcs_version = "PY3", + deps = [ + "//xlab/data/providers:iex", + "//xlab/util/status:errors", + ], +) diff --git a/xlab/colab/start_local_runtime.py b/xlab/colab/start_local_runtime.py new file mode 100644 index 0000000..2213b95 --- /dev/null +++ b/xlab/colab/start_local_runtime.py @@ -0,0 +1,3 @@ +from notebook.notebookapp import main + +main() diff --git a/xlab/colab/start_local_runtime.sh b/xlab/colab/start_local_runtime.sh new file mode 100644 index 0000000..3a780f4 --- /dev/null +++ b/xlab/colab/start_local_runtime.sh @@ -0,0 +1,5 @@ +# https://research.google.com/colaboratory/local-runtimes.html +bazel run //xlab/colab:start_local_runtime -- \ + --NotebookApp.allow_origin='https://colab.research.google.com' \ + --port=8888 \ + --NotebookApp.port_retries=0 diff --git a/xlab/data/providers/BUILD b/xlab/data/providers/BUILD index 2a23641..02283ce 100644 --- a/xlab/data/providers/BUILD +++ b/xlab/data/providers/BUILD @@ -1,5 +1,5 @@ load("@rules_python//python:defs.bzl", "py_library", "py_test") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"]) diff --git a/xlab/data/scripts/BUILD b/xlab/data/scripts/BUILD index e17b0ee..de69fd0 100644 --- a/xlab/data/scripts/BUILD +++ b/xlab/data/scripts/BUILD @@ -1,5 +1,5 @@ load("@rules_python//python:defs.bzl", "py_binary") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"]) diff --git a/xlab/data/store/BUILD b/xlab/data/store/BUILD index d074ac1..6573036 100644 --- a/xlab/data/store/BUILD +++ b/xlab/data/store/BUILD @@ -1,5 +1,5 @@ load("@rules_python//python:defs.bzl", "py_library", "py_test") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"]) diff --git a/xlab/data/store/in_memory/BUILD b/xlab/data/store/in_memory/BUILD index 6cbe8e9..3f23f0a 100644 --- a/xlab/data/store/in_memory/BUILD +++ b/xlab/data/store/in_memory/BUILD @@ -1,5 +1,5 @@ load("@rules_python//python:defs.bzl", "py_library", "py_test") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"]) diff --git a/xlab/data/store/textproto/BUILD b/xlab/data/store/textproto/BUILD index a0e0bb9..ddd1995 100644 --- a/xlab/data/store/textproto/BUILD +++ b/xlab/data/store/textproto/BUILD @@ -1,5 +1,5 @@ load("@rules_python//python:defs.bzl", "py_library", "py_test") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"]) diff --git a/xlab/net/http/BUILD b/xlab/net/http/BUILD index f376812..8cf27d4 100644 --- a/xlab/net/http/BUILD +++ b/xlab/net/http/BUILD @@ -1,5 +1,5 @@ load("@rules_python//python:defs.bzl", "py_library") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"]) diff --git a/xlab/net/proto/BUILD b/xlab/net/proto/BUILD index b7f5604..dce3f5a 100644 --- a/xlab/net/proto/BUILD +++ b/xlab/net/proto/BUILD @@ -1,5 +1,5 @@ load("@rules_python//python:defs.bzl", "py_library") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"]) diff --git a/xlab/util/status/BUILD b/xlab/util/status/BUILD index 30ff9fc..a78ec82 100644 --- a/xlab/util/status/BUILD +++ b/xlab/util/status/BUILD @@ -1,7 +1,7 @@ load("@rules_proto//proto:defs.bzl", "proto_library") load("@rules_python//python:defs.bzl", "py_library", "py_test") load("@com_github_grpc_grpc//bazel:python_rules.bzl", "py_proto_library") -load("@remote_deps//:requirements.bzl", "requirement") +load("@py_deps//:requirements.bzl", "requirement") package(default_visibility = ["//xlab:internal"])