From 8fd1c5eeae9fb8307eb088211a92c623abd50ede Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sat, 25 Jun 2022 09:11:07 +0200 Subject: [PATCH 01/26] first test d3js overlay plot --- mkdocs.yml | 1 + pages/cv/index.md | 3 +++ templates/components/cv_compare_table.md | 5 +++++ templates/pages/compare.md | 24 ++++++++++++++++++++++++ website/generator/__main__.py | 11 ++++++++++- 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 templates/components/cv_compare_table.md create mode 100644 templates/pages/compare.md diff --git a/mkdocs.yml b/mkdocs.yml index 20486e9ae..1e25bdafe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -63,3 +63,4 @@ extra_javascript: - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js - javascripts/tables.js - https://cdnjs.cloudflare.com/ajax/libs/tablesort/5.2.1/tablesort.min.js + - https://d3js.org/d3.v7.min.js diff --git a/pages/cv/index.md b/pages/cv/index.md index 81b14ae14..37903450f 100644 --- a/pages/cv/index.md +++ b/pages/cv/index.md @@ -21,6 +21,9 @@ as in **[Ionic Liquids](ionic_liquid.md)**, or it consists of a non-conductive s * **COOR**: CO Oxidation Reaction, usually studied in a CO saturated electrolyte. * **HER**: Hydrogen Evolution Reaction. +## Individual Comparisons +**[Compare](compare.md)** + [^1]: Note that in the literature the abbreviation CV is sometimes used for the technique cyclic voltammetry. diff --git a/templates/components/cv_compare_table.md b/templates/components/cv_compare_table.md new file mode 100644 index 000000000..77b130831 --- /dev/null +++ b/templates/components/cv_compare_table.md @@ -0,0 +1,5 @@ +| Selected | | Substrate | Electrolyte {: .echemdb-expand-column } | Year {: .echemdb-hide-mobile } | Reference {: .echemdb-hide-mobile } | +| -------- | ----- | --------- | ----------- | ---- | --------- | +{% for entry in database %} +| | [![{{ entry.identifier}}](data:image/png;base64,{{ entry.thumbnail(96, 72) | b64encode }}){: .echemdb-cv-thumbnail }](/cv/entries/{{ entry.identifier }}) {: .echemdb-middle-cell } | {{ material }}({{ entry.system.electrodes.working_electrode.crystallographic_orientation }}) {: .echemdb-middle-cell } | {{ entry.system.electrolyte | render("components/electrolyte.md") }} {: .echemdb-middle-cell } | {{ database.bibliography.entries[entry.source.citation_key].fields['year'] }} {: .echemdb-hide-mobile .echemdb-middle-cell } | [ {{ entry.bibliography.persons['author'][0].last_names[0] | unicode }} ***et. al.*** Fig. {{ entry.source.figure }} ({{ entry.source.curve }})]({{ entry.source.url }}) {: .echemdb-hide-mobile .echemdb-middle-cell } | +{% endfor %} diff --git a/templates/pages/compare.md b/templates/pages/compare.md new file mode 100644 index 000000000..f67a21d1f --- /dev/null +++ b/templates/pages/compare.md @@ -0,0 +1,24 @@ +# Cyclic Voltammograms +{{ intro }} + +Click a graph to add it to the comparison. + +{% for material in database.materials() %} + +## {{ material }} + + +{{ render("components/cv_compare_table.md", entries_path=entries_path, database=database.filter(material_filter(material))) }} + +{% endfor %} + + diff --git a/website/generator/__main__.py b/website/generator/__main__.py index dab2b6553..d9e117b74 100644 --- a/website/generator/__main__.py +++ b/website/generator/__main__.py @@ -96,7 +96,16 @@ def main(): material_filter=material_filter(), ) ) - + # Create an overview page with tabulated and linked entries for all systems to compare. + with mkdocs_gen_files.open(os.path.join("cv", "compare.md"), "w") as markdown: + markdown.write( + render( + "pages/compare.md", + database=database, + intro="Cyclic voltammograms to compare.", + material_filter=material_filter(), + ) + ) def material_filter(): r""" From 5d67136b0f7ec4576b92d76236e73653cc635372 Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sat, 25 Jun 2022 10:39:02 +0200 Subject: [PATCH 02/26] add csv copy hook for development --- environment-dev.yml | 42 ++++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 4 ++++ 2 files changed, 46 insertions(+) create mode 100644 environment-dev.yml diff --git a/environment-dev.yml b/environment-dev.yml new file mode 100644 index 000000000..cce60209e --- /dev/null +++ b/environment-dev.yml @@ -0,0 +1,42 @@ +name: echemdb-website +channels: + - conda-forge + - defaults +dependencies: + - astropy + - black + - echemdb>=0.4.0,<0.5.0 + - isort + - make + # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs versions exactly. This pin can likely be relaxed again. + - mkdocs=1.3.0 + - myst-nb>=0.13.0,<0.14.0 + - myst-parser>=0.15,<0.17 + - pip + - pylatexenc>=2.10,<3 + - pylint + - pytest + - pytest-doctestplus + - pytest-xdist + - pytest-remotedata + - svgdigitizer>=0.5,<0.6 + - pip: + - linkchecker + # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. + - mkdocs-gen-files==0.3.4 + # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. + - mkdocs-literate-nav==0.4.1 + # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. + - mkdocs-macros-plugin==0.6.4 + # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. + - mkdocs-material==8.2.5 + # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. + - mkdocs-material-extensions==1.0.3 + # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. + - mkdocs-section-index==0.3.3 + - markdown-include + - mdutils + - pymdown-extensions>=9.2,<10 + - python-frontmatter + - tabulate + - mkdocs-simple-hooks diff --git a/mkdocs.yml b/mkdocs.yml index 1e25bdafe..c647c9508 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -25,6 +25,10 @@ plugins: - section-index - literate-nav: nav_file: NAVIGATION.md + - mkdocs-simple-hooks: + enabled: !ENV [ENABLE_MKDOCS_SIMPLE_HOOKS, False] + hooks: + on_post_build: "website.hooks:copy_data" markdown_extensions: - extra From 5fdf7e38d915466bd9676b62fa0027e2540e61ec Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sat, 25 Jun 2022 22:07:13 +0200 Subject: [PATCH 03/26] first partial working overlay plot --- templates/pages/compare.md | 72 ++++++++++++++++++++++++++++++++++---- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/templates/pages/compare.md b/templates/pages/compare.md index f67a21d1f..ea8904916 100644 --- a/templates/pages/compare.md +++ b/templates/pages/compare.md @@ -1,6 +1,6 @@ # Cyclic Voltammograms {{ intro }} - +
Click a graph to add it to the comparison. {% for material in database.materials() %} @@ -11,14 +11,74 @@ Click a graph to add it to the comparison. {{ render("components/cv_compare_table.md", entries_path=entries_path, database=database.filter(material_filter(material))) }} {% endfor %} + + + + + From 8cf944a2ac8465fa306a43034e94b7f4371d714b Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sat, 25 Jun 2022 22:07:41 +0200 Subject: [PATCH 04/26] add hook to copy data for local tests --- website/hooks.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 website/hooks.py diff --git a/website/hooks.py b/website/hooks.py new file mode 100644 index 000000000..6b5e2f330 --- /dev/null +++ b/website/hooks.py @@ -0,0 +1,7 @@ +import os +import shutil + +def copy_data(config, **kwargs): + site_dir = config['site_dir'] + #shutil.copy('data/generated/svgdigitizer/alves_2011_electrochemistry_6010/alves_2011_electrochemistry_6010_f1a_solid.csv', os.path.join(site_dir, 'alves_2011_electrochemistry_6010_f1a_solid.csv')) + shutil.copytree('data', os.path.join(site_dir, 'data')) \ No newline at end of file From 1d00fdaaaa906ca3f2b3f4831ec7fea17d4d031b Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sat, 25 Jun 2022 22:25:05 +0200 Subject: [PATCH 05/26] add dependency for local testing --- environment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/environment.yml b/environment.yml index 372d7f88d..cce60209e 100644 --- a/environment.yml +++ b/environment.yml @@ -39,3 +39,4 @@ dependencies: - pymdown-extensions>=9.2,<10 - python-frontmatter - tabulate + - mkdocs-simple-hooks From 6ac1119fa2c91e145e8681e011a9c71140ce616e Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sat, 25 Jun 2022 22:47:20 +0200 Subject: [PATCH 06/26] display more meaningful label --- templates/pages/compare.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/pages/compare.md b/templates/pages/compare.md index ea8904916..3bb976d7e 100644 --- a/templates/pages/compare.md +++ b/templates/pages/compare.md @@ -35,7 +35,7 @@ async function getData(names) { names.map(name => { console.log(name); const source = name.split("_").slice(0, -2).join("_"); - return d3.csv(["/data/generated/svgdigitizer/", source, "/", name, ".csv"].join(""), convertNumbers).then(processData); + return d3.csv(["/data/generated/svgdigitizer/", source, "/", name, ".csv"].join(""), convertNumbers).then(processData).then(function(result) {console.log(result);return {x: result[0], y: result[1], name: name, type: 'scatter'}}); // return d3.csv(["/data/generated/svgdigitizer/", source, "/", name, ".csv"].join(""), convertNumbers).then(processData) }) ); @@ -61,7 +61,7 @@ function processData(allRows) { y.push( row['j'] ); } - return {x: x, y: y, type: 'scatter'} + return [x, y] }; // callback on selections for all checkboxes From 17212b2e2f9d2f6be159a42ea4c28cafa946b4bd Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sun, 26 Jun 2022 07:46:45 +0200 Subject: [PATCH 07/26] properly use promise, styling, and cleanup --- templates/pages/compare.md | 71 +++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 28 deletions(-) diff --git a/templates/pages/compare.md b/templates/pages/compare.md index 3bb976d7e..e0139a9c7 100644 --- a/templates/pages/compare.md +++ b/templates/pages/compare.md @@ -16,29 +16,50 @@ Click a graph to add it to the comparison. - - From ecc2ee09ecb99bb018e3478dc455484ead5accde Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sun, 26 Jun 2022 07:53:18 +0200 Subject: [PATCH 08/26] fix lints --- website/hooks.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/website/hooks.py b/website/hooks.py index 6b5e2f330..dbe584407 100644 --- a/website/hooks.py +++ b/website/hooks.py @@ -1,7 +1,8 @@ +"""Hooks for local usage.""" import os import shutil -def copy_data(config, **kwargs): +def copy_data(config): + """Copy the data to the website folder.""" site_dir = config['site_dir'] - #shutil.copy('data/generated/svgdigitizer/alves_2011_electrochemistry_6010/alves_2011_electrochemistry_6010_f1a_solid.csv', os.path.join(site_dir, 'alves_2011_electrochemistry_6010_f1a_solid.csv')) - shutil.copytree('data', os.path.join(site_dir, 'data')) \ No newline at end of file + shutil.copytree('data', os.path.join(site_dir, 'data')) From 621c1c405dcb18f229c01e215cacedafddbbb0a3 Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sun, 26 Jun 2022 08:03:52 +0200 Subject: [PATCH 09/26] black hints --- website/generator/__main__.py | 1 + website/hooks.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/website/generator/__main__.py b/website/generator/__main__.py index d9e117b74..c86816ee8 100644 --- a/website/generator/__main__.py +++ b/website/generator/__main__.py @@ -107,6 +107,7 @@ def main(): ) ) + def material_filter(): r""" A lambda that filters a database by a material that can be be passed diff --git a/website/hooks.py b/website/hooks.py index dbe584407..66389e5f7 100644 --- a/website/hooks.py +++ b/website/hooks.py @@ -2,7 +2,8 @@ import os import shutil + def copy_data(config): """Copy the data to the website folder.""" - site_dir = config['site_dir'] - shutil.copytree('data', os.path.join(site_dir, 'data')) + site_dir = config["site_dir"] + shutil.copytree("data", os.path.join(site_dir, "data")) From 2d71867790374414ac6de46db7f1924d7fed5370 Mon Sep 17 00:00:00 2001 From: linuxrider Date: Sun, 26 Jun 2022 08:19:53 +0200 Subject: [PATCH 10/26] styling plot --- templates/pages/compare.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/templates/pages/compare.md b/templates/pages/compare.md index e0139a9c7..334f848ea 100644 --- a/templates/pages/compare.md +++ b/templates/pages/compare.md @@ -29,6 +29,11 @@ var layout = { size: 18, } }, + showline: true, + zeroline: false, + ticks: "outside", + mirror: true, + side: "bottom" }, yaxis: { @@ -38,7 +43,12 @@ var layout = { family: 'Courier New, monospace', size: 18, } - } + }, + showline: true, + zeroline: true, + ticks: "outside", + mirror: true, + side: "left" }, legend: { yanchor: "top", From 53b36d59c59e20563f0a95f29e9d906f0a4a25a4 Mon Sep 17 00:00:00 2001 From: Johannes Hermann Date: Mon, 27 Jun 2022 07:51:54 +0200 Subject: [PATCH 11/26] change default behavior of copy data hook --- .github/workflows/build.yml | 2 ++ mkdocs.yml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 47344f0e2..6eba42d63 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,6 +38,8 @@ jobs: # Since no browser is installed during this CI run, plotly fails to # produce HTML output, see https://github.com/plotly/plotly.py/blob/2c2dd6ab2eeff73c782457f33c590c1d09a97625/packages/python/plotly/plotly/io/_renderers.py#L532 export PLOTLY_RENDERER=browser + # disable hook to copy data which is a convenience function for local deployment/testing + export ENABLE_MKDOCS_COPY_DATA=False mkdocs build --strict mv data generated/website/ # Disable further processing by GitHub diff --git a/mkdocs.yml b/mkdocs.yml index c647c9508..b68c12340 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -26,7 +26,7 @@ plugins: - literate-nav: nav_file: NAVIGATION.md - mkdocs-simple-hooks: - enabled: !ENV [ENABLE_MKDOCS_SIMPLE_HOOKS, False] + enabled: !ENV [ENABLE_MKDOCS_COPY_DATA, True] hooks: on_post_build: "website.hooks:copy_data" From f83e70ac67ee8f8d763e921e7bb1d40dd27e9716 Mon Sep 17 00:00:00 2001 From: Johannes Hermann Date: Mon, 27 Jun 2022 08:07:27 +0200 Subject: [PATCH 12/26] remove unnecessary environment file --- environment-dev.yml | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 environment-dev.yml diff --git a/environment-dev.yml b/environment-dev.yml deleted file mode 100644 index cce60209e..000000000 --- a/environment-dev.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: echemdb-website -channels: - - conda-forge - - defaults -dependencies: - - astropy - - black - - echemdb>=0.4.0,<0.5.0 - - isort - - make - # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs versions exactly. This pin can likely be relaxed again. - - mkdocs=1.3.0 - - myst-nb>=0.13.0,<0.14.0 - - myst-parser>=0.15,<0.17 - - pip - - pylatexenc>=2.10,<3 - - pylint - - pytest - - pytest-doctestplus - - pytest-xdist - - pytest-remotedata - - svgdigitizer>=0.5,<0.6 - - pip: - - linkchecker - # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. - - mkdocs-gen-files==0.3.4 - # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. - - mkdocs-literate-nav==0.4.1 - # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. - - mkdocs-macros-plugin==0.6.4 - # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. - - mkdocs-material==8.2.5 - # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. - - mkdocs-material-extensions==1.0.3 - # In early 2022 we had trouble with some recent versions of mkdocs. To work around this issue, we pin mkdocs plugin versions exactly. This pin can likely be relaxed again. - - mkdocs-section-index==0.3.3 - - markdown-include - - mdutils - - pymdown-extensions>=9.2,<10 - - python-frontmatter - - tabulate - - mkdocs-simple-hooks From e3ba74e039d034bd7a4ee00bc1870e66b1ff9ee4 Mon Sep 17 00:00:00 2001 From: Johannes Hermann Date: Mon, 27 Jun 2022 12:37:56 +0200 Subject: [PATCH 13/26] add caching --- templates/pages/compare.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/templates/pages/compare.md b/templates/pages/compare.md index 334f848ea..040148d55 100644 --- a/templates/pages/compare.md +++ b/templates/pages/compare.md @@ -17,6 +17,7 @@ Click a graph to add it to the comparison. From e87b483bc675a97f655cac89118b6b3fa90e6016 Mon Sep 17 00:00:00 2001 From: Johannes Hermann Date: Tue, 28 Jun 2022 08:45:44 +0200 Subject: [PATCH 15/26] add quickfilter --- templates/components/cv_compare_table.md | 2 +- templates/pages/compare.md | 37 +++++++++++++++++++++--- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/templates/components/cv_compare_table.md b/templates/components/cv_compare_table.md index 77b130831..6cd72b3c8 100644 --- a/templates/components/cv_compare_table.md +++ b/templates/components/cv_compare_table.md @@ -1,5 +1,5 @@ | Selected | | Substrate | Electrolyte {: .echemdb-expand-column } | Year {: .echemdb-hide-mobile } | Reference {: .echemdb-hide-mobile } | | -------- | ----- | --------- | ----------- | ---- | --------- | {% for entry in database %} -| | [![{{ entry.identifier}}](data:image/png;base64,{{ entry.thumbnail(96, 72) | b64encode }}){: .echemdb-cv-thumbnail }](/cv/entries/{{ entry.identifier }}) {: .echemdb-middle-cell } | {{ material }}({{ entry.system.electrodes.working_electrode.crystallographic_orientation }}) {: .echemdb-middle-cell } | {{ entry.system.electrolyte | render("components/electrolyte.md") }} {: .echemdb-middle-cell } | {{ database.bibliography.entries[entry.source.citation_key].fields['year'] }} {: .echemdb-hide-mobile .echemdb-middle-cell } | [ {{ entry.bibliography.persons['author'][0].last_names[0] | unicode }} ***et. al.*** Fig. {{ entry.source.figure }} ({{ entry.source.curve }})]({{ entry.source.url }}) {: .echemdb-hide-mobile .echemdb-middle-cell } | +| {{entry.identifier}} | [![{{ entry.identifier}}](data:image/png;base64,{{ entry.thumbnail(96, 72) | b64encode }}){: .echemdb-cv-thumbnail }](/cv/entries/{{ entry.identifier }}) {: .echemdb-middle-cell } | {{ entry.system.electrodes.working_electrode.material }}({{ entry.system.electrodes.working_electrode.crystallographic_orientation }}) {: .echemdb-middle-cell } | {{ entry.system.electrolyte | render("components/electrolyte.md") }} {: .echemdb-middle-cell } | {{ database.bibliography.entries[entry.source.citation_key].fields['year'] }} {: .echemdb-hide-mobile .echemdb-middle-cell } | [ {{ entry.bibliography.persons['author'][0].last_names[0] | unicode }} ***et. al.*** Fig. {{ entry.source.figure }} ({{ entry.source.curve }})]({{ entry.source.url }}) {: .echemdb-hide-mobile .echemdb-middle-cell } | {% endfor %} diff --git a/templates/pages/compare.md b/templates/pages/compare.md index 96d63cc26..ac96e3abb 100644 --- a/templates/pages/compare.md +++ b/templates/pages/compare.md @@ -3,14 +3,14 @@
Click a graph to add it to the comparison. -{% for material in database.materials() %} -## {{ material }} + + + +{{ render("components/cv_compare_table.md", entries_path=entries_path, database=database) }} -{{ render("components/cv_compare_table.md", entries_path=entries_path, database=database.filter(material_filter(material))) }} -{% endfor %} @@ -129,4 +129,33 @@ d3.selectAll(".checkbox") updatePlot(selected_cyclic_voltammograms); }); +function quickFilter() { + var input, filter, table, tr, i, f, trContent, results; + input = document.getElementById("filterInput"); + filter = input.value.toUpperCase().split(" "); + table = document.getElementsByClassName("md-typeset__table")[0]; + tr = table.getElementsByTagName("tr"); + for (i = 1; i < tr.length; i++) { + + trContent = tr[i].textContent.replace(/[\s]+/g, ' '); + + if (trContent) { + results = [] + for (f of filter) { + if (trContent.toUpperCase().indexOf(f) > -1) { + results.push(true); + } else { + results.push(false); + } + } + + if (results.every( (val, r, arr) => val === true )) { + tr[i].style.display = ""; + } else { + tr[i].style.display = "none"; + } + } + } +} + From bee26e46945845e0d2c9d9227243aa24cb6ef4ce Mon Sep 17 00:00:00 2001 From: linuxrider Date: Mon, 18 Aug 2025 07:44:14 +0200 Subject: [PATCH 16/26] load js from the same CDN --- mkdocs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 3bf0883a4..66ff81f4f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -60,10 +60,10 @@ markdown_extensions: extra_javascript: - javascripts/config.js - - https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js + - https://cdn.jsdelivr.net/npm/polyfill-library@4.8.0/lib/index.min.js - javascripts/tables.js - - https://cdnjs.cloudflare.com/ajax/libs/tablesort/5.2.1/tablesort.min.js - - https://cdn.jsdelivr.net/npm/d3@7 + - https://cdn.jsdelivr.net/npm/tablesort@5.6.0/src/tablesort.min.js + - https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js - javascripts/katex.js - https://cdn.jsdelivr.net/npm/katex@0.16/dist/katex.min.js - https://cdn.jsdelivr.net/npm/katex@0.16/dist/contrib/mhchem.min.js From 8f15a4a60b83d24d288f3fc3439562b1ee25c1ed Mon Sep 17 00:00:00 2001 From: linuxrider Date: Mon, 18 Aug 2025 16:55:41 +0200 Subject: [PATCH 17/26] apply black --- website/generator/__main__.py | 1 - website/hooks.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/website/generator/__main__.py b/website/generator/__main__.py index 3c4ea3f4d..2ad9e51f6 100644 --- a/website/generator/__main__.py +++ b/website/generator/__main__.py @@ -127,7 +127,6 @@ def main(): print(f"Generated ionic liquid overview page in {t_ionic_liquid:.2f} seconds") - def material_filter(): r""" A lambda that filters a database by a material that can be be passed diff --git a/website/hooks.py b/website/hooks.py index 66389e5f7..03d598d03 100644 --- a/website/hooks.py +++ b/website/hooks.py @@ -1,4 +1,5 @@ """Hooks for local usage.""" + import os import shutil From 9cc6c1fe43740970b2857acf752060cbea964d65 Mon Sep 17 00:00:00 2001 From: linuxrider Date: Mon, 18 Aug 2025 17:36:28 +0200 Subject: [PATCH 18/26] remove constraint for plotly --- pixi.lock | 224 ++++++++++++++++++++++++++----------------------- pyproject.toml | 2 +- 2 files changed, 121 insertions(+), 105 deletions(-) diff --git a/pixi.lock b/pixi.lock index dd5d34852..97a5f548c 100644 --- a/pixi.lock +++ b/pixi.lock @@ -19,7 +19,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.3.11-py313h78bf25f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-7.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/astropy-base-7.1.0-py313h607aa3e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.11.0.41.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.18.0.40.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.3.0-pyh71513ae_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.9.0-h0fbd49f_19.conda @@ -73,7 +73,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.59.0-py313h3dea7bd_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.59.1-py313h3dea7bd_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.13.3-ha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/frictionless-5.18.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.7.0-py313h6b9daa2_0.conda @@ -95,7 +95,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipydatagrid-1.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.0a2-pyh82676e8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.30.1-pyh82676e8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.4.0-pyhfa0c392_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.7-pyhd8ed1ab_0.conda @@ -155,7 +155,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.21.0-hb9b0907_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-21.0.0-h790f06f_1_cpu.conda @@ -195,6 +195,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-nb-1.3.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.1.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda @@ -215,7 +216,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313h8db990d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.2-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda @@ -243,7 +244,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.5-hec9711d_102_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-slugify-8.0.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -282,7 +283,6 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stringcase-1.2.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/text-unidecode-1.3-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda @@ -325,7 +325,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e7/0f/1e55b3fd490ad2cecb6e7b31892d27cb9fc4218ec1dab780440ba8579e74/mkdocs_gen_files-0.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/84/b5b14d2745e4dd1a90115186284e9ee1b4d0863104011ab46abb7355a1c3/mkdocs_literate_nav-0.6.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/75/d6/18f19261f44813be207c46fb80da9ca13cb397aae5944b2b30c9eb1ebe3f/mkdocs_macros_plugin-1.3.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/65/f4/90ad67125b4dd66e7884e4dbdfab82e3679eb92b751116f8bb25ccfe2f0c/mkdocs_material-9.6.16-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/7c/0f0d44c92c8f3068930da495b752244bd59fd87b5b0f9571fa2d2a93aee7/mkdocs_material-9.6.17-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/01/53/76c109e6f822a6d19befb0450c87330b9a6ce52353de6a9dda7892060a1f/mkdocs_section_index-0.3.10-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl @@ -346,7 +346,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/astroid-3.3.11-py312hb401068_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-7.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/astropy-base-7.1.0-py312ha1a7de2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.11.0.41.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.18.0.40.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.3.0-pyh71513ae_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.9.0-h9972aa3_19.conda @@ -400,7 +400,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.59.0-py312h3d55d04_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.59.1-py312h3d55d04_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.13.3-h694c41f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/frictionless-5.18.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/frozenlist-1.7.0-py312h18bfd43_0.conda @@ -423,7 +423,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipydatagrid-1.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.0a2-pyh92f572d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.30.1-pyh92f572d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.4.0-pyhfa0c392_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.7-pyhd8ed1ab_0.conda @@ -478,7 +478,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-34_h236ab99_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h83c2472_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h83c2472_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.21.0-h7d3f41d_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-headers-1.21.0-h694c41f_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-21.0.0-hbebc5f6_1_cpu.conda @@ -516,6 +516,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-nb-1.3.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.1.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda @@ -536,7 +537,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-11.3.0-py312hd9f36e3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.2-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda @@ -564,7 +565,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.11-h9ccd52b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-slugify-8.0.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda @@ -602,7 +603,6 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stringcase-1.2.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/text-unidecode-1.3-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda @@ -647,7 +647,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e7/0f/1e55b3fd490ad2cecb6e7b31892d27cb9fc4218ec1dab780440ba8579e74/mkdocs_gen_files-0.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/84/b5b14d2745e4dd1a90115186284e9ee1b4d0863104011ab46abb7355a1c3/mkdocs_literate_nav-0.6.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/75/d6/18f19261f44813be207c46fb80da9ca13cb397aae5944b2b30c9eb1ebe3f/mkdocs_macros_plugin-1.3.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/65/f4/90ad67125b4dd66e7884e4dbdfab82e3679eb92b751116f8bb25ccfe2f0c/mkdocs_material-9.6.16-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/7c/0f0d44c92c8f3068930da495b752244bd59fd87b5b0f9571fa2d2a93aee7/mkdocs_material-9.6.17-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/01/53/76c109e6f822a6d19befb0450c87330b9a6ce52353de6a9dda7892060a1f/mkdocs_section_index-0.3.10-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl @@ -668,7 +668,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/astroid-3.3.11-py313hfa70ccb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-7.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/astropy-base-7.1.0-py313hbd89788_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.11.0.41.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.18.0.40.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.3.0-pyh71513ae_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.9.0-hd9a66b3_19.conda @@ -686,7 +686,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.606-h14334ec_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.13.4-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/black-25.1.0-pyh866005b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/black-25.1.0-py313hfa70ccb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.39.11-pyge310_1234567_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bottleneck-1.5.0-py313h8e081ca_0.conda @@ -718,7 +718,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.59.0-py313hd650c13_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.59.1-py313hd650c13_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.13.3-h57928b3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/frictionless-5.18.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/frozenlist-1.7.0-py313h0c48a3b_0.conda @@ -738,7 +738,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipydatagrid-1.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.0a2-pyh3521513_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.30.1-pyh3521513_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.4.0-pyh6be1c34_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.7-pyhd8ed1ab_0.conda @@ -828,6 +828,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-nb-1.3.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.1.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda @@ -845,7 +846,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.3.0-py313h641beac_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.2-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/propcache-0.3.1-py313hb4c8b1a_0.conda @@ -871,7 +872,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-slugify-8.0.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -910,7 +911,6 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/stringcase-1.2.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h18a62a1_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/text-unidecode-1.3-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda @@ -958,7 +958,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e7/0f/1e55b3fd490ad2cecb6e7b31892d27cb9fc4218ec1dab780440ba8579e74/mkdocs_gen_files-0.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/84/b5b14d2745e4dd1a90115186284e9ee1b4d0863104011ab46abb7355a1c3/mkdocs_literate_nav-0.6.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/75/d6/18f19261f44813be207c46fb80da9ca13cb397aae5944b2b30c9eb1ebe3f/mkdocs_macros_plugin-1.3.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/65/f4/90ad67125b4dd66e7884e4dbdfab82e3679eb92b751116f8bb25ccfe2f0c/mkdocs_material-9.6.16-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/7c/0f0d44c92c8f3068930da495b752244bd59fd87b5b0f9571fa2d2a93aee7/mkdocs_material-9.6.17-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/01/53/76c109e6f822a6d19befb0450c87330b9a6ce52353de6a9dda7892060a1f/mkdocs_section_index-0.3.10-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl @@ -1292,17 +1292,16 @@ packages: - pkg:pypi/astropy?source=hash-mapping size: 9594204 timestamp: 1748351195217 -- conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.11.0.41.9-pyhd8ed1ab_0.conda - sha256: a351cc17c9bbfe2d2f9d474088ef05aab2ff07ee2ba2761540b0734ac1d1cf0e - md5: 9627685b76be114a5f0f222ac7fe4643 +- conda: https://conda.anaconda.org/conda-forge/noarch/astropy-iers-data-0.2025.8.18.0.40.14-pyhd8ed1ab_0.conda + sha256: 1155287bde983d9036fb35f6f20344813c8b21c36fb2df210cd8504f981cd073 + md5: 659b9c68034e4600de4fdd3d7af411c4 depends: - python >=3.9 license: BSD-3-Clause - license_family: BSD purls: - - pkg:pypi/astropy-iers-data?source=compressed-mapping - size: 1231935 - timestamp: 1754915650094 + - pkg:pypi/astropy-iers-data?source=hash-mapping + size: 1245092 + timestamp: 1755509052622 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda sha256: 93b14414b3b3ed91e286e1cbe4e7a60c4e1b1c730b0814d1e452a8ac4b9af593 md5: 8f587de4bcf981e26228f268df374a9b @@ -2132,6 +2131,23 @@ packages: - pkg:pypi/black?source=hash-mapping size: 393484 timestamp: 1738616259890 +- conda: https://conda.anaconda.org/conda-forge/win-64/black-25.1.0-py313hfa70ccb_0.conda + sha256: ab34cfafbe51d5bb0da065ae713d097f7c202d776a30f84e310e87255b907d73 + md5: ddf3f99b2a7fb620e22379e9215ef15b + depends: + - click >=8.0.0 + - mypy_extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9 + - platformdirs >=2 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + purls: + - pkg:pypi/black?source=hash-mapping + size: 425644 + timestamp: 1738616404980 - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda sha256: a05971bb80cca50ce9977aad3f7fc053e54ea7d5321523efc7b9a6e12901d3cd md5: f0b4c8e370446ef89797608d60a564b3 @@ -2794,7 +2810,7 @@ packages: - pypi: ./ name: echemdb-website version: 0.1.0 - sha256: bc20b80fd983b2f53fefd6f77815a2dd8d624e14ad968f06792c4a301a11ee58 + sha256: da5d21deb6937777b943c37431c4c6fbb72b90a3e951350178cf29d82f82d608 requires_python: '>=3.9' editable: true - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda @@ -2830,9 +2846,9 @@ packages: - pkg:pypi/executing?source=hash-mapping size: 29652 timestamp: 1745502200340 -- conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.59.0-py313h3dea7bd_0.conda - sha256: 9c2fadb256dc19e4563247dbfa6d14aa42b944673a6969507f8df63ebaa6dc10 - md5: 9ab0ef93a0904a39910d1835588e25cd +- conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.59.1-py313h3dea7bd_0.conda + sha256: 5d7ea29adf8105dd6d9063fcd190fbd6e28f892bccc8d6bb0b6db8ce22d111a4 + md5: 649ea6ec13689862fae3baabec43534a depends: - __glibc >=2.17,<3.0.a0 - brotli @@ -2844,11 +2860,11 @@ packages: license_family: MIT purls: - pkg:pypi/fonttools?source=hash-mapping - size: 2909521 - timestamp: 1752722941472 -- conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.59.0-py312h3d55d04_0.conda - sha256: 307eddc464d1ed3d019aa98532f57ec9f294f7406779bebbec40b5dc0e19130c - md5: 1ba85cdb649fba59ba7b65254d14bc28 + size: 2896355 + timestamp: 1755224082055 +- conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.59.1-py312h3d55d04_0.conda + sha256: e37ef154575bd508aa2d5f7cd4f998aa6f03aa13cd9a31de18b67ad0db270ba6 + md5: 035064981f3aed435cffb63cbd11e5ef depends: - __osx >=10.13 - brotli @@ -2860,11 +2876,11 @@ packages: license_family: MIT purls: - pkg:pypi/fonttools?source=hash-mapping - size: 2796834 - timestamp: 1752722992690 -- conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.59.0-py313hd650c13_0.conda - sha256: 5cfebbcc1aced39d49b090545384470cbb9b77af10c99479d68888228feae242 - md5: f579f86a238d65abc3a2ce5404f5c917 + size: 2836537 + timestamp: 1755224162727 +- conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.59.1-py313hd650c13_0.conda + sha256: 4021b4353e38542939b948e136e577a31afb8205b69de2debe5d0ddddaa864ed + md5: 664038722218bd813afc6a2f22fef000 depends: - brotli - munkres @@ -2877,8 +2893,8 @@ packages: license_family: MIT purls: - pkg:pypi/fonttools?source=hash-mapping - size: 2492158 - timestamp: 1752723019662 + size: 2489239 + timestamp: 1755224264430 - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.13.3-ha770c72_1.conda sha256: 7ef7d477c43c12a5b4cddcf048a83277414512d1116aba62ebadfa7056a7d84f md5: 9ccd736d31e0c6e41f54e704e5312811 @@ -3346,9 +3362,9 @@ packages: - pkg:pypi/ipydatagrid?source=hash-mapping size: 620065 timestamp: 1735486891242 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.0a2-pyh3521513_0.conda - sha256: 94eaa4f9f937a71707f6a25f98dfe7b13731132391016679e96b8d4814c0829d - md5: d97f8cd0bab843bb58cb7a6af71df1b0 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.30.1-pyh3521513_0.conda + sha256: 3dd6fcdde5e40a3088c9ecd72c29c6e5b1429b99e927f41c8cee944a07062046 + md5: 953007d45edeb098522ac860aade4fcf depends: - __win - comm >=0.1.1 @@ -3367,12 +3383,12 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipykernel?source=compressed-mapping - size: 123857 - timestamp: 1755087201242 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.0a2-pyh82676e8_0.conda - sha256: ce2486c0b41dff9dfbdcff1ecde38419b1d2eec4823821125b48e924e1ff3633 - md5: 3bc121d1e9428f478d5a4d6ee28857f4 + - pkg:pypi/ipykernel?source=hash-mapping + size: 121976 + timestamp: 1754353094360 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.30.1-pyh82676e8_0.conda + sha256: cfc2c4e31dfedbb3d124d0055f55fda4694538fb790d52cd1b37af5312833e36 + md5: b0cc25825ce9212b8bee37829abad4d6 depends: - __linux - comm >=0.1.1 @@ -3391,12 +3407,12 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipykernel?source=compressed-mapping - size: 122990 - timestamp: 1755087171716 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.0a2-pyh92f572d_0.conda - sha256: 5d0f6cb29b34db3f21dfca851d56a80faa2d3567411b5ea5fb44660ca951a631 - md5: 2a72f58fc3348032b3fd0c33b2b14e07 + - pkg:pypi/ipykernel?source=hash-mapping + size: 121367 + timestamp: 1754352984703 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.30.1-pyh92f572d_0.conda + sha256: ec80ed5f68c96dd46ff1b533b28d2094b6f07e2ec8115c8c60803920fdd6eb13 + md5: f208c1a85786e617a91329fa5201168c depends: - __osx - appnope @@ -3416,9 +3432,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipykernel?source=compressed-mapping - size: 123386 - timestamp: 1755087398356 + - pkg:pypi/ipykernel?source=hash-mapping + size: 121397 + timestamp: 1754353050327 - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.4.0-pyh6be1c34_0.conda sha256: 8fb441c9f4b50e38b6059e8984e49208a4e2a4ec4e41b543ebaa894f8261d4c9 md5: b551e25e4fb27ccb51aff2c5dcf178f4 @@ -5355,9 +5371,9 @@ packages: purls: [] size: 606663 timestamp: 1729572019083 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_1.conda - sha256: 3f3fc30fe340bc7f8f46fea6a896da52663b4d95caed1f144e8ea114b4bb6b61 - md5: 7e2ba4ca7e6ffebb7f7fc2da2744df61 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda + sha256: 1b51d1f96e751dc945cc06f79caa91833b0c3326efe24e9b506bd64ef49fc9b0 + md5: dfc5aae7b043d9f56ba99514d5e60625 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 @@ -5366,13 +5382,12 @@ packages: constrains: - openblas >=0.3.30,<0.3.31.0a0 license: BSD-3-Clause - license_family: BSD purls: [] - size: 5918161 - timestamp: 1753405234435 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h83c2472_1.conda - sha256: 4e5fbf58105606c1cf77e2dda8ffca9e344c890353fe3e5d63211277dbba266e - md5: 1719f55187f999004d1a69c43b50e9da + size: 5938936 + timestamp: 1755474342204 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h83c2472_2.conda + sha256: 341dd45c2e88261f1f9ff76c3410355b4b0e894abe6ac89f7cbf64a3d10f0f01 + md5: 89edf77977f520c4245567460d065821 depends: - __osx >=10.13 - libgfortran @@ -5381,10 +5396,9 @@ packages: constrains: - openblas >=0.3.30,<0.3.31.0a0 license: BSD-3-Clause - license_family: BSD purls: [] - size: 6261418 - timestamp: 1753406214733 + size: 6262457 + timestamp: 1755473612572 - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.21.0-hb9b0907_1.conda sha256: ba9b09066f9abae9b4c98ffedef444bbbf4c068a094f6c77d70ef6f006574563 md5: 1c0320794855f457dea27d35c4c71e23 @@ -6453,13 +6467,14 @@ packages: - mkdocs-test ; extra == 'test' - mkdocs-d2-plugin ; extra == 'test' requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/65/f4/90ad67125b4dd66e7884e4dbdfab82e3679eb92b751116f8bb25ccfe2f0c/mkdocs_material-9.6.16-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/3c/7c/0f0d44c92c8f3068930da495b752244bd59fd87b5b0f9571fa2d2a93aee7/mkdocs_material-9.6.17-py3-none-any.whl name: mkdocs-material - version: 9.6.16 - sha256: 8d1a1282b892fe1fdf77bfeb08c485ba3909dd743c9ba69a19a40f637c6ec18c + version: 9.6.17 + sha256: 221dd8b37a63f52e580bcab4a7e0290e4a6f59bd66190be9c3d40767e05f9417 requires_dist: - babel~=2.10 - backrefs~=5.7.post1 + - click<8.2.2 - colorama~=0.4 - jinja2~=3.1 - markdown~=3.2 @@ -6614,6 +6629,18 @@ packages: - pkg:pypi/myst-parser?source=hash-mapping size: 73074 timestamp: 1739381945342 +- conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.1.2-pyhe01879c_0.conda + sha256: 54c58f45029b79a1fec25dc6f6179879afa4dddb73e5c38c85e574f66bb1d930 + md5: 90d3b6c75c144e8c461b846410d7c0bf + depends: + - python >=3.9 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/narwhals?source=hash-mapping + size: 243121 + timestamp: 1755254908603 - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda sha256: a20cff739d66c2f89f413e4ba4c6f6b59c50d5c30b5f0d840c13e8c9c2df9135 md5: 6bb0d77277061742744176ab555b723c @@ -7234,21 +7261,21 @@ packages: - pkg:pypi/platformdirs?source=hash-mapping size: 23531 timestamp: 1746710438805 -- conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_1.conda - sha256: d1bbf2d80105bfc8a7ed9817888f4a1686ed393d6435572921add09cc9347c1c - md5: 71ac632876630091c81c50a05ec5e030 +- conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.3.0-pyhd8ed1ab_0.conda + sha256: de59e60bdb5f42a6da18821e49545a0040c1f6940360c6177b5e3a350cc96d51 + md5: 5366b5b366cd3a2efa7e638792972ea1 depends: + - narwhals >=1.15.1 - packaging - python >=3.9 - - tenacity >=6.2.0 constrains: - ipywidgets >=7.6 license: MIT license_family: MIT purls: - pkg:pypi/plotly?source=hash-mapping - size: 8022748 - timestamp: 1733733328161 + size: 4921172 + timestamp: 1755067356284 - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda sha256: a8eb555eef5063bbb7ba06a379fa7ea714f57d9741fe0efdb9442dbbc2cccbcc md5: 7da7ccd349dbf6487a7778579d2bb971 @@ -7941,17 +7968,17 @@ packages: - pkg:pypi/python-dateutil?source=hash-mapping size: 233310 timestamp: 1751104122689 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - sha256: 1b09a28093071c1874862422696429d0d35bd0b8420698003ac004746c5e82a2 - md5: 38e34d2d1d9dca4fb2b9a0a04f604e2c +- conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda + sha256: df9aa74e9e28e8d1309274648aac08ec447a92512c33f61a8de0afa9ce32ebe8 + md5: 23029aae904a2ba587daba708208012f depends: - python >=3.9 + - python license: BSD-3-Clause - license_family: BSD purls: - pkg:pypi/fastjsonschema?source=hash-mapping - size: 226259 - timestamp: 1733236073335 + size: 244628 + timestamp: 1755304154927 - pypi: https://files.pythonhosted.org/packages/49/87/3c8da047b3ec5f99511d1b4d7a5bc72d4b98751c7e78492d14dc736319c5/python_frontmatter-1.1.0-py3-none-any.whl name: python-frontmatter version: 1.1.0 @@ -8704,7 +8731,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/sqlalchemy?source=compressed-mapping + - pkg:pypi/sqlalchemy?source=hash-mapping size: 3634369 timestamp: 1754983972889 - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda @@ -8764,17 +8791,6 @@ packages: purls: [] size: 149955 timestamp: 1754499612925 -- conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - sha256: fd9ab8829947a6a405d1204904776a3b206323d78b29d99ae8b60532c43d6844 - md5: 5d99943f2ae3cc69e1ada12ce9d4d701 - depends: - - python >=3.9 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/tenacity?source=hash-mapping - size: 25364 - timestamp: 1743640859268 - pypi: https://files.pythonhosted.org/packages/4f/bd/de8d508070629b6d84a30d01d57e4a65c69aa7f5abe7560b8fad3b50ea59/termcolor-3.1.0-py3-none-any.whl name: termcolor version: 3.1.0 diff --git a/pyproject.toml b/pyproject.toml index e7325616e..9d67e8c99 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ mkdocs = "*" myst-nb = "*" myst-parser = "*" pip = "*" -plotly = ">=5,<6" # Workaround for https://github.com/executablebooks/MyST-NB/issues/667 +plotly = "*" pylatexenc = "*" pylint = "*" pytest = "*" From 125ab9773998390df47c21b44ad9c5f6416921d8 Mon Sep 17 00:00:00 2001 From: linuxrider Date: Mon, 18 Aug 2025 17:37:03 +0200 Subject: [PATCH 19/26] remove deprecated simple-hooks for mkdocs --- mkdocs.yml | 7 +++---- website/{hooks.py => data_hooks.py} | 8 +++++++- 2 files changed, 10 insertions(+), 5 deletions(-) rename website/{hooks.py => data_hooks.py} (59%) diff --git a/mkdocs.yml b/mkdocs.yml index 66ff81f4f..42ef24e37 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,10 +27,9 @@ plugins: - section-index - literate-nav: nav_file: NAVIGATION.md - - mkdocs-simple-hooks: - enabled: !ENV [ENABLE_MKDOCS_COPY_DATA, True] - hooks: - on_post_build: "website.hooks:copy_data" + +hooks: + - website/data_hooks.py markdown_extensions: - extra diff --git a/website/hooks.py b/website/data_hooks.py similarity index 59% rename from website/hooks.py rename to website/data_hooks.py index 03d598d03..986842852 100644 --- a/website/hooks.py +++ b/website/data_hooks.py @@ -1,10 +1,16 @@ """Hooks for local usage.""" +import logging import os import shutil +import mkdocs.plugins -def copy_data(config): +log = logging.getLogger("mkdocs") + + +@mkdocs.plugins.event_priority(-50) +def on_post_build(config): """Copy the data to the website folder.""" site_dir = config["site_dir"] shutil.copytree("data", os.path.join(site_dir, "data")) From b215ccab876ffd29789d90bdffe880d21f641e66 Mon Sep 17 00:00:00 2001 From: Johannes Hermann Date: Tue, 19 Aug 2025 20:33:44 +0200 Subject: [PATCH 20/26] download electrochemistry data --- website/data_hooks.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/website/data_hooks.py b/website/data_hooks.py index 986842852..959d05160 100644 --- a/website/data_hooks.py +++ b/website/data_hooks.py @@ -3,14 +3,26 @@ import logging import os import shutil +import io +import zipfile + +import requests import mkdocs.plugins log = logging.getLogger("mkdocs") +ECHEMDB_DATABASE_URL = os.environ.get( + "ECHEMDB_DATABASE_URL", + "https://github.com/echemdb/electrochemistry-data/releases/download/0.5.0/data-0.5.0.zip", +) @mkdocs.plugins.event_priority(-50) def on_post_build(config): - """Copy the data to the website folder.""" - site_dir = config["site_dir"] - shutil.copytree("data", os.path.join(site_dir, "data")) + """Download electrochemistry-data and extract to the website folder.""" + url = ECHEMDB_DATABASE_URL + resp = requests.get(url) + buf = io.BytesIO(resp.content) + site_dir = config["site_dir"] + with zipfile.ZipFile(buf) as zf: + zf.extractall(site_dir) From c2d0283733d85877dce404481aadbacff41d3114 Mon Sep 17 00:00:00 2001 From: Johannes Hermann Date: Tue, 19 Aug 2025 20:35:15 +0200 Subject: [PATCH 21/26] adapt to camelCase keys --- templates/components/cv_compare_table.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/components/cv_compare_table.md b/templates/components/cv_compare_table.md index 6cd72b3c8..c554bbac3 100644 --- a/templates/components/cv_compare_table.md +++ b/templates/components/cv_compare_table.md @@ -1,5 +1,5 @@ | Selected | | Substrate | Electrolyte {: .echemdb-expand-column } | Year {: .echemdb-hide-mobile } | Reference {: .echemdb-hide-mobile } | | -------- | ----- | --------- | ----------- | ---- | --------- | {% for entry in database %} -| {{entry.identifier}} | [![{{ entry.identifier}}](data:image/png;base64,{{ entry.thumbnail(96, 72) | b64encode }}){: .echemdb-cv-thumbnail }](/cv/entries/{{ entry.identifier }}) {: .echemdb-middle-cell } | {{ entry.system.electrodes.working_electrode.material }}({{ entry.system.electrodes.working_electrode.crystallographic_orientation }}) {: .echemdb-middle-cell } | {{ entry.system.electrolyte | render("components/electrolyte.md") }} {: .echemdb-middle-cell } | {{ database.bibliography.entries[entry.source.citation_key].fields['year'] }} {: .echemdb-hide-mobile .echemdb-middle-cell } | [ {{ entry.bibliography.persons['author'][0].last_names[0] | unicode }} ***et. al.*** Fig. {{ entry.source.figure }} ({{ entry.source.curve }})]({{ entry.source.url }}) {: .echemdb-hide-mobile .echemdb-middle-cell } | +| {{entry.identifier}} | [![{{ entry.identifier}}](data:image/png;base64,{{ entry.thumbnail(96, 72) | b64encode }}){: .echemdb-cv-thumbnail }](entries/{{ entry.identifier }}.md) {: .echemdb-middle-cell } | {{ material }}({{ entry.get_electrode('WE').crystallographicOrientation }}) {: .echemdb-middle-cell } | {{ entry.system.electrolyte | render("components/electrolyte.md") }} {: .echemdb-middle-cell } | {{ database.bibliography.entries[entry.source.citationKey].fields['year'] }} {: .echemdb-hide-mobile .echemdb-middle-cell } | [ {{ entry.bibliography.persons['author'][0].last_names[0] | unicode }} ***et. al.*** Fig. {{ entry.source.figure }} ({{ entry.source.curve }})]({{ entry.source.url }}) {: .echemdb-hide-mobile .echemdb-middle-cell } | {% endfor %} From 2e81c367b462880a83f9321015b352dd70bc12b7 Mon Sep 17 00:00:00 2001 From: linuxrider Date: Wed, 20 Aug 2025 07:43:49 +0200 Subject: [PATCH 22/26] move data hook to database generator --- mkdocs.yml | 3 --- website/data_hooks.py | 28 ---------------------------- website/generator/database.py | 4 ++++ 3 files changed, 4 insertions(+), 31 deletions(-) delete mode 100644 website/data_hooks.py diff --git a/mkdocs.yml b/mkdocs.yml index 42ef24e37..4b76ce06e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,9 +28,6 @@ plugins: - literate-nav: nav_file: NAVIGATION.md -hooks: - - website/data_hooks.py - markdown_extensions: - extra - admonition diff --git a/website/data_hooks.py b/website/data_hooks.py deleted file mode 100644 index 959d05160..000000000 --- a/website/data_hooks.py +++ /dev/null @@ -1,28 +0,0 @@ -"""Hooks for local usage.""" - -import logging -import os -import shutil -import io -import zipfile - -import requests - -import mkdocs.plugins - -log = logging.getLogger("mkdocs") - -ECHEMDB_DATABASE_URL = os.environ.get( - "ECHEMDB_DATABASE_URL", - "https://github.com/echemdb/electrochemistry-data/releases/download/0.5.0/data-0.5.0.zip", -) - -@mkdocs.plugins.event_priority(-50) -def on_post_build(config): - """Download electrochemistry-data and extract to the website folder.""" - url = ECHEMDB_DATABASE_URL - resp = requests.get(url) - buf = io.BytesIO(resp.content) - site_dir = config["site_dir"] - with zipfile.ZipFile(buf) as zf: - zf.extractall(site_dir) diff --git a/website/generator/database.py b/website/generator/database.py index 872ca7b40..6c2e8a6c4 100644 --- a/website/generator/database.py +++ b/website/generator/database.py @@ -37,11 +37,15 @@ # ******************************************************************** import os +from mkdocs.config import load_config from unitpackage.database.echemdb import Echemdb +config = load_config("mkdocs.yml") + ECHEMDB_DATABASE_URL = os.environ.get( "ECHEMDB_DATABASE_URL", "https://github.com/echemdb/electrochemistry-data/releases/download/0.5.0/data-0.5.0.zip", ) cv = Echemdb.from_remote(url=ECHEMDB_DATABASE_URL) +cv.save_entries(outdir=os.path.join(config["site_dir"], "data")) From c44ac525efa009b0dab8f53820806fc89f76c107 Mon Sep 17 00:00:00 2001 From: linuxrider Date: Fri, 22 Aug 2025 06:21:39 +0200 Subject: [PATCH 23/26] adapt extra js --- mkdocs.yml | 7 ++++--- templates/pages/compare.md | 4 ++-- website/filters/render.py | 3 +-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 4b76ce06e..e909a9117 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -56,11 +56,12 @@ markdown_extensions: extra_javascript: - javascripts/config.js - - https://cdn.jsdelivr.net/npm/polyfill-library@4.8.0/lib/index.min.js + - https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js - javascripts/tables.js - - https://cdn.jsdelivr.net/npm/tablesort@5.6.0/src/tablesort.min.js - - https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js + - https://cdn.jsdelivr.net/npm/tablesort@5/src/tablesort.min.js + - https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js - javascripts/katex.js - https://cdn.jsdelivr.net/npm/katex@0.16/dist/katex.min.js - https://cdn.jsdelivr.net/npm/katex@0.16/dist/contrib/mhchem.min.js - https://cdn.jsdelivr.net/npm/katex@0.16/dist/contrib/auto-render.min.js + - https://cdn.plot.ly/plotly-3.1.0.min.js diff --git a/templates/pages/compare.md b/templates/pages/compare.md index ac96e3abb..9f29c58ad 100644 --- a/templates/pages/compare.md +++ b/templates/pages/compare.md @@ -12,8 +12,8 @@ Click a graph to add it to the comparison. - - + +