From cca6ea7a94e3a55d87b1b0d471cb8597a0992b73 Mon Sep 17 00:00:00 2001 From: Sparks29032 Date: Wed, 2 Oct 2024 10:39:41 -0400 Subject: [PATCH 1/5] Wf, doc, src, tests --- .github/workflows/check-news-item.yml | 12 +++++ .github/workflows/docs.yml | 43 --------------- .github/workflows/main.yml | 54 ------------------- .../matrix-and-codecov-on-merge-to-main.yml | 21 ++++++++ .github/workflows/pre-commit.yml | 19 ------- .github/workflows/publish-docs-on-release.yml | 14 +++++ .github/workflows/tests-on-pr.yml | 16 ++++++ .../pdfmorph/tests => tests}/__init__.py | 0 .../pdfmorph/tests => tests}/conftest.py | 0 {src/diffpy/pdfmorph/tests => tests}/debug.py | 0 {src/diffpy/pdfmorph/tests => tests}/run.py | 0 .../tests => tests}/test_morph_func.py | 0 .../tests => tests}/test_morphchain.py | 0 .../tests => tests}/test_morphpdftordf.py | 0 .../tests => tests}/test_morphrdftopdf.py | 0 .../tests => tests}/test_morphresolution.py | 0 .../tests => tests}/test_morphrgrid.py | 0 .../tests => tests}/test_morphscale.py | 0 .../tests => tests}/test_morphshape.py | 0 .../tests => tests}/test_morphsmear.py | 0 .../tests => tests}/test_morphstretch.py | 0 .../tests => tests}/test_pdfmorphapp.py | 0 .../tests => tests}/test_pdfmorphio.py | 0 .../pdfmorph/tests => tests}/test_pdfplot.py | 0 .../pdfmorph/tests => tests}/test_refine.py | 0 .../pdfmorph/tests => tests}/test_tools.py | 0 tests/test_version.py | 10 ++++ .../tests => tests}/testdata/ni_qmax25.cgr | 0 .../testdata/ni_qmax25_e17.5_p5.0.cgr | 0 .../testdata/ni_qmax25_psize35.cgr | 0 .../testdata/ni_qmax25_qdamp0.01.cgr | 0 .../testdata/nickel_ss0.01.cgr | 0 .../testdata/nickel_ss0.02.cgr | 0 .../testdata/nickel_ss0.02_eps0.002.cgr | 0 .../succinct/Morph_Reference_Table.txt | 0 .../testsaving/succinct/Morphs/mwt_a.cgr | 0 .../testsaving/succinct/Morphs/mwt_b.cgr | 0 .../testsaving/succinct/Morphs/mwt_c.cgr | 0 .../testsaving/succinct/Morphs/mwt_d.cgr | 0 .../testsaving/succinct/Morphs/mwt_e.cgr | 0 .../testsaving/succinct/Morphs/mwt_f.cgr | 0 .../succinct/single_succinct_morph.cgr | 0 .../verbose/Morph_Reference_Table.txt | 0 .../testsaving/verbose/Morphs/mwt_a.cgr | 0 .../testsaving/verbose/Morphs/mwt_b.cgr | 0 .../testsaving/verbose/Morphs/mwt_c.cgr | 0 .../testsaving/verbose/Morphs/mwt_d.cgr | 0 .../testsaving/verbose/Morphs/mwt_e.cgr | 0 .../testsaving/verbose/Morphs/mwt_f.cgr | 0 .../verbose/single_verbose_morph.cgr | 0 .../testdata/testsequence/a_210K.gr | 0 .../testdata/testsequence/b_204K.gr | 0 .../testdata/testsequence/c_198K.gr | 0 .../testdata/testsequence/d_192K.gr | 0 .../testdata/testsequence/e_186K.gr | 0 .../testdata/testsequence/f_180K.gr | 0 .../testdata/testsequence/g_174K.gr | 0 .../testdata/testsequence_serialfile.json | 0 58 files changed, 73 insertions(+), 116 deletions(-) create mode 100644 .github/workflows/check-news-item.yml delete mode 100644 .github/workflows/docs.yml delete mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/matrix-and-codecov-on-merge-to-main.yml delete mode 100644 .github/workflows/pre-commit.yml create mode 100644 .github/workflows/publish-docs-on-release.yml create mode 100644 .github/workflows/tests-on-pr.yml rename {src/diffpy/pdfmorph/tests => tests}/__init__.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/conftest.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/debug.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/run.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morph_func.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphchain.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphpdftordf.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphrdftopdf.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphresolution.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphrgrid.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphscale.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphshape.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphsmear.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_morphstretch.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_pdfmorphapp.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_pdfmorphio.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_pdfplot.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_refine.py (100%) rename {src/diffpy/pdfmorph/tests => tests}/test_tools.py (100%) create mode 100644 tests/test_version.py rename {src/diffpy/pdfmorph/tests => tests}/testdata/ni_qmax25.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/ni_qmax25_e17.5_p5.0.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/ni_qmax25_psize35.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/ni_qmax25_qdamp0.01.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/nickel_ss0.01.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/nickel_ss0.02.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/nickel_ss0.02_eps0.002.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/Morph_Reference_Table.txt (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/Morphs/mwt_a.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/Morphs/mwt_b.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/Morphs/mwt_c.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/Morphs/mwt_d.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/Morphs/mwt_e.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/Morphs/mwt_f.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/succinct/single_succinct_morph.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/Morph_Reference_Table.txt (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/Morphs/mwt_a.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/Morphs/mwt_b.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/Morphs/mwt_c.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/Morphs/mwt_d.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/Morphs/mwt_e.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/Morphs/mwt_f.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsaving/verbose/single_verbose_morph.cgr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence/a_210K.gr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence/b_204K.gr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence/c_198K.gr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence/d_192K.gr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence/e_186K.gr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence/f_180K.gr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence/g_174K.gr (100%) rename {src/diffpy/pdfmorph/tests => tests}/testdata/testsequence_serialfile.json (100%) diff --git a/.github/workflows/check-news-item.yml b/.github/workflows/check-news-item.yml new file mode 100644 index 00000000..84d37cff --- /dev/null +++ b/.github/workflows/check-news-item.yml @@ -0,0 +1,12 @@ +name: Check for News + +on: + pull_request_target: + branches: + - main + +jobs: + build: + uses: Billingegroup/release-scripts/.github/workflows/_check-news-item.yml@v0 + with: + project: diffpy.pdfmorph diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 2909d67f..00000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Build Documentation - -on: - push: - branches: - - main - release: - -jobs: - test: - runs-on: ubuntu-latest - defaults: - run: - shell: bash -l {0} - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - uses: conda-incubator/setup-miniconda@v2 - with: - activate-environment: build - auto-update-conda: true - - - name: install requirements - run: >- - conda install -n build -c conda-forge - --file requirements/build.txt - --file requirements/run.txt - --file requirements/docs.txt - --quiet --yes - - - name: install the package - run: python -m pip install . --no-deps - - - name: build documents - run: make -C doc html - - - name: Deploy - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./doc/build/html diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 81ed769d..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: CI - -on: - push: - branches: - - main - - CI - pull_request: - workflow_dispatch: - -jobs: - miniconda: - name: Miniconda ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: ["ubuntu-latest"] - steps: - - name: check out diffpy.pdfmorph - uses: actions/checkout@v3 - with: - repository: diffpy/diffpy.pdfmorph - path: . - fetch-depth: 0 # avoid shallow clone with no tags - - - name: initialize miniconda - # this uses a marketplace action that sets up miniconda in a way that makes - # it easier to use. I tried setting it up without this and it was a pain - uses: conda-incubator/setup-miniconda@v2 - with: - activate-environment: test - # environment.yml file is needed by this action. Because I don't want - # maintain this but rather maintain the requirements files it just has - # basic things in it like conda and pip - environment-file: ./environment.yml - python-version: 3 - auto-activate-base: false - - - name: install diffpy.pdfmorph requirements - shell: bash -l {0} - run: | - conda config --set always_yes yes --set changeps1 no - conda config --add channels conda-forge - conda activate test - conda install --file requirements/run.txt - conda install --file requirements/test.txt - pip install . - - name: Validate diffpy.pdfmorph - shell: bash -l {0} - run: | - conda activate test - coverage run -m pytest -vv -s - coverage report -m - codecov diff --git a/.github/workflows/matrix-and-codecov-on-merge-to-main.yml b/.github/workflows/matrix-and-codecov-on-merge-to-main.yml new file mode 100644 index 00000000..a865a270 --- /dev/null +++ b/.github/workflows/matrix-and-codecov-on-merge-to-main.yml @@ -0,0 +1,21 @@ +name: CI + +on: + push: + branches: + - main + release: + types: + - prereleased + - published + workflow_dispatch: + +jobs: + coverage: + uses: Billingegroup/release-scripts/.github/workflows/_matrix-and-codecov-on-merge-to-main.yml@v0 + with: + project: diffpy.pdfmorph + c_extension: false + headless: false + secrets: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml deleted file mode 100644 index f2ff7e42..00000000 --- a/.github/workflows/pre-commit.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: pre-commit - -on: - pull_request: - push: - workflow_dispatch: - -jobs: - pre-commit: - # pull requests are a duplicate of a branch push if within the same repo. - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - - uses: pre-commit/action@v3.0.0 - with: - extra_args: --all-files diff --git a/.github/workflows/publish-docs-on-release.yml b/.github/workflows/publish-docs-on-release.yml new file mode 100644 index 00000000..d358d16c --- /dev/null +++ b/.github/workflows/publish-docs-on-release.yml @@ -0,0 +1,14 @@ +name: Build and Deploy Docs + +on: + release: + types: + - published + workflow_dispatch: + +jobs: + docs: + uses: Billingegroup/release-scripts/.github/workflows/_publish-docs-on-release.yml@v0 + with: + project: diffpy.pdfmorph + c_extension: false diff --git a/.github/workflows/tests-on-pr.yml b/.github/workflows/tests-on-pr.yml new file mode 100644 index 00000000..b33f974c --- /dev/null +++ b/.github/workflows/tests-on-pr.yml @@ -0,0 +1,16 @@ +name: Tests on PR + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + validate: + uses: Billingegroup/release-scripts/.github/workflows/_tests-on-pr.yml@v0 + with: + project: diffpy.pdfmorph + c_extension: false + headless: false diff --git a/src/diffpy/pdfmorph/tests/__init__.py b/tests/__init__.py similarity index 100% rename from src/diffpy/pdfmorph/tests/__init__.py rename to tests/__init__.py diff --git a/src/diffpy/pdfmorph/tests/conftest.py b/tests/conftest.py similarity index 100% rename from src/diffpy/pdfmorph/tests/conftest.py rename to tests/conftest.py diff --git a/src/diffpy/pdfmorph/tests/debug.py b/tests/debug.py similarity index 100% rename from src/diffpy/pdfmorph/tests/debug.py rename to tests/debug.py diff --git a/src/diffpy/pdfmorph/tests/run.py b/tests/run.py similarity index 100% rename from src/diffpy/pdfmorph/tests/run.py rename to tests/run.py diff --git a/src/diffpy/pdfmorph/tests/test_morph_func.py b/tests/test_morph_func.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morph_func.py rename to tests/test_morph_func.py diff --git a/src/diffpy/pdfmorph/tests/test_morphchain.py b/tests/test_morphchain.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphchain.py rename to tests/test_morphchain.py diff --git a/src/diffpy/pdfmorph/tests/test_morphpdftordf.py b/tests/test_morphpdftordf.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphpdftordf.py rename to tests/test_morphpdftordf.py diff --git a/src/diffpy/pdfmorph/tests/test_morphrdftopdf.py b/tests/test_morphrdftopdf.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphrdftopdf.py rename to tests/test_morphrdftopdf.py diff --git a/src/diffpy/pdfmorph/tests/test_morphresolution.py b/tests/test_morphresolution.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphresolution.py rename to tests/test_morphresolution.py diff --git a/src/diffpy/pdfmorph/tests/test_morphrgrid.py b/tests/test_morphrgrid.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphrgrid.py rename to tests/test_morphrgrid.py diff --git a/src/diffpy/pdfmorph/tests/test_morphscale.py b/tests/test_morphscale.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphscale.py rename to tests/test_morphscale.py diff --git a/src/diffpy/pdfmorph/tests/test_morphshape.py b/tests/test_morphshape.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphshape.py rename to tests/test_morphshape.py diff --git a/src/diffpy/pdfmorph/tests/test_morphsmear.py b/tests/test_morphsmear.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphsmear.py rename to tests/test_morphsmear.py diff --git a/src/diffpy/pdfmorph/tests/test_morphstretch.py b/tests/test_morphstretch.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_morphstretch.py rename to tests/test_morphstretch.py diff --git a/src/diffpy/pdfmorph/tests/test_pdfmorphapp.py b/tests/test_pdfmorphapp.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_pdfmorphapp.py rename to tests/test_pdfmorphapp.py diff --git a/src/diffpy/pdfmorph/tests/test_pdfmorphio.py b/tests/test_pdfmorphio.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_pdfmorphio.py rename to tests/test_pdfmorphio.py diff --git a/src/diffpy/pdfmorph/tests/test_pdfplot.py b/tests/test_pdfplot.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_pdfplot.py rename to tests/test_pdfplot.py diff --git a/src/diffpy/pdfmorph/tests/test_refine.py b/tests/test_refine.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_refine.py rename to tests/test_refine.py diff --git a/src/diffpy/pdfmorph/tests/test_tools.py b/tests/test_tools.py similarity index 100% rename from src/diffpy/pdfmorph/tests/test_tools.py rename to tests/test_tools.py diff --git a/tests/test_version.py b/tests/test_version.py new file mode 100644 index 00000000..db948e0e --- /dev/null +++ b/tests/test_version.py @@ -0,0 +1,10 @@ +"""Unit tests for __version__.py +""" + +import diffpy.pdfmorph + + +def test_package_version(): + """Ensure the package version is defined and not set to the initial placeholder.""" + assert hasattr(diffpy.pdfmorph, "__version__") + assert diffpy.pdfmorph.__version__ != "0.0.0" diff --git a/src/diffpy/pdfmorph/tests/testdata/ni_qmax25.cgr b/tests/testdata/ni_qmax25.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/ni_qmax25.cgr rename to tests/testdata/ni_qmax25.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/ni_qmax25_e17.5_p5.0.cgr b/tests/testdata/ni_qmax25_e17.5_p5.0.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/ni_qmax25_e17.5_p5.0.cgr rename to tests/testdata/ni_qmax25_e17.5_p5.0.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/ni_qmax25_psize35.cgr b/tests/testdata/ni_qmax25_psize35.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/ni_qmax25_psize35.cgr rename to tests/testdata/ni_qmax25_psize35.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/ni_qmax25_qdamp0.01.cgr b/tests/testdata/ni_qmax25_qdamp0.01.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/ni_qmax25_qdamp0.01.cgr rename to tests/testdata/ni_qmax25_qdamp0.01.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/nickel_ss0.01.cgr b/tests/testdata/nickel_ss0.01.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/nickel_ss0.01.cgr rename to tests/testdata/nickel_ss0.01.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/nickel_ss0.02.cgr b/tests/testdata/nickel_ss0.02.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/nickel_ss0.02.cgr rename to tests/testdata/nickel_ss0.02.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/nickel_ss0.02_eps0.002.cgr b/tests/testdata/nickel_ss0.02_eps0.002.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/nickel_ss0.02_eps0.002.cgr rename to tests/testdata/nickel_ss0.02_eps0.002.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morph_Reference_Table.txt b/tests/testdata/testsaving/succinct/Morph_Reference_Table.txt similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morph_Reference_Table.txt rename to tests/testdata/testsaving/succinct/Morph_Reference_Table.txt diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_a.cgr b/tests/testdata/testsaving/succinct/Morphs/mwt_a.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_a.cgr rename to tests/testdata/testsaving/succinct/Morphs/mwt_a.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_b.cgr b/tests/testdata/testsaving/succinct/Morphs/mwt_b.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_b.cgr rename to tests/testdata/testsaving/succinct/Morphs/mwt_b.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_c.cgr b/tests/testdata/testsaving/succinct/Morphs/mwt_c.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_c.cgr rename to tests/testdata/testsaving/succinct/Morphs/mwt_c.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_d.cgr b/tests/testdata/testsaving/succinct/Morphs/mwt_d.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_d.cgr rename to tests/testdata/testsaving/succinct/Morphs/mwt_d.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_e.cgr b/tests/testdata/testsaving/succinct/Morphs/mwt_e.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_e.cgr rename to tests/testdata/testsaving/succinct/Morphs/mwt_e.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_f.cgr b/tests/testdata/testsaving/succinct/Morphs/mwt_f.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/Morphs/mwt_f.cgr rename to tests/testdata/testsaving/succinct/Morphs/mwt_f.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/single_succinct_morph.cgr b/tests/testdata/testsaving/succinct/single_succinct_morph.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/succinct/single_succinct_morph.cgr rename to tests/testdata/testsaving/succinct/single_succinct_morph.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morph_Reference_Table.txt b/tests/testdata/testsaving/verbose/Morph_Reference_Table.txt similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morph_Reference_Table.txt rename to tests/testdata/testsaving/verbose/Morph_Reference_Table.txt diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_a.cgr b/tests/testdata/testsaving/verbose/Morphs/mwt_a.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_a.cgr rename to tests/testdata/testsaving/verbose/Morphs/mwt_a.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_b.cgr b/tests/testdata/testsaving/verbose/Morphs/mwt_b.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_b.cgr rename to tests/testdata/testsaving/verbose/Morphs/mwt_b.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_c.cgr b/tests/testdata/testsaving/verbose/Morphs/mwt_c.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_c.cgr rename to tests/testdata/testsaving/verbose/Morphs/mwt_c.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_d.cgr b/tests/testdata/testsaving/verbose/Morphs/mwt_d.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_d.cgr rename to tests/testdata/testsaving/verbose/Morphs/mwt_d.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_e.cgr b/tests/testdata/testsaving/verbose/Morphs/mwt_e.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_e.cgr rename to tests/testdata/testsaving/verbose/Morphs/mwt_e.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_f.cgr b/tests/testdata/testsaving/verbose/Morphs/mwt_f.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/Morphs/mwt_f.cgr rename to tests/testdata/testsaving/verbose/Morphs/mwt_f.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/single_verbose_morph.cgr b/tests/testdata/testsaving/verbose/single_verbose_morph.cgr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsaving/verbose/single_verbose_morph.cgr rename to tests/testdata/testsaving/verbose/single_verbose_morph.cgr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence/a_210K.gr b/tests/testdata/testsequence/a_210K.gr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence/a_210K.gr rename to tests/testdata/testsequence/a_210K.gr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence/b_204K.gr b/tests/testdata/testsequence/b_204K.gr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence/b_204K.gr rename to tests/testdata/testsequence/b_204K.gr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence/c_198K.gr b/tests/testdata/testsequence/c_198K.gr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence/c_198K.gr rename to tests/testdata/testsequence/c_198K.gr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence/d_192K.gr b/tests/testdata/testsequence/d_192K.gr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence/d_192K.gr rename to tests/testdata/testsequence/d_192K.gr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence/e_186K.gr b/tests/testdata/testsequence/e_186K.gr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence/e_186K.gr rename to tests/testdata/testsequence/e_186K.gr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence/f_180K.gr b/tests/testdata/testsequence/f_180K.gr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence/f_180K.gr rename to tests/testdata/testsequence/f_180K.gr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence/g_174K.gr b/tests/testdata/testsequence/g_174K.gr similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence/g_174K.gr rename to tests/testdata/testsequence/g_174K.gr diff --git a/src/diffpy/pdfmorph/tests/testdata/testsequence_serialfile.json b/tests/testdata/testsequence_serialfile.json similarity index 100% rename from src/diffpy/pdfmorph/tests/testdata/testsequence_serialfile.json rename to tests/testdata/testsequence_serialfile.json From ec4462e1186b96060185e8834ab3b0e8ae7bd8c4 Mon Sep 17 00:00:00 2001 From: Sparks29032 Date: Wed, 2 Oct 2024 10:52:56 -0400 Subject: [PATCH 2/5] root, req --- .pre-commit-config.yaml | 5 ++- AUTHORS.rst | 2 +- MANIFEST.in | 27 +++++++--------- doc/make.bat | 72 ++++++++++++++++++++--------------------- pyproject.toml | 14 ++++---- requirements/README.txt | 11 +++++++ requirements/run.txt | 2 +- 7 files changed, 72 insertions(+), 61 deletions(-) create mode 100644 requirements/README.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c4588061..3070e199 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,7 +16,10 @@ repos: - id: check-yaml - id: end-of-file-fixer - id: trailing-whitespace - exclude: '\.(rst|txt)$' + - id: check-case-conflict + - id: check-merge-conflict + - id: check-toml + - id: check-added-large-files - repo: https://github.com/psf/black rev: 24.4.2 hooks: diff --git a/AUTHORS.rst b/AUTHORS.rst index 275ef04d..dfff1afe 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -1,7 +1,7 @@ Authors ======= -Billinge Group and community contibutors. +Billinge Group and community contributors. Contributors ------------ diff --git a/MANIFEST.in b/MANIFEST.in index f2ad51bc..f1a78eec 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,15 +1,12 @@ -include AUTHORS.rst -include LICENSE -include README.rst -include requirements.txt - -recursive-exclude * __pycache__ -recursive-exclude * *.py[co] - -recursive-include docs *.rst conf.py Makefile make.bat - -include versioneer.py -include diffpy.pdfmorph/_version.py - -# If including data files in the package, add them like: -# include path/to/data_file +graft src +graft tests +graft requirements + +include AUTHORS.rst LICENSE*.rst README.rst + +# Exclude all bytecode files and __pycache__ directories +global-exclude *.py[cod] # Exclude all .pyc, .pyo, and .pyd files. +global-exclude .DS_Store # Exclude Mac filesystem artifacts. +global-exclude __pycache__ # Exclude Python cache directories. +global-exclude .git* # Exclude git files and directories. +global-exclude .idea # Exclude PyCharm project settings. diff --git a/doc/make.bat b/doc/make.bat index 2be83069..ac53d5bd 100644 --- a/doc/make.bat +++ b/doc/make.bat @@ -1,36 +1,36 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=build -set SPHINXPROJ=PackagingScientificPython - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% - -:end -popd +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build +set SPHINXPROJ=PackagingScientificPython + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/pyproject.toml b/pyproject.toml index b079a99c..885a23bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,10 @@ [build-system] -requires = ["setuptools>=62.0", "setuptools-git-versioning<2"] +requires = ["setuptools>=62.0", "setuptools-git-versioning>=2.0"] build-backend = "setuptools.build_meta" [project] name = "diffpy.pdfmorph" -dynamic=['version'] +dynamic=['version', 'dependencies'] authors = [ { name="Simon J.L. Billinge group", email="simon.billinge@gmail.com" }, ] @@ -37,10 +37,7 @@ pdfmorph = "diffpy.pdfmorph.pdfmorphapp:main" [project.urls] Homepage = "https://github.com/diffpy/diffpy.pdfmorph/" -Issues = "https://github.com/diffpy/diffpy.pdfmorph/issues" - -[tool.pytest.ini_options] -pythonpath = ["src"] +Issues = "https://github.com/diffpy/diffpy.pdfmorph/issues/" [tool.setuptools-git-versioning] enabled = true @@ -51,9 +48,12 @@ dirty_template = "{tag}" [tool.setuptools.packages.find] where = ["src"] # list of folders that contain the packages (["."] by default) include = ["*"] # package names should match these glob patterns (["*"] by default) -exclude = ["diffpy.pdfmorph.tests*"] # exclude packages matching these glob patterns (empty by default) +exclude = ["tests"] # exclude packages matching these glob patterns (empty by default) namespaces = false # to disable scanning PEP 420 namespaces (true by default) +[tool.setuptools.dynamic] +dependencies = {file = ["requirements/run.txt"]} + [tool.black] line-length = 115 include = '\.pyi?$' diff --git a/requirements/README.txt b/requirements/README.txt new file mode 100644 index 00000000..dc34909d --- /dev/null +++ b/requirements/README.txt @@ -0,0 +1,11 @@ +# YOU MAY DELETE THIS FILE AFTER SETTING UP DEPENDENCIES! +# +# This directory is where you should place your project dependencies. +# "pip.txt" should contain all required packages not available on conda. +# All other files should contain only packages available to download from conda. +# build.txt should contain all packages required to build (not run) the project. +# run.txt should contain all packages (including optional packages) required for a user to run the program. +# test.txt should contain all packages required for the testing suite and to ensure all tests pass. +# docs.txt should contain all packages required for building the package documentation page. +# +# YOU MAY DELETE THIS FILE AFTER SETTING UP DEPENDENCIES! diff --git a/requirements/run.txt b/requirements/run.txt index e67cf6e2..a8bb45b4 100644 --- a/requirements/run.txt +++ b/requirements/run.txt @@ -1,5 +1,5 @@ numpy scipy diffpy.utils -matplotlib-base +matplotlib bg-mpl-stylesheets From 2b3f49541572f882ef59f36737e4f39701739b83 Mon Sep 17 00:00:00 2001 From: Sparks29032 Date: Wed, 2 Oct 2024 11:06:36 -0400 Subject: [PATCH 3/5] Fix mpl-base pip compat --- README.rst | 2 +- TODO.txt | 2 -- pyproject.toml | 2 +- requirements/pip.txt | 5 +++++ requirements/run.txt | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) delete mode 100644 TODO.txt diff --git a/README.rst b/README.rst index e7ef8fcc..c476e9f7 100644 --- a/README.rst +++ b/README.rst @@ -115,7 +115,7 @@ Another option is to use ``pip`` to download and install the latest release from `Python Package Index `_. To install using ``pip`` into your ``diffpy.pdfmorph_env`` environment, we will also have to install dependencies :: - pip install -r https://raw.githubusercontent.com/diffpy/diffpy.pdfmorph/main/requirements/run.txt + pip install -r https://raw.githubusercontent.com/diffpy/diffpy.pdfmorph/main/requirements/pip.txt and then install the package :: diff --git a/TODO.txt b/TODO.txt deleted file mode 100644 index 6888354e..00000000 --- a/TODO.txt +++ /dev/null @@ -1,2 +0,0 @@ -* Add qmax filtering, automatic qmax detection. -* Factor out data loading and writing. diffpy.tools? diff --git a/pyproject.toml b/pyproject.toml index 885a23bd..5924635e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,7 @@ exclude = ["tests"] # exclude packages matching these glob patterns (empty by d namespaces = false # to disable scanning PEP 420 namespaces (true by default) [tool.setuptools.dynamic] -dependencies = {file = ["requirements/run.txt"]} +dependencies = {file = ["requirements/pip.txt"]} [tool.black] line-length = 115 diff --git a/requirements/pip.txt b/requirements/pip.txt index e69de29b..a8bb45b4 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -0,0 +1,5 @@ +numpy +scipy +diffpy.utils +matplotlib +bg-mpl-stylesheets diff --git a/requirements/run.txt b/requirements/run.txt index a8bb45b4..e67cf6e2 100644 --- a/requirements/run.txt +++ b/requirements/run.txt @@ -1,5 +1,5 @@ numpy scipy diffpy.utils -matplotlib +matplotlib-base bg-mpl-stylesheets From f0b08f121d60e312414e23584311a03de88a1045 Mon Sep 17 00:00:00 2001 From: Sparks29032 Date: Wed, 2 Oct 2024 11:21:12 -0400 Subject: [PATCH 4/5] Test fix --- src/diffpy/pdfmorph/pdfplot.py | 2 +- tests/test_morph_func.py | 2 +- tests/test_pdfplot.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diffpy/pdfmorph/pdfplot.py b/src/diffpy/pdfmorph/pdfplot.py index 57478ac9..16bd078f 100644 --- a/src/diffpy/pdfmorph/pdfplot.py +++ b/src/diffpy/pdfmorph/pdfplot.py @@ -18,7 +18,7 @@ import numpy from bg_mpl_stylesheets.styles import all_styles -plt.style.use(all_styles["bg_style"]) +plt.style.use(all_styles["bg-style"]) # FIXME - make this return the figure object in the future, so several views diff --git a/tests/test_morph_func.py b/tests/test_morph_func.py index e22d9742..30b1c54a 100644 --- a/tests/test_morph_func.py +++ b/tests/test_morph_func.py @@ -4,7 +4,7 @@ import numpy as np from diffpy.pdfmorph.pdfmorph_api import morph_default_config, pdfmorph -from diffpy.pdfmorph.tests.test_morphstretch import heaviside +from tests.test_morphstretch import heaviside def test_morphfunc_verbose(): diff --git a/tests/test_pdfplot.py b/tests/test_pdfplot.py index 0fe56d4d..012efb1b 100644 --- a/tests/test_pdfplot.py +++ b/tests/test_pdfplot.py @@ -6,7 +6,7 @@ import numpy as np from diffpy.pdfmorph.pdfmorph_api import morph_default_config, pdfmorph, plot_morph -from diffpy.pdfmorph.tests.test_morphstretch import heaviside +from tests.test_morphstretch import heaviside # smoke test From 92b5801ca1133dbef6d88e7dd3cc0740d0d134d0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:23:05 +0000 Subject: [PATCH 5/5] [pre-commit.ci] auto fixes from pre-commit hooks --- README.rst | 6 +++--- TUTORIAL.rst | 2 +- doc/source/index.rst | 40 ++++++++++++++++++++-------------------- doc/source/license.rst | 4 ++-- requirements/README.txt | 2 +- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/README.rst b/README.rst index c476e9f7..60966ec8 100644 --- a/README.rst +++ b/README.rst @@ -75,8 +75,8 @@ REQUIREMENTS ------------------------------------------------------------------------ PDFmorph is currently run from the command line, which requires opening -and typing into a terminal window or Windows command prompt. It is -recommended that you consult online resources and become somewhat +and typing into a terminal window or Windows command prompt. It is +recommended that you consult online resources and become somewhat familiar before using PDFmorph. PDFmorph can be run with Python 3.10 or higher. It makes use of several third party @@ -160,7 +160,7 @@ Support and Contribute `Diffpy user group `_ is the discussion forum for general questions and discussions about the use of diffpy.pdfmorph. Please join the diffpy.pdfmorph users community by joining the Google group. The diffpy.pdfmorph project welcomes your expertise and enthusiasm! -If you see a bug or want to request a feature, please `report it as an issue `_ and/or `submit a fix as a PR `_. You can also post it to the `Diffpy user group `_. +If you see a bug or want to request a feature, please `report it as an issue `_ and/or `submit a fix as a PR `_. You can also post it to the `Diffpy user group `_. Feel free to fork the project and contribute. To install diffpy.pdfmorph in a development mode, with its sources being directly used by Python diff --git a/TUTORIAL.rst b/TUTORIAL.rst index 1cee58c0..114ebd2f 100644 --- a/TUTORIAL.rst +++ b/TUTORIAL.rst @@ -183,5 +183,5 @@ Enjoy the software! Bug Reports ----------- -Please enjoy using our software! If you come accross any bugs in the +Please enjoy using our software! If you come accross any bugs in the application, please report them to diffpy-dev@googlegroups.com diff --git a/doc/source/index.rst b/doc/source/index.rst index 2a2bde35..eebd5462 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -10,33 +10,33 @@ diffpy.pdfmorph - Tools for manipulating and comparing PDF profiles. Introduction ++++++++++++ -``PDFmorph`` is a Python package that increases the insight -researchers can obtain from measured atomic pair distribution functions -(PDFs) in a model-independent way. It was designed to help a -researcher answer the question: "Has my material undergone a phase +``PDFmorph`` is a Python package that increases the insight +researchers can obtain from measured atomic pair distribution functions +(PDFs) in a model-independent way. It was designed to help a +researcher answer the question: "Has my material undergone a phase transition between these two measurements?" -One approach is to compare the two PDFs in a plot and view the -difference curve underneath. However, significant signal can be seen in -the difference curve from benign effects such as thermal expansion (peak -shifts) and increased thermal motion (peak broadening) or a change in -scale due to differences in incident flux, for example. ``PDFmorph`` will -do its best to correct for these benign effects before computing and -plotting the difference curve. One measured PDF (typically that -collected under higher temperature) is identified as the target PDF and +One approach is to compare the two PDFs in a plot and view the +difference curve underneath. However, significant signal can be seen in +the difference curve from benign effects such as thermal expansion (peak +shifts) and increased thermal motion (peak broadening) or a change in +scale due to differences in incident flux, for example. ``PDFmorph`` will +do its best to correct for these benign effects before computing and +plotting the difference curve. One measured PDF (typically that +collected under higher temperature) is identified as the target PDF and the second PDF is then morphed by "stretching" (changing the r-axis to -simulate a uniform lattice expansion), "smearing" (broadening peaks -through a uniform convolution to simulate increased thermal motion), and -"scaling" (self-explanatory). PDFmorph will vary the amplitude of the -morphing transformations to obtain the best fit between the morphed and -the target PDFs, then plot them on top of each other with the difference +simulate a uniform lattice expansion), "smearing" (broadening peaks +through a uniform convolution to simulate increased thermal motion), and +"scaling" (self-explanatory). PDFmorph will vary the amplitude of the +morphing transformations to obtain the best fit between the morphed and +the target PDFs, then plot them on top of each other with the difference plotted below. There are also a few other morphing transformations in the program. If no morphing transformation is specified, ``PDFmorph`` will return just the plotted PDFs. -Finally, we note that though ``PDFmorph`` should work on other spectra +Finally, we note that though ``PDFmorph`` should work on other spectra that are not PDFs, it has not been extensively tested beyond the PDF. To get started, please download our :download:`user manual <../manual/pdfmorph.pdf>` @@ -46,8 +46,8 @@ or visit the :ref:`quick_start`. Authors ======= -``PDFmorph`` is developed by members of the Billinge Group at -Columbia University and Brookhaven National Laboratory including +``PDFmorph`` is developed by members of the Billinge Group at +Columbia University and Brookhaven National Laboratory including Christopher L. Farrow, Christopher J. Wright, Pavol Juhás, Chia-Hao (Timothy) Liu, Andrew Yang, and Simon J. L. Billinge. diff --git a/doc/source/license.rst b/doc/source/license.rst index cfab61c2..9ae52a98 100644 --- a/doc/source/license.rst +++ b/doc/source/license.rst @@ -9,9 +9,9 @@ OPEN SOURCE LICENSE AGREEMENT ============================= BSD 3-Clause License -Copyright (c) 2024, The Trustees of Columbia University in +Copyright (c) 2024, The Trustees of Columbia University in the City of New York. -All Rights Reserved. +All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/requirements/README.txt b/requirements/README.txt index dc34909d..3de372a7 100644 --- a/requirements/README.txt +++ b/requirements/README.txt @@ -2,7 +2,7 @@ # # This directory is where you should place your project dependencies. # "pip.txt" should contain all required packages not available on conda. -# All other files should contain only packages available to download from conda. +# All other files should contain only packages available to download from conda. # build.txt should contain all packages required to build (not run) the project. # run.txt should contain all packages (including optional packages) required for a user to run the program. # test.txt should contain all packages required for the testing suite and to ensure all tests pass.