Previously, when trying to import an example into the flow editor on
Windows, the load attempt would fail with an HTTP 404 error in the
browser client, with a `TypeError: path must be absolute or specify
root to res.sendFile` error being written to the Node-RED log. This was
due to the path being passed to the `res.sendFile` function not being
fully-qualified (for example, `\Users\myuser\...\example.json`).
With the changes in this commit, the path to the example file is
resolved to a fully-qualified path before being passed into the
`res.sendFile` call. For example, a path on Windows of
`\Users\myuser\...\example.json` would be transformed to
`C:\\Users\\myuser\\...\\example.json` before being passed along to the
`sendFile` function. This change allows the file to be loaded and sent
properly to the browser client and for the embedded flows in the example
to be loaded in the flow editor.
* Make pending Flag to be deleted after write process complete.
* Prevent executing write process until the previous process is completed
* Fix to prevent file write race condition when closing file context
* Make flushing rerun if pendingWrites was added
For nodes that get/set context, when multiple stores are configured
they will not know to parse the store name from the key. So they
will pass the store name in the key, such as #:(store)::key.
Currently that will cause that full string to be used as the key
and the default context store used - which is wrong.
The code now parses out the store name from the key if it is set -
athough if the call to get/set does include the store argument, it
will take precedence.
This only applies when the key is a string - it doesn't apply when
an array of keys is provided.
d3.event.buttons is not as widely supported as I thought. Can
change this one instance as it is inside a click handler so
d3.event.button will be defined instead
If a module is found both locally and globally installed, the local
copy will take precedence. This will allow a user to upgrade a
node module that they may not otherwise be able to touch
- Added some more checks around this.
- We're choosing to only use the latest message when sending, which is
effectively what was happening before the queue implementation.
* __raw_input()__ was removed in Python 3 in favor of __input()__
* Fix __sleep()__ to match the import on line 22
[flake8](http://flake8.pycqa.org) testing of https://github.com/node-red/node-red on Python 3.7.0
$ __flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics__
```
./nodes/core/hardware/nrgpio.py:45:24: F821 undefined name 'raw_input'
data = raw_input()
^
./nodes/core/hardware/nrgpio.py:63:24: F821 undefined name 'raw_input'
data = raw_input()
^
./nodes/core/hardware/nrgpio.py:85:24: F821 undefined name 'raw_input'
data = raw_input()
^
./nodes/core/hardware/nrgpio.py:120:24: F821 undefined name 'raw_input'
data = raw_input()
^
./nodes/core/hardware/nrgpio.py:134:24: F821 undefined name 'raw_input'
data = raw_input()
^
./nodes/core/hardware/nrgpio.py:164:24: F821 undefined name 'raw_input'
data = raw_input()
^
./nodes/core/hardware/nrgpio.py:201:17: F821 undefined name 'time'
time.sleep(10)
^
7 F821 undefined name 'raw_input'
7
```
@dceejay