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

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

@rpkyle@nicolaskruchten@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

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

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

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

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

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

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

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

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

@rpkyle@nicolaskruchten@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

@rpkyle@nicolaskruchten@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Update R dashCoreComponents package to 0.42.1 - #411

Closed
rpkyle wants to merge 13 commits into
masterfrom
R2
Closed

Update R dashCoreComponents package to 0.42.1#411
rpkyle wants to merge 13 commits into
masterfrom
R2

Conversation

@rpkyle

@rpkylerpkyle commented Dec 7, 2018

Copy link
Copy Markdown
Contributor

The JSON >> R 'transpiler' has been rewritten in Python, and was used to generate an installable R package for version 0.42.1 of dash-core-components.

@nicolaskruchten@T4rk1n

@rpkylerpkyle mentioned this pull request Dec 7, 2018
Comment threadpackage.json
"uninstall-local": "pip uninstall dash-core-components -y",
"build:js": "webpack --mode production",
"build:js-dev": "webpack --mode development",
"build:r": "node ./extract-meta src/components > dash_core_components/metadata.json && cp package.json dash_core_components && npm run generate-python-classes && npm run generate-r-classes",

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.

Does generate-r-classes actually require generate-python-classes to be run first? regardless, the extract-meta and cp package.json parts are going to be shared so I wonder if we just want to have one command build:backend or something that does both languages (and any others we add later)? And use that in build:all (which is currently an exact copy of prepublish but perhaps shouldn't be cc plotly/dash-html-components#83)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Sorry for not replying to these comments late last month; when I last spoke with @nicolaskruchten and @T4rk1n about component generation in Python vs. R, I believe we decided that support for the latter remains experimental.

Currently this requires setting the --r-prefix flag when calling dash-generate-components, but we could eventually remove the flag and generate both at once.

It does (for now) require that the Python classes are generated first, since JS dependency information is sourced from __init__.py and the R package version number from version.py.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remind me again why the R transpiler gets the version info from a generated Python file? I know we've talked about this before but I don't recall.

@rpkylerpkyleJan 16, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Realized I had already provided the same reply previously, which didn't really answer your question. I seem to remember talking with Philippe about this, and he suggested reading these data from js_dist in __init__.py, though we don't have to do it this way.

Comment threadman/coreChecklist.Rd Outdated

\item{id}{}
}

No newline at end of file

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.

There is inconsistent whitespace at the end of these .Rd files, as well as trailing whitespace on some of the blank lines above. Can we get rid of these?

Comment threaddash_core_components/_imports_.py Outdated
"Textarea",
"Upload"
"Tabs",
"Slider"

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.

These were sorted before, now they're not. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK, I've looked into this. The reshuffled order isn't present when cloning the repo, but occurs after running dash-generate-components ./src/components/ dash-core-components, with or without the --r-prefix.

It seems to be outside of the R component generation methods, but I might be mistaken.

@T4rk1n@rmarren1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's the case, we should make a separate PR that commits that batch of changes, so we can review/approve the Python and R changes separately :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@nicolaskruchten Good call; I'll see if I can do just that, and will cross-reference here for posterity.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@alexcjohnson By commenting about this change, you revealed two distantly related issues that should be addressed. Thanks -- talking with @rmarren1, this is probably related to swapping out _get_metadata for json.loads, and inadvertently not using an OrderedDict anymore.

I'm going to verify this, will then open PR for Dash if true, and link back to here.

Comment threaddash_core_components/Upload.py Outdated
self._valid_wildcard_attributes = []
self.available_events = []
self.available_properties = ['children', 'id', 'contents', 'filename', 'last_modified', 'accept', 'disabled', 'disable_click', 'max_size', 'min_size', 'multiple', 'className', 'className_active', 'className_reject', 'className_disabled', 'style', 'style_active', 'style_reject', 'style_disabled']
self.available_properties = ['children', 'disabled', 'style', 'multiple', 'contents', 'disable_click', 'accept', 'id', 'min_size', 'className', 'style_reject', 'style_active', 'max_size', 'last_modified', 'className_active', 'filename', 'style_disabled', 'className_reject', 'className_disabled']

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.

Similarly, these ones were not sorted before and they're a different unsorted order now. I don't really care about the sort order here, but I don't want unnecessary diffs. What changed?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Please see above comment, same situation.

@rpkylerpkyle changed the title Update R dashCoreComponents package to 0.40.2Update R dashCoreComponents package to 0.42.1Jan 15, 2019
@rpkylerpkyle self-assigned this Jan 15, 2019
@rpkyle

rpkyle commented Jan 18, 2019

Copy link
Copy Markdown
ContributorAuthor

After discussion with @alexcjohnson, closing this PR and opening a new one since the commit log is somewhat ungainly and hard to review. Will cross-reference here.

@rpkylerpkyle closed this Jan 18, 2019
@rpkyle
rpkyle deleted the R2 branch November 13, 2019 22:13
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.

3 participants

@rpkyle@nicolaskruchten@alexcjohnson