Skip to content

Commit

Permalink
Merge branch 'main' into test-refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
nabobalis authored Oct 17, 2024
2 parents 7c6e835 + acfd391 commit c172904
Show file tree
Hide file tree
Showing 22 changed files with 227 additions and 286 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,24 @@ jobs:

- name: Tests, Python 3.12, Windows
os: windows-latest
noxenv: tests-3.12
noxenv: tests
python: '3.12'
noxposargs: --durations=10

- name: Tests, Python 3.11, Windows
os: windows-latest
noxenv: tests-3.11
noxenv: tests
python: '3.11'
noxposargs: --durations=10

- name: Tests, Python 3.10, macOS
os: macos-latest
noxenv: tests-3.10
noxenv: tests
python: '3.10'

- name: Tests, Python 3.10, Linux
os: ubuntu-latest
noxenv: tests-3.10
noxenv: tests
python: '3.10'

- name: Import XRTpy, Python 3.10, Linux
Expand Down Expand Up @@ -109,4 +109,4 @@ jobs:
pandoc --version
- name: Build documentation
run: nox -s build_docs_nitpicky -- -q
run: nox -s docs
22 changes: 6 additions & 16 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ci:
repos:

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
rev: v5.0.0
hooks:
- id: check-ast
name: validate Python code
Expand All @@ -23,7 +23,7 @@ repos:
- id: check-yaml

- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.29.2
rev: 0.29.3
hooks:
- id: check-github-workflows

Expand All @@ -47,11 +47,6 @@ repos:
args: [--autofix]
- id: pretty-format-yaml
args: [--autofix]
# For the labeler GitHub Action, labels with spaces in them must
# be put in quotes. However, the pretty-format-yaml hook will
# remove the quotes which will break that action (and certain other
# actions).
exclude: .github/labeler.yml|.pre-commit-search-and-replace.yaml

- repo: https://github.com/MarcoGorelli/absolufy-imports
rev: v0.3.1
Expand All @@ -62,8 +57,6 @@ repos:
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
- id: python-check-blanket-noqa
name: noqa comments have an error code
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
Expand All @@ -79,10 +72,10 @@ repos:
exclude: .*\.fits

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.3
rev: v0.6.9
hooks:
- id: ruff
name: ruff (see https://docs.astral.sh/ruff/rules)
name: ruff
args: [--fix]
- id: ruff-format
name: autoformat source code with ruff formatter
Expand All @@ -93,16 +86,13 @@ repos:
- id: blacken-docs
name: autoformat code blocks in docs
additional_dependencies:
- black==24.1.1
- black

- repo: https://github.com/nbQA-dev/nbQA
rev: 1.8.7
hooks:
- id: nbqa-check-ast
name: validate Python notebooks
- id: nbqa-ruff
name: ruff for notebooks (see https://docs.astral.sh/ruff/rules)
args: [--fix, '--select=A,ARG,B,BLE,C,C4,E,F,FLY,I,INT,ISC,PERF,PIE,PLC,PLE,PYI,Q003,RET,RSE,SIM,TID,TRY,UP,W', '--ignore=B018,E402,E501,PLC2401,TRY003']
- id: nbqa-black
additional_dependencies:
- black==24.1.1
- black
4 changes: 2 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ formats:
- htmlzip

build:
os: ubuntu-22.04
os: ubuntu-lts-latest
tools:
python: '3.11'
python: latest
apt_packages:
- graphviz
jobs:
Expand Down
76 changes: 76 additions & 0 deletions .ruff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
target-version = "py310"
show-fixes = true
extend-exclude = [
".jupyter",
"__pycache__",
"_build",
"_dev",
]

[lint]
# Find info about ruff rules at: https://docs.astral.sh/ruff/rules
extend-select = [
"ARG", # flake8-unused-arguments
"B", # flake8-bugbear
"BLE", # flake8-blind-except
"C4", # flake8-comprehensions
"C90", # mccabe
"COM818", # trailing-comma-on-bare-tuple
"FBT003", # flake8-boolean-trap
"FLY", # flynt
"I", # isort
"ICN", # flake8-import-conventions
"INP", # flake8-no-pep420
"INT", # flake8-gettext
"ISC", # flake8-implicit-str-concat
"N", # pep8-naming
"NPY", # numpy-deprecated-type-alias
"PD", # pandas-vet
"PERF", # perflint
"PGH", # pygrep-hooks
"PIE", # flake8-pie
"PLC", # pylint convention
"PLE", # pylint errors
"PLW", # pylint warnings
"PT", # flake8-pytest-style
"PTH", # flake8-use-pathlib
"PYI", # flake8-pyi
"RSE", # flake8-raise
"RUF005",# collection-literal-concatenation
"RUF006", # asyncio-dangling-task
"RUF007", # pairwise-over-zipped
"RUF008", # mutable-dataclass-default
"RUF009", # function-call-in-dataclass-default-argument
"RUF010", # explicit-f-string-type-conversion
"RUF013", # implicit-optional
"RUF015", # unnecessary-iterable-allocation-for-first-element
"RUF016", # invalid-index-type
"RUF100", # unused-noqa
"RUF200", # invalid-pyproject-toml
"S", # flake8-bandit
"SIM", # flake8-simplify
"TCH", # flake8-type-checking
"TID", # flake8-tidy-imports
"TRY", # tryceratops
"UP", # pyupgrade
"W", # pycodestyle warnings
]
ignore = [
"C901", # is too complex
"E501", # line-too-long
"ISC001", # single-line-implicit-string-concatenation (formatter conflict)
"N802", # invalid-function-name
"N803", # invalid-argument-name
"N806", # non-lowercase-variable-in-function
"N816", # mixed-case-variable-in-global-scope
"PLC2401", # non-ascii-name
"S101", # asserts
"SIM108", # if-else-block-instead-of-if-exp
"TRY003", # raise-vanilla-args
]

[lint.per-file-ignores]
"docs/conf.py" = [
"E402", # Module imports not at top of file
"INP001", # Implicit-namespace-package. The examples are not a package.
]
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@
[![Read the Docs Status](https://readthedocs.org/projects/xrtpy/badge/?version=latest&logo=twitter)](http://xrtpy.readthedocs.io/en/latest/?badge=latest)
[![astropy](http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat&logo=astropy)](http://www.astropy.org/)

XRTpy is a Python package being developed for the analysis of observations
made by the X-Ray Telescope (XRT) on the *Hinode* spacecraft.
XRTpy is a Python package being developed for the analysis of observations made by the X-Ray Telescope (XRT) on the **Hinode** spacecraft.

## Acknowledgements

The development of XRTpy is supported by NASA contract NNM07AB07C to the
Smithsonian Astrophysical Observatory.
The development of XRTpy is supported by NASA contract **NNM07AB07C** to the Smithsonian Astrophysical Observatory.
8 changes: 0 additions & 8 deletions docs/changelog/dev.rst

This file was deleted.

1 change: 0 additions & 1 deletion docs/changelog/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ including bug fixes and changes to the application programming interface
.. toctree::
:maxdepth: 1

dev
0.4.0
0.3.0
0.2.0
2 changes: 0 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,9 @@
"sphinx.ext.napoleon",
"sphinx.ext.todo",
"nbsphinx",
"sphinx_changelog",
"sphinx_copybutton",
"sphinx_gallery.load_style",
"IPython.sphinxext.ipython_console_highlighting",
"sphinx_changelog",
"sphinx_issues",
"sphinxcontrib.bibtex",
"hoverxref.extension",
Expand Down
30 changes: 30 additions & 0 deletions docs/contributing/acknowledging_xrtpy.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.. _citation_guide:

===============================================
Citing XRTpy in Publications and Presentations
===============================================


If XRTpy has been useful in your research, we encourage you to consider including a citation or acknowledgment in your work. Below are suggested formats to credit XRTpy in your scientific papers, posters, or presentations. While this is not required, it is greatly appreciated.

Suggested Citations
===================

For a scientific paper
----------------------
You may use the following format to cite XRTpy in your publications:

"We acknowledge the use of XRTpy (v0.4.1) for Hinode X-Ray Telescope data analysis, available at https://xrtpy.readthedocs.io/ (Velasquez et al. 2024, JOSS, DOI: 10.21105/joss.06396)."

For a poster or presentation
----------------------------
If you are presenting work that involves XRTpy in a poster or presentation, you may use the following acknowledgment:

"This work made use of XRTpy (v0.4.1), a Python package for solar
Hinode X-Ray Telescope data analysis, available at https://xrtpy.readthedocs.io/ (Velasquez et al. 2024, JOSS, DOI: 10.21105/joss.06396)."

References
==========
Velasquez, J., Murphy, N., Reeves, K. K., Slavin, J., Weber, M., & Barnes, W. (2024). XRTpy: A Hinode-X-Ray Telescope Python Package. The Journal of Open Source Software, 9(100), 6396. https://doi.org/10.21105/joss.06396

.. _joss_citation: https://doi.org/10.21105/joss.06396
1 change: 1 addition & 0 deletions docs/contributing/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ Contributor Guide
contributing
installation_for_development
release_guide
acknowledging_xrtpy
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
.. _xrtpy-documentation:

.. image:: images/XRTpy_logo.png
:alt: PlasmaPy logo
:alt: XRTpy logo
:align: right
:scale: 40%

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@
"outputs": [],
"source": [
"# Standard library imports for file and temporary directory management\n",
"import os\n",
"import tempfile\n",
"from pathlib import Path\n",
"\n",
"# Counting occurrences of unique elements\n",
"# creating and managing images and videos\n",
Expand Down Expand Up @@ -1066,7 +1066,7 @@
" plt.tight_layout()\n",
"\n",
" # Saving the frame\n",
" frame_path = os.path.join(frames_dir, f\"frame_{i:04d}.png\")\n",
" frame_path = Path(frames_dir) / f\"frame_{i:04d}.png\"\n",
" plt.savefig(frame_path)\n",
" plt.close(fig)\n",
" frames.append(frame_path)\n",
Expand All @@ -1084,8 +1084,8 @@
"\n",
" # Cleanup: Remove temporary frames and directory\n",
" for frame_path in frames:\n",
" os.remove(frame_path)\n",
" os.rmdir(frames_dir)\n",
" Path(frame_path).unlink()\n",
" Path(frames_dir).rmdir()\n",
"\n",
" if processing:\n",
" print(\n",
Expand Down
Loading

0 comments on commit c172904

Please sign in to comment.