In [ ]:
!cd ~ && git clone https://github.com/timkpaine/paperboy.git
Cloning into 'paperboy'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 3388 (delta 3), reused 3 (delta 0), pack-reused 3367
Receiving objects: 100% (3388/3388), 12.04 MiB | 22.38 MiB/s, done.
Resolving deltas: 100% (2277/2277), done.
In [ ]:
%%bash
cd ~/paperboy/
sudo -E npm install
sudo -E npm run build
sudo -E pip install -e .
In [ ]:
!sudo -E python -m paperboy
CRITICAL:root:Using SQL backend
CRITICAL:root:Using SQL auth
CRITICAL:root:Using dummy scheduler
[2019-10-13 18:36:29 +0900] [2696] [INFO] Starting gunicorn 19.9.0
[2019-10-13 18:36:29 +0900] [2696] [INFO] Listening at: http://0.0.0.0:8080 (2696)
[2019-10-13 18:36:29 +0900] [2696] [INFO] Using worker: sync
[2019-10-13 18:36:29 +0900] [2701] [INFO] Booting worker with pid: 2701
CRITICAL:root:Storing user sheng_wei eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjEiLCJuYW1lIjoic2hlbmdfd2VpIn0.oKJsYgZJaj1dLoVR8JgTjfPGp2O8bf3jqmoRux1bNgw 1
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:Storing notebook <Notebook(name='TEST', user='<User(name='sheng_wei')>', privacy='public', level='production'>
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 0 - 0
[2019-10-13 18:43:59 +0900] [2701] [ERROR] Error handling request /api/v1/jobs?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/job.py", line 21, in on_post
    resp.body = json.dumps(self.db.jobs.store(req.context['user'], req.params, self.session, self.scheduler))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/job.py", line 42, in store
    nb_sql = session.query(NotebookSQL).get(int(justid(notebookid)))
ValueError: invalid literal for int() with base 10: 'attachment.ipynb'
[2019-10-13 18:44:22 +0900] [2701] [ERROR] Error handling request /api/v1/jobs?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/job.py", line 21, in on_post
    resp.body = json.dumps(self.db.jobs.store(req.context['user'], req.params, self.session, self.scheduler))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/job.py", line 42, in store
    nb_sql = session.query(NotebookSQL).get(int(justid(notebookid)))
ValueError: invalid literal for int() with base 10: 'attachment.ipynb'
[2019-10-13 18:44:23 +0900] [2701] [ERROR] Error handling request /api/v1/jobs?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/job.py", line 21, in on_post
    resp.body = json.dumps(self.db.jobs.store(req.context['user'], req.params, self.session, self.scheduler))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/job.py", line 42, in store
    nb_sql = session.query(NotebookSQL).get(int(justid(notebookid)))
ValueError: invalid literal for int() with base 10: 'attachment.ipynb'
[2019-10-13 18:44:23 +0900] [2701] [ERROR] Error handling request /api/v1/jobs?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/job.py", line 21, in on_post
    resp.body = json.dumps(self.db.jobs.store(req.context['user'], req.params, self.session, self.scheduler))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/job.py", line 42, in store
    nb_sql = session.query(NotebookSQL).get(int(justid(notebookid)))
ValueError: invalid literal for int() with base 10: 'attachment.ipynb'
[2019-10-13 18:44:23 +0900] [2701] [ERROR] Error handling request /api/v1/jobs?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/job.py", line 21, in on_post
    resp.body = json.dumps(self.db.jobs.store(req.context['user'], req.params, self.session, self.scheduler))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/job.py", line 42, in store
    nb_sql = session.query(NotebookSQL).get(int(justid(notebookid)))
ValueError: invalid literal for int() with base 10: 'attachment.ipynb'
CRITICAL:root:Storing job <Job(name='TEST', user='<User(name='sheng_wei')>', notebook='<Notebook(name='TEST', user='<User(name='sheng_wei')>', privacy='public', level='production'>', start='2019-10-13 09:37:00', interval='minutely'>
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 1 - 1
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 1 - 1
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 1 - 1
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:detail : 1, result : <Job(name='TEST', user='<User(name='sheng_wei')>', notebook='<Notebook(name='TEST', user='<User(name='sheng_wei')>', privacy='public', level='production'>', start='2019-10-13 09:37:00', interval='minutely'>
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 1 - 1
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 1 - 1
CRITICAL:root:detail : 1, result : <Job(name='TEST', user='<User(name='sheng_wei')>', notebook='<Notebook(name='TEST', user='<User(name='sheng_wei')>', privacy='public', level='production'>', start='2019-10-13 09:37:00', interval='minutely'>
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 1 - 1
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 1 - 1
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:detail : 1, result : <Notebook(name='TEST', user='<User(name='sheng_wei')>', privacy='public', level='production'>
CRITICAL:root:Storing notebook <Notebook(name='BQ', user='<User(name='sheng_wei')>', privacy='public', level='production'>
CRITICAL:root:detail : 2, result : <Notebook(name='BQ', user='<User(name='sheng_wei')>', privacy='public', level='production'>
[2019-10-13 18:54:20 +0900] [2701] [ERROR] Error handling request /api/v1/jobs?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/job.py", line 21, in on_post
    resp.body = json.dumps(self.db.jobs.store(req.context['user'], req.params, self.session, self.scheduler))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/job.py", line 42, in store
    nb_sql = session.query(NotebookSQL).get(int(justid(notebookid)))
ValueError: invalid literal for int() with base 10: 'BQ'
[2019-10-13 18:54:35 +0900] [2701] [ERROR] Error handling request /api/v1/jobs?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/job.py", line 21, in on_post
    resp.body = json.dumps(self.db.jobs.store(req.context['user'], req.params, self.session, self.scheduler))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/job.py", line 42, in store
    nb_sql = session.query(NotebookSQL).get(int(justid(notebookid)))
ValueError: invalid literal for int() with base 10: 'BQ'
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 2 - 2
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 2 - 2
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 2 - 2
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 2 - 2
CRITICAL:root:detail : 2, result : <Notebook(name='BQ', user='<User(name='sheng_wei')>', privacy='public', level='production'>
CRITICAL:root:Storing job <Job(name='BQ', user='<User(name='sheng_wei')>', notebook='<Notebook(name='BQ', user='<User(name='sheng_wei')>', privacy='public', level='production'>', start='2019-10-13 09:51:00', interval='minutely'>
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 2 - 2
CRITICAL:root:detail : 2, result : <Job(name='BQ', user='<User(name='sheng_wei')>', notebook='<Notebook(name='BQ', user='<User(name='sheng_wei')>', privacy='public', level='production'>', start='2019-10-13 09:51:00', interval='minutely'>
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
[2019-10-13 18:59:11 +0900] [2696] [CRITICAL] WORKER TIMEOUT (pid:2701)
[2019-10-13 18:59:11 +0900] [2701] [INFO] Worker exiting (pid: 2701)
[2019-10-13 18:59:11 +0900] [2863] [INFO] Booting worker with pid: 2863
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 2 - 2
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 2 - 2
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
CRITICAL:root:detail : 2, result : <Job(name='BQ', user='<User(name='sheng_wei')>', notebook='<Notebook(name='BQ', user='<User(name='sheng_wei')>', privacy='public', level='production'>', start='2019-10-13 09:51:00', interval='minutely'>
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 2 - 2
[2019-10-13 19:01:55 +0900] [2863] [ERROR] Error handling request /api/v1/reports?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/report.py", line 21, in on_post
    resp.body = json.dumps(self.db.reports.store(req.context['user'], req.params, self.session))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/report.py", line 50, in store
    jb_sql = session.query(JobSQL).get(int(justid(jobid)))
ValueError: invalid literal for int() with base 10: 'BQ'
[2019-10-13 19:01:57 +0900] [2863] [ERROR] Error handling request /api/v1/reports?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/report.py", line 21, in on_post
    resp.body = json.dumps(self.db.reports.store(req.context['user'], req.params, self.session))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/report.py", line 50, in store
    jb_sql = session.query(JobSQL).get(int(justid(jobid)))
ValueError: invalid literal for int() with base 10: 'BQ'
[2019-10-13 19:01:57 +0900] [2863] [ERROR] Error handling request /api/v1/reports?action=save
Traceback (most recent call last):
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/opt/tljh/user/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/opt/tljh/user/lib/python3.6/site-packages/falcon/api.py", line 244, in __call__
    responder(req, resp, **params)
  File "/home/jupyter-sheng_wei/paperboy/paperboy/resources/report.py", line 21, in on_post
    resp.body = json.dumps(self.db.reports.store(req.context['user'], req.params, self.session))
  File "/home/jupyter-sheng_wei/paperboy/paperboy/storage/sqla/report.py", line 50, in store
    jb_sql = session.query(JobSQL).get(int(justid(jobid)))
ValueError: invalid literal for int() with base 10: 'BQ'
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.notebook.NotebookSQL'>, result : 2 - 2
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.job.JobSQL'>, result : 2 - 2
CRITICAL:root:list : <class 'paperboy.storage.sqla.models.report.ReportSQL'>, result : 0 - 0
^C
[2019-10-13 19:02:42 +0900] [2696] [INFO] Handling signal: int
[2019-10-13 19:02:42 +0900] [2863] [INFO] Worker exiting (pid: 2863)

The versions of dependencies are too low. There are too many bugs.

It seems that the maintenance of PaperBoy has been stopped.

Well. Maybe I can reuse some of the codes.

But I found a new Jupyter Dashboard used by PaperBoy.

Comments

2019-10-13