Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/_includes/head_custom.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{%- if page.interactive_repo_review %}

<script
src="https://cdn.jsdelivr.net/pyodide/v0.22.1/full/pyodide.js"
src="https://cdn.jsdelivr.net/pyodide/v0.23.2/full/pyodide.js"
crossorigin
></script>

Expand All @@ -16,7 +16,7 @@
crossorigin
></script>
<script
src="https://unpkg.com/@mui/material@v5.6.1/umd/material-ui.production.min.js"
src="https://unpkg.com/@mui/material@v5.13.3/umd/material-ui.production.min.js"
crossorigin
></script>

Expand Down
90 changes: 59 additions & 31 deletions docs/assets/js/webapp.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ function Results(props) {
for (const key in props.results) {
const inner_results = props.results[key];
const results_components = inner_results.map((result) => {
const text_color =
result.state === false
? "error.main"
: result.state === true
? "text.primary"
: "info.main";
const details =
result.state === false ? (
<span dangerouslySetInnerHTML={{ __html: result.err_msg }} />
Expand All @@ -48,21 +54,23 @@ function Results(props) {
? "error"
: result.state === true
? "success"
: "warning";
: "info";
const icon = (
<MaterialUI.Icon color={color}>
{result.state === false
? "error"
? "report"
: result.state === true
? "check_circle"
: "warning"}
? "check_box"
: "info"}
</MaterialUI.Icon>
);

const skipped = (
<MaterialUI.Typography
sx={{ display: "inline" }}
component="span"
variant="body2"
color="text.disabled"
>
{" [skipped]"}
</MaterialUI.Typography>
Expand All @@ -73,11 +81,19 @@ function Results(props) {
sx={{ display: "inline" }}
component="span"
variant="body2"
color="text.primary"
color={text_color}
>
{result.name + ": "}
</MaterialUI.Typography>
<React.Fragment>{result.description}</React.Fragment>
<React.Fragment>
<MaterialUI.Typography
sx={{ display: "inline" }}
component="span"
color={text_color}
>
{result.description}
</MaterialUI.Typography>
</React.Fragment>
{result.state === undefined && skipped}
</React.Fragment>
);
Expand All @@ -92,7 +108,9 @@ function Results(props) {
output.push(
<li key={`section-${key}`}>
<ul>
<MaterialUI.ListSubheader>{key}</MaterialUI.ListSubheader>
<MaterialUI.ListSubheader>
{props.families[key]}
</MaterialUI.ListSubheader>
{results_components}
</ul>
</li>
Expand All @@ -114,7 +132,7 @@ async function prepare_pyodide() {
await pyodide.loadPackage("micropip");
await pyodide.runPythonAsync(`
import micropip
await micropip.install(["scikit_hep_repo_review==0.5.0"])
await micropip.install(["scikit_hep_repo_review==0.6.1"])
`);
return pyodide;
}
Expand Down Expand Up @@ -177,19 +195,18 @@ class App extends React.Component {
});
const state = this.state;
pyodide_promise.then((pyodide) => {
var results_dict;
var families_checks;
try {
results_dict = pyodide.runPython(`
from pyodide.http import open_url
from scikit_hep_repo_review.processor import process
from scikit_hep_repo_review.ghpath import GHPath
families_checks = pyodide.runPython(`
from pyodide.http import open_url
from scikit_hep_repo_review.processor import process
from scikit_hep_repo_review.ghpath import GHPath

GHPath.open_url = staticmethod(open_url)
GHPath.open_url = staticmethod(open_url)

package = GHPath(repo="${state.repo}", branch="${state.branch}")
results_dict = process(package)
results_dict
`);
package = GHPath(repo="${state.repo}", branch="${state.branch}")
process(package)
`);
} catch (e) {
if (e.message.includes("KeyError: 'tree'")) {
this.setState({
Expand All @@ -206,27 +223,35 @@ class App extends React.Component {
return;
}

const families_dict = families_checks.get(0);
const results_list = families_checks.get(1);

const results = {};
for (const res of results_dict) {
const vals = results_dict.get(res);
const inner_results = [];
for (const val of vals) {
inner_results.push({
name: val.name.toString(),
description: val.description.toString(),
state: val.result,
err_msg: val.err_markdown().toString(),
});
}
results[res] = inner_results;
const families = {};
for (const val of families_dict) {
results[val] = [];
families[val] = families_dict.get(val).get("name");
}
console.log(families);
for (const val of results_list) {
results[val.family].push({
name: val.name.toString(),
description: val.description.toString(),
state: val.result,
err_msg: val.err_markdown().toString(),
});
}

this.setState({
results: results,
families: families,
msg: `Results for ${state.repo}@${state.branch}`,
progress: false,
err_msg: "",
});

results_list.destroy();
families_dict.destroy();
});
}

Expand Down Expand Up @@ -305,7 +330,10 @@ class App extends React.Component {
</MaterialUI.Typography>
)}
</MaterialUI.Box>
<Results results={this.state.results} />
<Results
results={this.state.results}
families={this.state.families}
/>
</MaterialUI.Paper>
</MaterialUI.Box>
</MyThemeProvider>
Expand Down