Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Adding drag_value to Slider - #888

Merged
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2
Dec 14, 2020
Merged

Adding drag_value to Slider#888
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2

Conversation

@almarklein

@almarkleinalmarklein commented Dec 1, 2020

Copy link
Copy Markdown
Contributor

closes#107, replaces #884

This is an attempt to add a drag_value property to the Slider, such that different callbacks can be applied to the slider being dragged, and the slider being released, as proposed in #107.

Disclaimer: I am not yet familiar with the codebase of this repo, so I just tried to update the new property where the value property was updated.

Todo:

  • The value is initially undefined, and I'm not sure how to initialize it to the same value as value.
  • Also implement this for RangeSlider.
  • update the docstring for updatemode to incorporate the new prop.
  • RangeSlicer should be updated to use the same approach as Slicer.
  • Tests.
  • More docs.

Script to test this:

importdashimportdash_html_componentsashtmlimportdash_core_componentsasdccfromdash.dependenciesimportInput, Output, Stateapp=dash.Dash(__name__, update_title=None)
app.layout=html.Div(
[
#dcc.Slider(id='slider', min=100, max=200, value=150),dcc.RangeSlider(id='slider', min=100, max=200, value=(133, 166)),
html.Br(),
html.Div(id='drag_value', children="drag_value:"),
html.Div(id='value', children="value:"),
]
)
counts= {"drag_value": 0, "value": 0}
@app.callback(Output("drag_value", "children"), [Input("slider", "drag_value")],)defshow_slider_drag_value(v):
counts["drag_value"] +=1returnf"drag_value: {v} ({counts['drag_value']})"@app.callback(Output("value", "children"), [Input("slider", "value")],)defshow_slider_value(v):
counts["value"] +=1returnf"value: {v} ({counts['value']})"if__name__=="__main__":
app.run_server(debug=True)

Comment threadsrc/components/Slider.react.js Outdated
Co-authored-by: Alex Johnson <johnson.alex.c@gmail.com>
@alexcjohnson

alexcjohnson commented Dec 8, 2020

Copy link
Copy Markdown
Collaborator

@almarklein this PR is looking good! Seems like mainly it just needs a test or two added to test_sliders.py. That may be a bit tricky to get right, but seems like the test app would have a callback on both value and drag_value, then the test would require ActionChains like what we have for click_at_coord_fractions and presumably using click_and_hold then move_by_offset, then waiting for the right results to appear (and not appear) on the page, finally release and waiting for the other result to appear on the page.

Comment threadsrc/fragments/Slider.react.js Outdated
@almarklein

Copy link
Copy Markdown
ContributorAuthor

I refactored the code for the Slider a bit based on your suggestions. Using slider.value as an output now also updates slider.drag_value. This works fine locally (both in an example, and when running the test), but so far I have can't get CI working. Could you have a look at the current changes in fragments/Slider.react.js, and see if I am possibly missing something?

I have not updated the RangeSlider yet, not added a test for it, let's first get the slider working ...

@almarklein

Copy link
Copy Markdown
ContributorAuthor

BTW, with assert dash_dcc.find_element("#out-drag-value").text == "You have dragged 5" I got to see the actual value: "You have dragged None".

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson@almarklein I think the problem here is that the branch is out-of-date 1.13.0https://github.com/almarklein/dash-core-components/blob/drag_value2/package.json#L3 and the current version is 1.14.1. Updating the branch will probably fix the tests.

You can see in the Run Integration Tests step of test-37 that the installed version of DCC is 1.14.1

Name: dash-core-components
Version: 1.14.1
Summary: Core component suite for Dash
Home-page: UNKNOWN
Author: Chris Parmer <chris@plotly.com>
Author-email: chris@plotly.com
License: MIT
Location: /home/circleci/project/venv/lib/python3.7/site-packages
Requires: Required-by: dash

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Ah, so perhaps installing dash caused it to go fetch the published dcc 1.14.1 rather than use the source in this branch, because it listed a lower version number? I'm still confused by this, because even in the build-dash step on your merge commit I see it downloading a published version of dcc

Collecting dash-core-components==1.14.1 (from dash==1.18.1)
Downloading https://files.pythonhosted.org/packages/0f/ab/5ffeeed41117383d02485f5b9204dcfaa074bfbb3ff2559afac7b904ad5c/dash_core_components-1.14.1.tar.gz (3.5MB)

So how do I know we're not using that version (other than that the test passes? Is there some way we could definitively check at the beginning of the test that the version of this repo that we're running is precisely the intended commit? Or set this up in a more robust way so this issue can't recur?

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson Not sure about that. It's that way because we use the tarball from the previous build step -- in other repos we simply do pip install -e . and so the error would be more obvious.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

Wow, thanks @Marc-Andre-Rivet !

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson I think we could simply pip uninstall dash-core-components -y before installing the local build and see it 💥 if misaligned.

@almarklein

almarklein commented Dec 11, 2020

Copy link
Copy Markdown
ContributorAuthor

🎆 Ready from my end.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

About documentation, I think we'd need to add an example to the docs at the dash-docs repo, right?

Comment threadtests/integration/sliders/test_sliders.py
Comment threadtests/integration/sliders/test_sliders.py

@alexcjohnsonalexcjohnson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! 💃

Yes, the final step will be to add an example in dash-docs.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to have different Outputs react on either a 'drag' or 'mouseup' for a single Slider

3 participants

@almarklein@alexcjohnson@Marc-Andre-Rivet
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Adding drag_value to Slider by almarklein · Pull Request #888 · plotly/dash-core-components · GitHub
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Adding drag_value to Slider - #888

Merged
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2
Dec 14, 2020
Merged

Adding drag_value to Slider#888
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2

Conversation

@almarklein

@almarkleinalmarklein commented Dec 1, 2020

Copy link
Copy Markdown
Contributor

closes#107, replaces #884

This is an attempt to add a drag_value property to the Slider, such that different callbacks can be applied to the slider being dragged, and the slider being released, as proposed in #107.

Disclaimer: I am not yet familiar with the codebase of this repo, so I just tried to update the new property where the value property was updated.

Todo:

  • The value is initially undefined, and I'm not sure how to initialize it to the same value as value.
  • Also implement this for RangeSlider.
  • update the docstring for updatemode to incorporate the new prop.
  • RangeSlicer should be updated to use the same approach as Slicer.
  • Tests.
  • More docs.

Script to test this:

importdashimportdash_html_componentsashtmlimportdash_core_componentsasdccfromdash.dependenciesimportInput, Output, Stateapp=dash.Dash(__name__, update_title=None)
app.layout=html.Div(
[
#dcc.Slider(id='slider', min=100, max=200, value=150),dcc.RangeSlider(id='slider', min=100, max=200, value=(133, 166)),
html.Br(),
html.Div(id='drag_value', children="drag_value:"),
html.Div(id='value', children="value:"),
]
)
counts= {"drag_value": 0, "value": 0}
@app.callback(Output("drag_value", "children"), [Input("slider", "drag_value")],)defshow_slider_drag_value(v):
counts["drag_value"] +=1returnf"drag_value: {v} ({counts['drag_value']})"@app.callback(Output("value", "children"), [Input("slider", "value")],)defshow_slider_value(v):
counts["value"] +=1returnf"value: {v} ({counts['value']})"if__name__=="__main__":
app.run_server(debug=True)

Comment threadsrc/components/Slider.react.js Outdated
Co-authored-by: Alex Johnson <johnson.alex.c@gmail.com>
@alexcjohnson

alexcjohnson commented Dec 8, 2020

Copy link
Copy Markdown
Collaborator

@almarklein this PR is looking good! Seems like mainly it just needs a test or two added to test_sliders.py. That may be a bit tricky to get right, but seems like the test app would have a callback on both value and drag_value, then the test would require ActionChains like what we have for click_at_coord_fractions and presumably using click_and_hold then move_by_offset, then waiting for the right results to appear (and not appear) on the page, finally release and waiting for the other result to appear on the page.

Comment threadsrc/fragments/Slider.react.js Outdated
@almarklein

Copy link
Copy Markdown
ContributorAuthor

I refactored the code for the Slider a bit based on your suggestions. Using slider.value as an output now also updates slider.drag_value. This works fine locally (both in an example, and when running the test), but so far I have can't get CI working. Could you have a look at the current changes in fragments/Slider.react.js, and see if I am possibly missing something?

I have not updated the RangeSlider yet, not added a test for it, let's first get the slider working ...

@almarklein

Copy link
Copy Markdown
ContributorAuthor

BTW, with assert dash_dcc.find_element("#out-drag-value").text == "You have dragged 5" I got to see the actual value: "You have dragged None".

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson@almarklein I think the problem here is that the branch is out-of-date 1.13.0https://github.com/almarklein/dash-core-components/blob/drag_value2/package.json#L3 and the current version is 1.14.1. Updating the branch will probably fix the tests.

You can see in the Run Integration Tests step of test-37 that the installed version of DCC is 1.14.1

Name: dash-core-components
Version: 1.14.1
Summary: Core component suite for Dash
Home-page: UNKNOWN
Author: Chris Parmer <chris@plotly.com>
Author-email: chris@plotly.com
License: MIT
Location: /home/circleci/project/venv/lib/python3.7/site-packages
Requires: Required-by: dash

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Ah, so perhaps installing dash caused it to go fetch the published dcc 1.14.1 rather than use the source in this branch, because it listed a lower version number? I'm still confused by this, because even in the build-dash step on your merge commit I see it downloading a published version of dcc

Collecting dash-core-components==1.14.1 (from dash==1.18.1)
Downloading https://files.pythonhosted.org/packages/0f/ab/5ffeeed41117383d02485f5b9204dcfaa074bfbb3ff2559afac7b904ad5c/dash_core_components-1.14.1.tar.gz (3.5MB)

So how do I know we're not using that version (other than that the test passes? Is there some way we could definitively check at the beginning of the test that the version of this repo that we're running is precisely the intended commit? Or set this up in a more robust way so this issue can't recur?

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson Not sure about that. It's that way because we use the tarball from the previous build step -- in other repos we simply do pip install -e . and so the error would be more obvious.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

Wow, thanks @Marc-Andre-Rivet !

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson I think we could simply pip uninstall dash-core-components -y before installing the local build and see it 💥 if misaligned.

@almarklein

almarklein commented Dec 11, 2020

Copy link
Copy Markdown
ContributorAuthor

🎆 Ready from my end.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

About documentation, I think we'd need to add an example to the docs at the dash-docs repo, right?

Comment threadtests/integration/sliders/test_sliders.py
Comment threadtests/integration/sliders/test_sliders.py

@alexcjohnsonalexcjohnson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! 💃

Yes, the final step will be to add an example in dash-docs.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to have different Outputs react on either a 'drag' or 'mouseup' for a single Slider

3 participants

@almarklein@alexcjohnson@Marc-Andre-Rivet
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Adding drag_value to Slider by almarklein · Pull Request #888 · plotly/dash-core-components · GitHub
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Adding drag_value to Slider - #888

Merged
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2
Dec 14, 2020
Merged

Adding drag_value to Slider#888
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2

Conversation

@almarklein

@almarkleinalmarklein commented Dec 1, 2020

Copy link
Copy Markdown
Contributor

closes#107, replaces #884

This is an attempt to add a drag_value property to the Slider, such that different callbacks can be applied to the slider being dragged, and the slider being released, as proposed in #107.

Disclaimer: I am not yet familiar with the codebase of this repo, so I just tried to update the new property where the value property was updated.

Todo:

  • The value is initially undefined, and I'm not sure how to initialize it to the same value as value.
  • Also implement this for RangeSlider.
  • update the docstring for updatemode to incorporate the new prop.
  • RangeSlicer should be updated to use the same approach as Slicer.
  • Tests.
  • More docs.

Script to test this:

importdashimportdash_html_componentsashtmlimportdash_core_componentsasdccfromdash.dependenciesimportInput, Output, Stateapp=dash.Dash(__name__, update_title=None)
app.layout=html.Div(
[
#dcc.Slider(id='slider', min=100, max=200, value=150),dcc.RangeSlider(id='slider', min=100, max=200, value=(133, 166)),
html.Br(),
html.Div(id='drag_value', children="drag_value:"),
html.Div(id='value', children="value:"),
]
)
counts= {"drag_value": 0, "value": 0}
@app.callback(Output("drag_value", "children"), [Input("slider", "drag_value")],)defshow_slider_drag_value(v):
counts["drag_value"] +=1returnf"drag_value: {v} ({counts['drag_value']})"@app.callback(Output("value", "children"), [Input("slider", "value")],)defshow_slider_value(v):
counts["value"] +=1returnf"value: {v} ({counts['value']})"if__name__=="__main__":
app.run_server(debug=True)

Comment threadsrc/components/Slider.react.js Outdated
Co-authored-by: Alex Johnson <johnson.alex.c@gmail.com>
@alexcjohnson

alexcjohnson commented Dec 8, 2020

Copy link
Copy Markdown
Collaborator

@almarklein this PR is looking good! Seems like mainly it just needs a test or two added to test_sliders.py. That may be a bit tricky to get right, but seems like the test app would have a callback on both value and drag_value, then the test would require ActionChains like what we have for click_at_coord_fractions and presumably using click_and_hold then move_by_offset, then waiting for the right results to appear (and not appear) on the page, finally release and waiting for the other result to appear on the page.

Comment threadsrc/fragments/Slider.react.js Outdated
@almarklein

Copy link
Copy Markdown
ContributorAuthor

I refactored the code for the Slider a bit based on your suggestions. Using slider.value as an output now also updates slider.drag_value. This works fine locally (both in an example, and when running the test), but so far I have can't get CI working. Could you have a look at the current changes in fragments/Slider.react.js, and see if I am possibly missing something?

I have not updated the RangeSlider yet, not added a test for it, let's first get the slider working ...

@almarklein

Copy link
Copy Markdown
ContributorAuthor

BTW, with assert dash_dcc.find_element("#out-drag-value").text == "You have dragged 5" I got to see the actual value: "You have dragged None".

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson@almarklein I think the problem here is that the branch is out-of-date 1.13.0https://github.com/almarklein/dash-core-components/blob/drag_value2/package.json#L3 and the current version is 1.14.1. Updating the branch will probably fix the tests.

You can see in the Run Integration Tests step of test-37 that the installed version of DCC is 1.14.1

Name: dash-core-components
Version: 1.14.1
Summary: Core component suite for Dash
Home-page: UNKNOWN
Author: Chris Parmer <chris@plotly.com>
Author-email: chris@plotly.com
License: MIT
Location: /home/circleci/project/venv/lib/python3.7/site-packages
Requires: Required-by: dash

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Ah, so perhaps installing dash caused it to go fetch the published dcc 1.14.1 rather than use the source in this branch, because it listed a lower version number? I'm still confused by this, because even in the build-dash step on your merge commit I see it downloading a published version of dcc

Collecting dash-core-components==1.14.1 (from dash==1.18.1)
Downloading https://files.pythonhosted.org/packages/0f/ab/5ffeeed41117383d02485f5b9204dcfaa074bfbb3ff2559afac7b904ad5c/dash_core_components-1.14.1.tar.gz (3.5MB)

So how do I know we're not using that version (other than that the test passes? Is there some way we could definitively check at the beginning of the test that the version of this repo that we're running is precisely the intended commit? Or set this up in a more robust way so this issue can't recur?

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson Not sure about that. It's that way because we use the tarball from the previous build step -- in other repos we simply do pip install -e . and so the error would be more obvious.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

Wow, thanks @Marc-Andre-Rivet !

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson I think we could simply pip uninstall dash-core-components -y before installing the local build and see it 💥 if misaligned.

@almarklein

almarklein commented Dec 11, 2020

Copy link
Copy Markdown
ContributorAuthor

🎆 Ready from my end.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

About documentation, I think we'd need to add an example to the docs at the dash-docs repo, right?

Comment threadtests/integration/sliders/test_sliders.py
Comment threadtests/integration/sliders/test_sliders.py

@alexcjohnsonalexcjohnson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! 💃

Yes, the final step will be to add an example in dash-docs.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to have different Outputs react on either a 'drag' or 'mouseup' for a single Slider

3 participants

@almarklein@alexcjohnson@Marc-Andre-Rivet
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Adding drag_value to Slider by almarklein · Pull Request #888 · plotly/dash-core-components · GitHub
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Adding drag_value to Slider - #888

Merged
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2
Dec 14, 2020
Merged

Adding drag_value to Slider#888
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2

Conversation

@almarklein

@almarkleinalmarklein commented Dec 1, 2020

Copy link
Copy Markdown
Contributor

closes#107, replaces #884

This is an attempt to add a drag_value property to the Slider, such that different callbacks can be applied to the slider being dragged, and the slider being released, as proposed in #107.

Disclaimer: I am not yet familiar with the codebase of this repo, so I just tried to update the new property where the value property was updated.

Todo:

  • The value is initially undefined, and I'm not sure how to initialize it to the same value as value.
  • Also implement this for RangeSlider.
  • update the docstring for updatemode to incorporate the new prop.
  • RangeSlicer should be updated to use the same approach as Slicer.
  • Tests.
  • More docs.

Script to test this:

importdashimportdash_html_componentsashtmlimportdash_core_componentsasdccfromdash.dependenciesimportInput, Output, Stateapp=dash.Dash(__name__, update_title=None)
app.layout=html.Div(
[
#dcc.Slider(id='slider', min=100, max=200, value=150),dcc.RangeSlider(id='slider', min=100, max=200, value=(133, 166)),
html.Br(),
html.Div(id='drag_value', children="drag_value:"),
html.Div(id='value', children="value:"),
]
)
counts= {"drag_value": 0, "value": 0}
@app.callback(Output("drag_value", "children"), [Input("slider", "drag_value")],)defshow_slider_drag_value(v):
counts["drag_value"] +=1returnf"drag_value: {v} ({counts['drag_value']})"@app.callback(Output("value", "children"), [Input("slider", "value")],)defshow_slider_value(v):
counts["value"] +=1returnf"value: {v} ({counts['value']})"if__name__=="__main__":
app.run_server(debug=True)

Comment threadsrc/components/Slider.react.js Outdated
Co-authored-by: Alex Johnson <johnson.alex.c@gmail.com>
@alexcjohnson

alexcjohnson commented Dec 8, 2020

Copy link
Copy Markdown
Collaborator

@almarklein this PR is looking good! Seems like mainly it just needs a test or two added to test_sliders.py. That may be a bit tricky to get right, but seems like the test app would have a callback on both value and drag_value, then the test would require ActionChains like what we have for click_at_coord_fractions and presumably using click_and_hold then move_by_offset, then waiting for the right results to appear (and not appear) on the page, finally release and waiting for the other result to appear on the page.

Comment threadsrc/fragments/Slider.react.js Outdated
@almarklein

Copy link
Copy Markdown
ContributorAuthor

I refactored the code for the Slider a bit based on your suggestions. Using slider.value as an output now also updates slider.drag_value. This works fine locally (both in an example, and when running the test), but so far I have can't get CI working. Could you have a look at the current changes in fragments/Slider.react.js, and see if I am possibly missing something?

I have not updated the RangeSlider yet, not added a test for it, let's first get the slider working ...

@almarklein

Copy link
Copy Markdown
ContributorAuthor

BTW, with assert dash_dcc.find_element("#out-drag-value").text == "You have dragged 5" I got to see the actual value: "You have dragged None".

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson@almarklein I think the problem here is that the branch is out-of-date 1.13.0https://github.com/almarklein/dash-core-components/blob/drag_value2/package.json#L3 and the current version is 1.14.1. Updating the branch will probably fix the tests.

You can see in the Run Integration Tests step of test-37 that the installed version of DCC is 1.14.1

Name: dash-core-components
Version: 1.14.1
Summary: Core component suite for Dash
Home-page: UNKNOWN
Author: Chris Parmer <chris@plotly.com>
Author-email: chris@plotly.com
License: MIT
Location: /home/circleci/project/venv/lib/python3.7/site-packages
Requires: Required-by: dash

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Ah, so perhaps installing dash caused it to go fetch the published dcc 1.14.1 rather than use the source in this branch, because it listed a lower version number? I'm still confused by this, because even in the build-dash step on your merge commit I see it downloading a published version of dcc

Collecting dash-core-components==1.14.1 (from dash==1.18.1)
Downloading https://files.pythonhosted.org/packages/0f/ab/5ffeeed41117383d02485f5b9204dcfaa074bfbb3ff2559afac7b904ad5c/dash_core_components-1.14.1.tar.gz (3.5MB)

So how do I know we're not using that version (other than that the test passes? Is there some way we could definitively check at the beginning of the test that the version of this repo that we're running is precisely the intended commit? Or set this up in a more robust way so this issue can't recur?

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson Not sure about that. It's that way because we use the tarball from the previous build step -- in other repos we simply do pip install -e . and so the error would be more obvious.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

Wow, thanks @Marc-Andre-Rivet !

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson I think we could simply pip uninstall dash-core-components -y before installing the local build and see it 💥 if misaligned.

@almarklein

almarklein commented Dec 11, 2020

Copy link
Copy Markdown
ContributorAuthor

🎆 Ready from my end.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

About documentation, I think we'd need to add an example to the docs at the dash-docs repo, right?

Comment threadtests/integration/sliders/test_sliders.py
Comment threadtests/integration/sliders/test_sliders.py

@alexcjohnsonalexcjohnson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! 💃

Yes, the final step will be to add an example in dash-docs.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to have different Outputs react on either a 'drag' or 'mouseup' for a single Slider

3 participants

@almarklein@alexcjohnson@Marc-Andre-Rivet
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Adding drag_value to Slider by almarklein · Pull Request #888 · plotly/dash-core-components · GitHub
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Adding drag_value to Slider - #888

Merged
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2
Dec 14, 2020
Merged

Adding drag_value to Slider#888
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2

Conversation

@almarklein

@almarkleinalmarklein commented Dec 1, 2020

Copy link
Copy Markdown
Contributor

closes#107, replaces #884

This is an attempt to add a drag_value property to the Slider, such that different callbacks can be applied to the slider being dragged, and the slider being released, as proposed in #107.

Disclaimer: I am not yet familiar with the codebase of this repo, so I just tried to update the new property where the value property was updated.

Todo:

  • The value is initially undefined, and I'm not sure how to initialize it to the same value as value.
  • Also implement this for RangeSlider.
  • update the docstring for updatemode to incorporate the new prop.
  • RangeSlicer should be updated to use the same approach as Slicer.
  • Tests.
  • More docs.

Script to test this:

importdashimportdash_html_componentsashtmlimportdash_core_componentsasdccfromdash.dependenciesimportInput, Output, Stateapp=dash.Dash(__name__, update_title=None)
app.layout=html.Div(
[
#dcc.Slider(id='slider', min=100, max=200, value=150),dcc.RangeSlider(id='slider', min=100, max=200, value=(133, 166)),
html.Br(),
html.Div(id='drag_value', children="drag_value:"),
html.Div(id='value', children="value:"),
]
)
counts= {"drag_value": 0, "value": 0}
@app.callback(Output("drag_value", "children"), [Input("slider", "drag_value")],)defshow_slider_drag_value(v):
counts["drag_value"] +=1returnf"drag_value: {v} ({counts['drag_value']})"@app.callback(Output("value", "children"), [Input("slider", "value")],)defshow_slider_value(v):
counts["value"] +=1returnf"value: {v} ({counts['value']})"if__name__=="__main__":
app.run_server(debug=True)

Comment threadsrc/components/Slider.react.js Outdated
Co-authored-by: Alex Johnson <johnson.alex.c@gmail.com>
@alexcjohnson

alexcjohnson commented Dec 8, 2020

Copy link
Copy Markdown
Collaborator

@almarklein this PR is looking good! Seems like mainly it just needs a test or two added to test_sliders.py. That may be a bit tricky to get right, but seems like the test app would have a callback on both value and drag_value, then the test would require ActionChains like what we have for click_at_coord_fractions and presumably using click_and_hold then move_by_offset, then waiting for the right results to appear (and not appear) on the page, finally release and waiting for the other result to appear on the page.

Comment threadsrc/fragments/Slider.react.js Outdated
@almarklein

Copy link
Copy Markdown
ContributorAuthor

I refactored the code for the Slider a bit based on your suggestions. Using slider.value as an output now also updates slider.drag_value. This works fine locally (both in an example, and when running the test), but so far I have can't get CI working. Could you have a look at the current changes in fragments/Slider.react.js, and see if I am possibly missing something?

I have not updated the RangeSlider yet, not added a test for it, let's first get the slider working ...

@almarklein

Copy link
Copy Markdown
ContributorAuthor

BTW, with assert dash_dcc.find_element("#out-drag-value").text == "You have dragged 5" I got to see the actual value: "You have dragged None".

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson@almarklein I think the problem here is that the branch is out-of-date 1.13.0https://github.com/almarklein/dash-core-components/blob/drag_value2/package.json#L3 and the current version is 1.14.1. Updating the branch will probably fix the tests.

You can see in the Run Integration Tests step of test-37 that the installed version of DCC is 1.14.1

Name: dash-core-components
Version: 1.14.1
Summary: Core component suite for Dash
Home-page: UNKNOWN
Author: Chris Parmer <chris@plotly.com>
Author-email: chris@plotly.com
License: MIT
Location: /home/circleci/project/venv/lib/python3.7/site-packages
Requires: Required-by: dash

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Ah, so perhaps installing dash caused it to go fetch the published dcc 1.14.1 rather than use the source in this branch, because it listed a lower version number? I'm still confused by this, because even in the build-dash step on your merge commit I see it downloading a published version of dcc

Collecting dash-core-components==1.14.1 (from dash==1.18.1)
Downloading https://files.pythonhosted.org/packages/0f/ab/5ffeeed41117383d02485f5b9204dcfaa074bfbb3ff2559afac7b904ad5c/dash_core_components-1.14.1.tar.gz (3.5MB)

So how do I know we're not using that version (other than that the test passes? Is there some way we could definitively check at the beginning of the test that the version of this repo that we're running is precisely the intended commit? Or set this up in a more robust way so this issue can't recur?

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson Not sure about that. It's that way because we use the tarball from the previous build step -- in other repos we simply do pip install -e . and so the error would be more obvious.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

Wow, thanks @Marc-Andre-Rivet !

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson I think we could simply pip uninstall dash-core-components -y before installing the local build and see it 💥 if misaligned.

@almarklein

almarklein commented Dec 11, 2020

Copy link
Copy Markdown
ContributorAuthor

🎆 Ready from my end.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

About documentation, I think we'd need to add an example to the docs at the dash-docs repo, right?

Comment threadtests/integration/sliders/test_sliders.py
Comment threadtests/integration/sliders/test_sliders.py

@alexcjohnsonalexcjohnson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! 💃

Yes, the final step will be to add an example in dash-docs.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to have different Outputs react on either a 'drag' or 'mouseup' for a single Slider

3 participants

@almarklein@alexcjohnson@Marc-Andre-Rivet
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Adding drag_value to Slider by almarklein · Pull Request #888 · plotly/dash-core-components · GitHub
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Adding drag_value to Slider - #888

Merged
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2
Dec 14, 2020
Merged

Adding drag_value to Slider#888
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2

Conversation

@almarklein

@almarkleinalmarklein commented Dec 1, 2020

Copy link
Copy Markdown
Contributor

closes#107, replaces #884

This is an attempt to add a drag_value property to the Slider, such that different callbacks can be applied to the slider being dragged, and the slider being released, as proposed in #107.

Disclaimer: I am not yet familiar with the codebase of this repo, so I just tried to update the new property where the value property was updated.

Todo:

  • The value is initially undefined, and I'm not sure how to initialize it to the same value as value.
  • Also implement this for RangeSlider.
  • update the docstring for updatemode to incorporate the new prop.
  • RangeSlicer should be updated to use the same approach as Slicer.
  • Tests.
  • More docs.

Script to test this:

importdashimportdash_html_componentsashtmlimportdash_core_componentsasdccfromdash.dependenciesimportInput, Output, Stateapp=dash.Dash(__name__, update_title=None)
app.layout=html.Div(
[
#dcc.Slider(id='slider', min=100, max=200, value=150),dcc.RangeSlider(id='slider', min=100, max=200, value=(133, 166)),
html.Br(),
html.Div(id='drag_value', children="drag_value:"),
html.Div(id='value', children="value:"),
]
)
counts= {"drag_value": 0, "value": 0}
@app.callback(Output("drag_value", "children"), [Input("slider", "drag_value")],)defshow_slider_drag_value(v):
counts["drag_value"] +=1returnf"drag_value: {v} ({counts['drag_value']})"@app.callback(Output("value", "children"), [Input("slider", "value")],)defshow_slider_value(v):
counts["value"] +=1returnf"value: {v} ({counts['value']})"if__name__=="__main__":
app.run_server(debug=True)

Comment threadsrc/components/Slider.react.js Outdated
Co-authored-by: Alex Johnson <johnson.alex.c@gmail.com>
@alexcjohnson

alexcjohnson commented Dec 8, 2020

Copy link
Copy Markdown
Collaborator

@almarklein this PR is looking good! Seems like mainly it just needs a test or two added to test_sliders.py. That may be a bit tricky to get right, but seems like the test app would have a callback on both value and drag_value, then the test would require ActionChains like what we have for click_at_coord_fractions and presumably using click_and_hold then move_by_offset, then waiting for the right results to appear (and not appear) on the page, finally release and waiting for the other result to appear on the page.

Comment threadsrc/fragments/Slider.react.js Outdated
@almarklein

Copy link
Copy Markdown
ContributorAuthor

I refactored the code for the Slider a bit based on your suggestions. Using slider.value as an output now also updates slider.drag_value. This works fine locally (both in an example, and when running the test), but so far I have can't get CI working. Could you have a look at the current changes in fragments/Slider.react.js, and see if I am possibly missing something?

I have not updated the RangeSlider yet, not added a test for it, let's first get the slider working ...

@almarklein

Copy link
Copy Markdown
ContributorAuthor

BTW, with assert dash_dcc.find_element("#out-drag-value").text == "You have dragged 5" I got to see the actual value: "You have dragged None".

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson@almarklein I think the problem here is that the branch is out-of-date 1.13.0https://github.com/almarklein/dash-core-components/blob/drag_value2/package.json#L3 and the current version is 1.14.1. Updating the branch will probably fix the tests.

You can see in the Run Integration Tests step of test-37 that the installed version of DCC is 1.14.1

Name: dash-core-components
Version: 1.14.1
Summary: Core component suite for Dash
Home-page: UNKNOWN
Author: Chris Parmer <chris@plotly.com>
Author-email: chris@plotly.com
License: MIT
Location: /home/circleci/project/venv/lib/python3.7/site-packages
Requires: Required-by: dash

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Ah, so perhaps installing dash caused it to go fetch the published dcc 1.14.1 rather than use the source in this branch, because it listed a lower version number? I'm still confused by this, because even in the build-dash step on your merge commit I see it downloading a published version of dcc

Collecting dash-core-components==1.14.1 (from dash==1.18.1)
Downloading https://files.pythonhosted.org/packages/0f/ab/5ffeeed41117383d02485f5b9204dcfaa074bfbb3ff2559afac7b904ad5c/dash_core_components-1.14.1.tar.gz (3.5MB)

So how do I know we're not using that version (other than that the test passes? Is there some way we could definitively check at the beginning of the test that the version of this repo that we're running is precisely the intended commit? Or set this up in a more robust way so this issue can't recur?

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson Not sure about that. It's that way because we use the tarball from the previous build step -- in other repos we simply do pip install -e . and so the error would be more obvious.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

Wow, thanks @Marc-Andre-Rivet !

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson I think we could simply pip uninstall dash-core-components -y before installing the local build and see it 💥 if misaligned.

@almarklein

almarklein commented Dec 11, 2020

Copy link
Copy Markdown
ContributorAuthor

🎆 Ready from my end.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

About documentation, I think we'd need to add an example to the docs at the dash-docs repo, right?

Comment threadtests/integration/sliders/test_sliders.py
Comment threadtests/integration/sliders/test_sliders.py

@alexcjohnsonalexcjohnson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! 💃

Yes, the final step will be to add an example in dash-docs.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to have different Outputs react on either a 'drag' or 'mouseup' for a single Slider

3 participants

@almarklein@alexcjohnson@Marc-Andre-Rivet
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Adding drag_value to Slider by almarklein · Pull Request #888 · plotly/dash-core-components · GitHub
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Adding drag_value to Slider - #888

Merged
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2
Dec 14, 2020
Merged

Adding drag_value to Slider#888
alexcjohnson merged 24 commits into
plotly:devfrom
almarklein:drag_value2

Conversation

@almarklein

@almarkleinalmarklein commented Dec 1, 2020

Copy link
Copy Markdown
Contributor

closes#107, replaces #884

This is an attempt to add a drag_value property to the Slider, such that different callbacks can be applied to the slider being dragged, and the slider being released, as proposed in #107.

Disclaimer: I am not yet familiar with the codebase of this repo, so I just tried to update the new property where the value property was updated.

Todo:

  • The value is initially undefined, and I'm not sure how to initialize it to the same value as value.
  • Also implement this for RangeSlider.
  • update the docstring for updatemode to incorporate the new prop.
  • RangeSlicer should be updated to use the same approach as Slicer.
  • Tests.
  • More docs.

Script to test this:

importdashimportdash_html_componentsashtmlimportdash_core_componentsasdccfromdash.dependenciesimportInput, Output, Stateapp=dash.Dash(__name__, update_title=None)
app.layout=html.Div(
[
#dcc.Slider(id='slider', min=100, max=200, value=150),dcc.RangeSlider(id='slider', min=100, max=200, value=(133, 166)),
html.Br(),
html.Div(id='drag_value', children="drag_value:"),
html.Div(id='value', children="value:"),
]
)
counts= {"drag_value": 0, "value": 0}
@app.callback(Output("drag_value", "children"), [Input("slider", "drag_value")],)defshow_slider_drag_value(v):
counts["drag_value"] +=1returnf"drag_value: {v} ({counts['drag_value']})"@app.callback(Output("value", "children"), [Input("slider", "value")],)defshow_slider_value(v):
counts["value"] +=1returnf"value: {v} ({counts['value']})"if__name__=="__main__":
app.run_server(debug=True)

Comment threadsrc/components/Slider.react.js Outdated
Co-authored-by: Alex Johnson <johnson.alex.c@gmail.com>
@alexcjohnson

alexcjohnson commented Dec 8, 2020

Copy link
Copy Markdown
Collaborator

@almarklein this PR is looking good! Seems like mainly it just needs a test or two added to test_sliders.py. That may be a bit tricky to get right, but seems like the test app would have a callback on both value and drag_value, then the test would require ActionChains like what we have for click_at_coord_fractions and presumably using click_and_hold then move_by_offset, then waiting for the right results to appear (and not appear) on the page, finally release and waiting for the other result to appear on the page.

Comment threadsrc/fragments/Slider.react.js Outdated
@almarklein

Copy link
Copy Markdown
ContributorAuthor

I refactored the code for the Slider a bit based on your suggestions. Using slider.value as an output now also updates slider.drag_value. This works fine locally (both in an example, and when running the test), but so far I have can't get CI working. Could you have a look at the current changes in fragments/Slider.react.js, and see if I am possibly missing something?

I have not updated the RangeSlider yet, not added a test for it, let's first get the slider working ...

@almarklein

Copy link
Copy Markdown
ContributorAuthor

BTW, with assert dash_dcc.find_element("#out-drag-value").text == "You have dragged 5" I got to see the actual value: "You have dragged None".

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson@almarklein I think the problem here is that the branch is out-of-date 1.13.0https://github.com/almarklein/dash-core-components/blob/drag_value2/package.json#L3 and the current version is 1.14.1. Updating the branch will probably fix the tests.

You can see in the Run Integration Tests step of test-37 that the installed version of DCC is 1.14.1

Name: dash-core-components
Version: 1.14.1
Summary: Core component suite for Dash
Home-page: UNKNOWN
Author: Chris Parmer <chris@plotly.com>
Author-email: chris@plotly.com
License: MIT
Location: /home/circleci/project/venv/lib/python3.7/site-packages
Requires: Required-by: dash

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Ah, so perhaps installing dash caused it to go fetch the published dcc 1.14.1 rather than use the source in this branch, because it listed a lower version number? I'm still confused by this, because even in the build-dash step on your merge commit I see it downloading a published version of dcc

Collecting dash-core-components==1.14.1 (from dash==1.18.1)
Downloading https://files.pythonhosted.org/packages/0f/ab/5ffeeed41117383d02485f5b9204dcfaa074bfbb3ff2559afac7b904ad5c/dash_core_components-1.14.1.tar.gz (3.5MB)

So how do I know we're not using that version (other than that the test passes? Is there some way we could definitively check at the beginning of the test that the version of this repo that we're running is precisely the intended commit? Or set this up in a more robust way so this issue can't recur?

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson Not sure about that. It's that way because we use the tarball from the previous build step -- in other repos we simply do pip install -e . and so the error would be more obvious.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

Wow, thanks @Marc-Andre-Rivet !

@Marc-Andre-Rivet

Copy link
Copy Markdown
Contributor

@alexcjohnson I think we could simply pip uninstall dash-core-components -y before installing the local build and see it 💥 if misaligned.

@almarklein

almarklein commented Dec 11, 2020

Copy link
Copy Markdown
ContributorAuthor

🎆 Ready from my end.

@almarklein

Copy link
Copy Markdown
ContributorAuthor

About documentation, I think we'd need to add an example to the docs at the dash-docs repo, right?

Comment threadtests/integration/sliders/test_sliders.py
Comment threadtests/integration/sliders/test_sliders.py

@alexcjohnsonalexcjohnson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! 💃

Yes, the final step will be to add an example in dash-docs.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to have different Outputs react on either a 'drag' or 'mouseup' for a single Slider

3 participants

@almarklein@alexcjohnson@Marc-Andre-Rivet