Open melund opened 6 years ago
Good point, will patch this tonight when I get home :+1:
@ryantam626 That would be great. I am sure it would work then.
Hello! Apologies for the delay, got caught up with other stuff :frowning:
09b34723abfb1c7120d7f33003c7b384333555cb should fix it now, you can probably do pip install https://github.com/ryantam626/jupyterlab_black/archive/master.zip
again to grab it :+1:
Let me know if it still doesn't work for you (I can only test with my Linux machines at the moment)
No problem. I still get an error though. Looks like there are two issues at play, but it is late here and I am too tired to dive into it right now. But here is the traceback for reference:
[I 23:09:50.486 LabApp] Build is up to date
[I 23:09:51.430 LabApp] Kernel started: 4ad21ed2-dcec-4fec-9f00-09804210dbb5
[I 23:09:53.165 LabApp] Adapting to protocol v5.1 for kernel 4ad21ed2-dcec-4fec-9f00-09804210dbb5
[I 23:09:53.166 LabApp] Adapting to protocol v5.1 for kernel 4ad21ed2-dcec-4fec-9f00-09804210dbb5
C:/Users/mel/anaconda3/python.exe: can't open file 'C:\Users\mel\AppData\Local\Temp\tmpbhiyrr0u': [Errno 13] Permission denied
[E 23:10:01.548 LabApp] {
"Host": "localhost:8888",
"Connection": "keep-alive",
"Content-Length": "245",
"Authorization": "token a4d07ee6e2eafaada5505e23d590a54784f92cf2ebdfe33b",
"Origin": "http://localhost:8888",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
"Content-Type": "application/json",
"Accept": "*/*",
"Referer": "http://localhost:8888/lab",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "da-DK,da;q=0.9,en-DK;q=0.8,en;q=0.7,en-US;q=0.6",
"Cookie": "_xsrf=2|79b9938f|7c699e97e3b5bdee56707a51dd633955|1536130147; username-localhost-8889=\"2|1:0|10:1536301346|23:username-localhost-8889|44:YmNkMDQ1ZDNlZWFmNGE2MTk5MGI4MmY5NmI5NjUyNzQ=|6ac5ca7d28af0515e042887b5ed5b320620ee49e3a22b0c7048f02dd88213105\"; username-localhost-8888=\"2|1:0|10:1537218600|23:username-localhost-8888|44:YTY3MWRiZDYyOTk2NDE2OThjNTdkNWRlYWJiZGI5NDY=|b7a9c59c57e2f18997e802daeeeac1c567a102aa6c2025a607c51de5e76e1147\""
}
[E 23:10:01.555 LabApp] 500 POST /jupyterlab_black/format?1537218601386 (::1) 158.98ms referer=http://localhost:8888/lab
[E 23:10:01.558 LabApp] Uncaught exception POST /jupyterlab_black/format?1537218601386 (::1)
HTTPServerRequest(protocol='http', host='localhost:8888', method='POST', uri='/jupyterlab_black/format?1537218601386', version='HTTP/1.1', remote_ip='::1')
Traceback (most recent call last):
File "C:\Users\mel\anaconda3\envs\ipython\lib\site-packages\tornado\web.py", line 1590, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "C:\Users\mel\anaconda3\envs\ipython\lib\site-packages\jupyterlab_black\handlers.py", line 65, in post
self.finish(json.dumps(formatted))
File "C:\Users\mel\anaconda3\envs\ipython\lib\site-packages\notebook\base\handlers.py", line 603, in finish
return super(APIHandler, self).finish(*args, **kwargs)
File "C:\Users\mel\anaconda3\envs\ipython\lib\site-packages\tornado\web.py", line 1022, in finish
raise RuntimeError("finish() called twice")
RuntimeError: finish() called twice
You can safe ignore RuntimeError: finish() called twice
- this is due to me not understanding how tornado works ☹️
The Permission denied
thing is the issue here - this doesn't look trivial to solve, with the way how access permissions is decided in the files tempfile
generated in Windows 🤔 need a little think about this hmm..
@ryantam626 There is a Gotcha in the Python docs for NamedTemporaryFile()
.
Whether the name can be used to open the file a second time, while the named temporary file is still open, varies across platforms (it can be so used on Unix; it cannot on Windows NT or later).
Maybe the best option is to use tempfile.TemporaryDirectory
or temp.mkdtemp
to create a directory and then create theworker
and formatter
files in there. That should workaround the problem.
not work
The formatter doesn't work on Windows.
It would probably work if it used tempfile from the standard lib instead of relying on "/tmp/" always being present.
I get the following when running the formatter: