From 7aee54bd21957a28e776e018f430643a294de797 Mon Sep 17 00:00:00 2001 From: gh-actions Date: Sat, 16 Sep 2023 17:02:33 +0000 Subject: [PATCH] auto commit from showyourwork tests --- README.md | 8 ++- Snakefile | 10 ++++ showyourwork.yml | 101 ++++++++----------------------------- src/scripts/test_data.py | 11 ++++ src/scripts/test_figure.py | 8 +++ src/tex/ms.tex | 10 ++++ 6 files changed, 66 insertions(+), 82 deletions(-) create mode 100644 src/scripts/test_data.py create mode 100644 src/scripts/test_figure.py diff --git a/README.md b/README.md index 9048434..6e1e7fe 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,10 @@

-An open source scientific article created using the [showyourwork](https://github.com/showyourwork/showyourwork) workflow. +*This is an automatically generated test for [showyourwork](https://github.com/showyourwork/showyourwork) generated from the file [test_cache.py](https://github.com/showyourwork/showyourwork/blob/main/tests/integration/test_cache.py).* + + +Test the Zenodo Sandbox caching feature for a rule that outputs an +entire directory. + + diff --git a/Snakefile b/Snakefile index e69de29..deacc44 100644 --- a/Snakefile +++ b/Snakefile @@ -0,0 +1,10 @@ + + + +rule generate_data: + output: + directory('src/data/test_data') + cache: + True + script: + 'src/scripts/test_data.py' diff --git a/showyourwork.yml b/showyourwork.yml index 5014ccd..d2e9101 100644 --- a/showyourwork.yml +++ b/showyourwork.yml @@ -1,105 +1,44 @@ -# Enable rule caching on Zenodo? cache_on_zenodo: true - -# Workflow graph (DAG) generation dag: - # Generate `dag.pdf` on each build? - render: false - # Graphviz layout engine engine: sfdp - # Group files by type into plates? - group_by_type: false - # Custom graph attributes graph_attr: - ranksep: "1" - nodesep: "0.65" - # Custom node attributes + nodesep: '0.65' + ranksep: '1' + group_by_type: false node_attr: - shape: "box" - penwidth: "2" - width: "1" - # Files and glob patterns to ignore - # ignore_files: - # - src/tex/orcid-ID.png - - -# Externally-hosted datasets, e.g. on Zenodo -datasets: - # 10.5281/zenodo.6468327: - # contents: - # TOI640b.json: src/data/TOI640b.json - -# Custom file dependencies + penwidth: '2' + shape: box + width: '1' + render: false +datasets: null dependencies: - # src/scripts/my_script.py: - # - src/data/dataset_for_my_script.dat - # src/tex/ms.tex: - # - src/tex/stylesheet.tex - -# Name of the `.tex` manuscript and corresponding `.pdf` article + src/scripts/test_figure.py: src/data/test_data ms_name: ms - -# Optimize DAG by removing unnecessary jobs upstream of cache hits? optimize_caching: false - -# Overleaf sync settings overleaf: - # Overleaf project ID (blank = disabled) - id: - # Perform sync on GitHub Actions? gh_actions_sync: true - # List of files to push to Overleaf - push: - - src/tex/figures - - src/tex/output - # List of files to pull from Overleaf + id: null pull: - - src/tex/ms.tex - - src/tex/bib.bib - -# Always require all input files to be present on disk for workflow to pass? + - src/tex/ms.tex + - src/tex/bib.bib + push: + - src/tex/figures + - src/tex/output require_inputs: true - -# Allow cacheable rules to run on GitHub Actions? run_cache_rules_on_ci: false - -# Mapping of script file extensions to instructions for executing them scripts: py: python {script} - -# Display of the `showyourwork` stamp on first page stamp: - # Show the stamp? - enabled: true - # Stamp angle in degrees angle: -20.0 - # Stamp size in inches + enabled: true size: 0.75 - # Horizontal position in inches from right edge of paper - xpos: 0.50 - # Vertical position in inches from top edge of paper - ypos: 0.50 - # Display of the repo URL in the stamp url: - # Show the URL? enabled: true - # Maximum URL length to display maxlen: 40 - -# Enable SyncTeX? -synctex: True - -# Command-line options to be passed to tectonic when building the manuscript + xpos: 0.5 + ypos: 0.5 +synctex: true tectonic_args: [] - -# Preprocessing script for arXiv tarball -# (such as to switch `minted` from `finalizecache` to `frozencache`) -# The script will be passed a directory containing the manuscript source -# as input, and should modify the contents of that directory in-place. -# preprocess_arxiv_script: my_preprocess_script.sh - -# Enable verbose output? verbose: false - -# Version of `showyourwork` used to create this workflow version: 0.4.4.dev7+gcd1c7f2 + diff --git a/src/scripts/test_data.py b/src/scripts/test_data.py new file mode 100644 index 0000000..2c66071 --- /dev/null +++ b/src/scripts/test_data.py @@ -0,0 +1,11 @@ +import numpy as np +import paths +import os +if os.getenv('CI', 'false') == 'true' or os.getenv('SYW_NO_RUN', 'false') == 'true': + raise Exception('Output should have been downloaded from Zenodo.') +np.random.seed(0) +(paths.data / 'test_data').mkdir(exist_ok=True) +for n in range(50): + np.random.seed(n) + data = np.random.randn(100) + np.savez(paths.data / 'test_data' / f'test_data{n:02d}.npz', data=data) diff --git a/src/scripts/test_figure.py b/src/scripts/test_figure.py new file mode 100644 index 0000000..d2c6820 --- /dev/null +++ b/src/scripts/test_figure.py @@ -0,0 +1,8 @@ +import matplotlib.pyplot as plt +import numpy as np +import paths +np.random.seed(0) +data = np.array([np.load(paths.data / 'test_data' / f'test_data{n:02d}.npz')['data'] for n in range(50)]) +fig = plt.figure(figsize=(7, 6)) +plt.plot(data) +fig.savefig(paths.figures / 'test_figure.pdf', bbox_inches='tight', dpi=300) diff --git a/src/tex/ms.tex b/src/tex/ms.tex index 6ab8e9c..e200052 100644 --- a/src/tex/ms.tex +++ b/src/tex/ms.tex @@ -54,4 +54,14 @@ \section{Introduction} \bibliography{bib} +\begin{figure}[ht!] +\script{test_figure.py} +\begin{centering} +\includegraphics[width=\linewidth]{figures/test_figure.pdf} +\caption{A test figure.} +\label{fig:test_figure} +\end{centering} +\end{figure} + \end{document} +