diff --git a/.codespell/ignore_words.txt b/.codespell/ignore_words.txt index 9892d4d..04b4fcf 100644 --- a/.codespell/ignore_words.txt +++ b/.codespell/ignore_words.txt @@ -4,11 +4,5 @@ ;; abbreviation for "materials" often used in a journal title mater -;; alternative use of socioeconomic -socio-economic - ;; Frobenius norm used in np.linalg.norm fro - -;; cutted used as attribute in unit_test.py and fourigui.py -cutted diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 3bfb78e..0000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -diffpy.fourigui/_version.py export-subst diff --git a/.github/ISSUE_TEMPLATE/release_checklist.md b/.github/ISSUE_TEMPLATE/release_checklist.md index fa94779..6107962 100644 --- a/.github/ISSUE_TEMPLATE/release_checklist.md +++ b/.github/ISSUE_TEMPLATE/release_checklist.md @@ -13,30 +13,30 @@ assignees: "" - [ ] License information is verified as correct. If you are unsure, please comment below. - [ ] Locally rendered documentation contains all appropriate pages, including API references (check no modules are missing), tutorials, and other human-written text is up-to-date with any changes in the code. -- [ ] Installation instructions in the README, documentation, and the website (e.g., diffpy.org) are updated. +- [ ] Installation instructions in the README, documentation, and the website are updated. - [ ] Successfully run any tutorial examples or do functional testing with the latest Python version. - [ ] Grammar and writing quality are checked (no typos). - [ ] Install `pip install build twine`, run `python -m build` and `twine check dist/*` to ensure that the package can be built and is correctly formatted for PyPI release. -Please mention @sbillinge here when you are ready for PyPI/GitHub release. Include any additional comments necessary, such as version information and details about the pre-release here: +Please tag the maintainer (e.g., @username) in the comment here when you are ready for the PyPI/GitHub release. Include any additional comments necessary, such as version information and details about the pre-release here: ### PyPI/GitHub full-release preparation checklist: - [ ] Create a new conda environment and install the rc from PyPI (`pip install ==??`) - [ ] License information on PyPI is correct. -- [ ] Docs are deployed successfully to `https://www.diffpy.org/`. +- [ ] Docs are deployed successfully to `https:///`. - [ ] Successfully run all tests, tutorial examples or do functional testing. -Please let @sbillinge know that all checks are done and the package is ready for full release. +Please let the maintainer know that all checks are done and the package is ready for full release. ### conda-forge release preparation checklist: - + - [ ] Ensure that the full release has appeared on PyPI successfully. - [ ] New package dependencies listed in `conda.txt` and `test.txt` are added to `meta.yaml` in the feedstock. -- [ ] Close any open issues on the feedstock. Reach out to @bobleesj if you have questions. -- [ ] Tag @sbillinge and @bobleesj for conda-forge release. +- [ ] Close any open issues on the feedstock. Reach out to the maintainer if you have questions. +- [ ] Tag the maintainer for conda-forge release. ### Post-release checklist diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 0000000..1099d86 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,15 @@ +### What problem does this PR address? + + + +### What should the reviewer(s) do? + + + + diff --git a/.github/workflows/build-wheel-release-upload.yml b/.github/workflows/build-wheel-release-upload.yml index a76326f..9a5c02a 100644 --- a/.github/workflows/build-wheel-release-upload.yml +++ b/.github/workflows/build-wheel-release-upload.yml @@ -8,11 +8,11 @@ on: jobs: release: - uses: Billingegroup/release-scripts/.github/workflows/_build-wheel-release-upload.yml@v0 + uses: scikit-package/release-scripts/.github/workflows/_build-wheel-release-upload.yml@v0 with: project: diffpy.fourigui c_extension: false - github_admin_username: sbillinge + maintainer_GITHUB_username: sbillinge secrets: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} PAT_TOKEN: ${{ secrets.PAT_TOKEN }} diff --git a/.github/workflows/check-news-item.yml b/.github/workflows/check-news-item.yml index bffeec5..b2e5954 100644 --- a/.github/workflows/check-news-item.yml +++ b/.github/workflows/check-news-item.yml @@ -7,6 +7,6 @@ on: jobs: check-news-item: - uses: Billingegroup/release-scripts/.github/workflows/_check-news-item.yml@v0 + uses: scikit-package/release-scripts/.github/workflows/_check-news-item.yml@v0 with: project: diffpy.fourigui diff --git a/.github/workflows/matrix-and-codecov-on-merge-to-main.yml b/.github/workflows/matrix-and-codecov-on-merge-to-main.yml index 927a57a..d6b98ad 100644 --- a/.github/workflows/matrix-and-codecov-on-merge-to-main.yml +++ b/.github/workflows/matrix-and-codecov-on-merge-to-main.yml @@ -12,7 +12,7 @@ on: jobs: matrix-coverage: - uses: Billingegroup/release-scripts/.github/workflows/_matrix-and-codecov-on-merge-to-main.yml@v0 + uses: scikit-package/release-scripts/.github/workflows/_matrix-and-codecov-on-merge-to-main.yml@v0 with: project: diffpy.fourigui c_extension: false diff --git a/.github/workflows/publish-docs-on-release.yml b/.github/workflows/publish-docs-on-release.yml index efd905b..3a785cd 100644 --- a/.github/workflows/publish-docs-on-release.yml +++ b/.github/workflows/publish-docs-on-release.yml @@ -5,7 +5,7 @@ on: jobs: docs: - uses: Billingegroup/release-scripts/.github/workflows/_publish-docs-on-release.yml@v0 + uses: scikit-package/release-scripts/.github/workflows/_publish-docs-on-release.yml@v0 with: project: diffpy.fourigui c_extension: false diff --git a/.github/workflows/tests-on-pr.yml b/.github/workflows/tests-on-pr.yml index 9cb0637..5b2aafb 100644 --- a/.github/workflows/tests-on-pr.yml +++ b/.github/workflows/tests-on-pr.yml @@ -1,15 +1,12 @@ name: Tests on PR on: - push: - branches: - - main pull_request: workflow_dispatch: jobs: tests-on-pr: - uses: Billingegroup/release-scripts/.github/workflows/_tests-on-pr.yml@v0 + uses: scikit-package/release-scripts/.github/workflows/_tests-on-pr.yml@v0 with: project: diffpy.fourigui c_extension: false diff --git a/.gitignore b/.gitignore index d418364..099e294 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ __pycache__/ .Python env/ build/ +_build/ develop-eggs/ dist/ downloads/ diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..47f7a01 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,13 @@ +version: 2 + +build: + os: "ubuntu-22.04" + tools: + python: "latest" + +python: + install: + - requirements: requirements/docs.txt + +sphinx: + configuration: doc/source/conf.py diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5f9de9e..07e9ec8 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,5 @@ ============= -Release Notes +Release notes ============= .. current developments diff --git a/CODE_OF_CONDUCT.rst b/CODE_OF_CONDUCT.rst index ff9c356..e8199ca 100644 --- a/CODE_OF_CONDUCT.rst +++ b/CODE_OF_CONDUCT.rst @@ -8,7 +8,7 @@ Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, +identity and expression, level of experience, education, socioeconomic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. diff --git a/README.rst b/README.rst index a6cbda8..2eded6d 100644 --- a/README.rst +++ b/README.rst @@ -8,7 +8,7 @@ :target: https://diffpy.github.io/diffpy.fourigui :height: 100px -|PyPi| |Forge| |PythonVersion| |PR| +|PyPI| |Forge| |PythonVersion| |PR| |CI| |Codecov| |Black| |Tracking| @@ -26,7 +26,7 @@ .. |PR| image:: https://img.shields.io/badge/PR-Welcome-29ab47ff -.. |PyPi| image:: https://img.shields.io/pypi/v/diffpy.fourigui +.. |PyPI| image:: https://img.shields.io/pypi/v/diffpy.fourigui :target: https://pypi.org/project/diffpy.fourigui/ .. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/diffpy.fourigui @@ -129,4 +129,9 @@ Before contributing, please read our `Code of Conduct `_ or email Prof. Simon Billinge at sb2896@columbia.edu. +For more information on diffpy.fourigui please visit the project `web-page `_ or email Simon Billinge at sb2896@columbia.edu. + +Acknowledgements +---------------- + +``diffpy.fourigui`` is built and maintained with `scikit-package `_. diff --git a/doc/make.bat b/doc/make.bat index 2be8306..ac53d5b 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/doc/source/api/diffpy.fourigui.rst b/doc/source/api/diffpy.fourigui.rst index b83d1cb..564ddb3 100644 --- a/doc/source/api/diffpy.fourigui.rst +++ b/doc/source/api/diffpy.fourigui.rst @@ -8,6 +8,12 @@ diffpy.fourigui package :undoc-members: :show-inheritance: +Subpackages +----------- + +.. toctree:: + diffpy.fourigui.example_package + Submodules ---------- diff --git a/doc/source/conf.py b/doc/source/conf.py index 597b0e2..06f8431 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # -# diffpy.fourigui documentation build configuration file, created by +# diffpy.fourigui documentation build configuration file, created by # noqa: E501 # sphinx-quickstart on Thu Jan 30 15:49:41 2014. # # This file is execfile()d with the current directory set to its @@ -18,9 +18,15 @@ from importlib.metadata import version from pathlib import Path +# Attempt to import the version dynamically from GitHub tag. +try: + fullversion = version("diffpy.fourigui") +except Exception: + fullversion = "No version found. The correct version will appear in the released version." # noqa: E501 + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the -# documentation root, use Path().resolve() to make it absolute, like shown here. +# documentation root, use Path().resolve() to make it absolute, like shown here. # noqa: E501 # sys.path.insert(0, str(Path(".").resolve())) sys.path.insert(0, str(Path("../..").resolve())) sys.path.insert(0, str(Path("../../src").resolve())) @@ -43,6 +49,7 @@ "sphinx.ext.viewcode", "sphinx.ext.intersphinx", "sphinx_rtd_theme", + "sphinx_copybutton", "m2r", ] @@ -90,6 +97,11 @@ # substitute YEAR in the copyright string copyright = copyright.replace("%Y", year) +# For sphinx_copybutton extension. +# Do not copy "$" for shell commands in code-blocks. +copybutton_prompt_text = r"^\$ " +copybutton_prompt_is_regexp = True + # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ["build"] @@ -125,6 +137,14 @@ # html_theme = "sphinx_rtd_theme" +html_context = { + "display_github": True, + "github_user": "diffpy", + "github_repo": "diffpy.fourigui", + "github_version": "main", + "conf_py_path": "/doc/source/", +} + # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. diff --git a/requirements/build.txt b/doc/source/img/.placeholder similarity index 100% rename from requirements/build.txt rename to doc/source/img/.placeholder diff --git a/doc/source/index.rst b/doc/source/index.rst index 6f6164e..8ecec60 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -4,19 +4,25 @@ .. |title| replace:: diffpy.fourigui documentation -diffpy.fourigui - Tool for visualizing 3D diffraction and PDF images. +``diffpy.fourigui`` - Tool for visualizing 3D diffraction and PDF images. -| Software version |release|. +| Software version |release| | Last updated |today|. +=============== +Getting started +=============== + +Welcome to the ``diffpy.fourigui`` documentation! + +To get started, please visit the :ref:`Getting started ` page. + ======= Authors ======= -diffpy.fourigui is developed by Billinge Group -and its community contributors. - -For a detailed list of contributors see +``diffpy.fourigui`` is developed by Billinge Group +and its community contributors. For a detailed list of contributors see https://github.com/diffpy/diffpy.fourigui/graphs/contributors. ============ @@ -26,16 +32,23 @@ Installation See the `README `_ file included with the distribution. +================ +Acknowledgements +================ + +``diffpy.fourigui`` is built and maintained with `scikit-package `_. + ================= Table of contents ================= .. toctree:: - :titlesonly: + :maxdepth: 2 + getting-started tutorial - license - release Package API + release + license ======= Indices diff --git a/doc/source/snippets/.placeholder b/doc/source/snippets/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/environment.yml b/environment.yml deleted file mode 100644 index 828fbd4..0000000 --- a/environment.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: diffpy.fourigui -channels: - - conda-forge -dependencies: - - python=3 - - pip diff --git a/news/doc.rst b/news/doc.rst new file mode 100644 index 0000000..b0ec659 --- /dev/null +++ b/news/doc.rst @@ -0,0 +1,23 @@ +**Added:** + +* + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* Support ``scikit-package`` Level 5 standard (https://scikit-package.github.io/scikit-package/). + +**Security:** + +* diff --git a/pyproject.toml b/pyproject.toml index 9b70ac6..b5a477d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,6 +59,11 @@ exclude-file = ".codespell/ignore_lines.txt" ignore-words = ".codespell/ignore_words.txt" skip = "*.cif,*.dat" +[tool.docformatter] +recursive = true +wrap-summaries = 72 +wrap-descriptions = 72 + [tool.black] line-length = 79 include = '\.pyi?$' diff --git a/requirements/docs.txt b/requirements/docs.txt index ab17b1c..5f34c6e 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,4 +1,5 @@ sphinx sphinx_rtd_theme +sphinx-copybutton doctr m2r diff --git a/src/diffpy/fourigui/__init__.py b/src/diffpy/fourigui/__init__.py index b0c11f4..34277fb 100644 --- a/src/diffpy/fourigui/__init__.py +++ b/src/diffpy/fourigui/__init__.py @@ -15,7 +15,7 @@ """Tool for visualizing 3D diffraction and PDF images.""" # package version -from diffpy.fourigui.version import __version__ +from diffpy.fourigui.version import __version__ # noqa # silence the pyflakes syntax checker assert __version__ or True diff --git a/src/diffpy/fourigui/fourigui.py b/src/diffpy/fourigui/fourigui.py index f23e6b4..92faef2 100755 --- a/src/diffpy/fourigui/fourigui.py +++ b/src/diffpy/fourigui/fourigui.py @@ -30,7 +30,7 @@ def initUI(self): self.transformed = ( False # denotes whether dataset is Fourier transformed ) - self.cutted = ( + self.cutoff_applied = ( False # denotes whether cutoff frequencies are applied to dataset ) self.transcutted = ( @@ -285,10 +285,10 @@ def initUI(self): ) # , height=HEIGHT//2, width=WIDTH//2) def load_cube(self): - """Loads 3D array in h5py file format from the filename input panel 3D - array is expected to be a reconstructed reciprocal scattering volume - when executed, one slide perpendicular to the selected axis will be - plotted in the plot panel.""" + """Loads 3D array in h5py file format from the filename input + panel 3D array is expected to be a reconstructed reciprocal + scattering volume when executed, one slide perpendicular to the + selected axis will be plotted in the plot panel.""" filename = self.filename_entry.get() f = h5py.File(filename, "r") @@ -358,7 +358,7 @@ def load_cube(self): self.plot_plane() self.transformed = False self.transcutted = False - self.cutted = False + self.cutoff_applied = False self.cutoff.set(0) self.space.set(0) @@ -397,8 +397,8 @@ def colorrange_upd(self): self.plot_plane() def intensity_upd_local(self): - """Show local intensity minimum, maximum and sum of current plotted - plane.""" + """Show local intensity minimum, maximum and sum of current + plotted plane.""" if self.axis.get() == 0: plane = self.cube[self.plane_num.get(), :, :] elif self.axis.get() == 1: @@ -418,7 +418,8 @@ def intensity_upd_local(self): self.localnanratio["text"] = f"{round(nan_ratio, 2)}" def intensity_upd_global(self): - """Load global intensity minimum, maximum and sum of 3D array.""" + """Load global intensity minimum, maximum and sum of 3D + array.""" self.intensity_upd_local() nan_ratio = np.count_nonzero(np.isnan(self.cube)) / self.cube.size self.globalmax["text"] = ( @@ -433,8 +434,9 @@ def intensity_upd_global(self): self.globalnanratio["text"] = "{}".format(round(nan_ratio, 2)) def fft(self): - """Fourier transform 3D array from reciprocal to real space the origin - of reciprocal and real space is expected to be the central voxel.""" + """Fourier transform 3D array from reciprocal to real space the + origin of reciprocal and real space is expected to be the + central voxel.""" def perform_fft(fftholder): fftholder = np.nan_to_num(fftholder) @@ -487,9 +489,9 @@ def perform_fft(fftholder): self.intensity_upd_global() def ifft(self): - """Inverse Fourier transform 3D array from real to reciprocal space the - origin of real and reciprocal space is expected to be the central - voxel.""" + """Inverse Fourier transform 3D array from real to reciprocal + space the origin of real and reciprocal space is expected to be + the central voxel.""" if not self.cutoff.get(): self.cube_real = self.cube self.cube = self.cube_reci @@ -517,7 +519,7 @@ def applycutoff(self): -------- nothing """ - if not self.cutted: + if not self.cutoff_applied: xdim, ydim, zdim = self.cube.shape sphere = np.ones((xdim, ydim, zdim)) qmin = float(self.qminentry.get()) @@ -551,7 +553,7 @@ def applycutoff(self): self.plot_plane() self.intensity_upd_global() - self.cutted = True + self.cutoff_applied = True else: if self.space.get(): # in real space @@ -562,8 +564,8 @@ def applycutoff(self): self.intensity_upd_global() def redocutuff(self): - """Redo the cutoff operation depending on the current space (real or - reciprocal).""" + """Redo the cutoff operation depending on the current space + (real or reciprocal).""" if self.space.get(): # in real space self.cube_realcut = self.cube if not self.transformed: @@ -583,13 +585,13 @@ def newcutoff(self): self.cube = self.cube_real else: self.cube = self.cube_reci - self.cutted = False + self.cutoff_applied = False self.transcutted = False self.applycutoff() def plot_next_plane(self): - """Plot the next plane in the dataset, looping back to the first if at - the end.""" + """Plot the next plane in the dataset, looping back to the first + if at the end.""" n = self.plane_num.get() if n == len(self.cube[self.axis.get()]) - 1: n = 0 @@ -616,7 +618,8 @@ def animation(self): self.plot_next_plane() def multiple_funcs(*funcs): - """Executes multiple functions passed as arguments in sequence.""" + """Executes multiple functions passed as arguments in + sequence.""" for func in funcs: func diff --git a/src/diffpy/fourigui/version.py b/src/diffpy/fourigui/version.py index f52dcaa..434404d 100644 --- a/src/diffpy/fourigui/version.py +++ b/src/diffpy/fourigui/version.py @@ -7,7 +7,7 @@ # File coded by: Billinge Group members and community contributors. # # See GitHub contributions for a more detailed list of contributors. -# https://github.com/diffpy/diffpy.fourigui/graphs/contributors +# https://github.com/diffpy/diffpy.fourigui/graphs/contributors # noqa: E501 # # See LICENSE.rst for license information. # diff --git a/tests/test_fourigui.py b/tests/test_fourigui.py index f3f60d9..970f138 100644 --- a/tests/test_fourigui.py +++ b/tests/test_fourigui.py @@ -18,7 +18,7 @@ def setUp(self): def test_init(self): self.assertFalse(self.test_gui.loaded) self.assertFalse(self.test_gui.transformed) - self.assertFalse(self.test_gui.cutted) + self.assertFalse(self.test_gui.cutoff_applied) self.assertFalse(self.test_gui.transcutted) self.assertFalse(self.test_gui.cutoff.get()) self.assertFalse(self.test_gui.space.get()) @@ -81,7 +81,7 @@ def test_fft_010(self): self.assertTrue( not self.test_gui.transformed and self.test_gui.transcutted ) - # self.assertTrue(self.test_gui.cutted) + # self.assertTrue(self.test_gui.cutoff_applied) def test_fft_001(self): # given @@ -170,7 +170,7 @@ def test_applycutoff(mocker): mocker.patch.object( fg, "plot_plane" ) # we don't want it to plot anything so intercept - fg.cutted = False + fg.cutoff_applied = False fg.cube = np.ones((5, 5, 5)) expected_ones = np.ones((5, 5, 5)) expected_recip = np.array( @@ -229,7 +229,7 @@ def test_applycutoff(mocker): fg, "fft" ) # we don't want it to do the fft so intercept. # Should be tested separately (fixme). - fg.cutted = False + fg.cutoff_applied = False fg.cube_reci = np.ones((5, 5, 5)) fg.cube = np.ones((5, 5, 5)) mocker.patch.object(fg.space, "get", return_value=1) diff --git a/tests/test_version.py b/tests/test_version.py index 32b5ed4..2954e80 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -1,6 +1,6 @@ """Unit tests for __version__.py.""" -import diffpy.fourigui +import diffpy.fourigui # noqa def test_package_version():