Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .cruft.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"template": "https://github.com/sunpy/package-template",
"commit": "2a6434a5c749ecde69d00b937a3fef27ecbad656",
"commit": "632ed04aee0058dd88dc6b7972ca8f8061fbd6da",
"checkout": null,
"context": {
"cookiecutter": {
Expand Down Expand Up @@ -36,7 +36,7 @@
".github/workflows/zizmor.yml"
],
"_template": "https://github.com/sunpy/package-template",
"_commit": "2a6434a5c749ecde69d00b937a3fef27ecbad656"
"_commit": "632ed04aee0058dd88dc6b7972ca8f8061fbd6da"
}
},
"directory": null
Expand Down
12 changes: 6 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,6 @@ repos:
- id: ruff-format
types: [python]
exclude: *exclude_dirs
- repo: https://github.com/PyCQA/isort
rev: 9.0.0a3
hooks:
- id: isort
types: [python]
exclude: *exclude_dirs
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
Expand Down Expand Up @@ -50,6 +44,12 @@ repos:
args: [ "--write-changes" ]
types_or: [python, rst]
exclude: *exclude_dirs
- repo: https://github.com/sphinx-contrib/sphinx-lint
rev: v1.0.2
hooks:
- id: sphinx-lint
types_or: [python, rst]
exclude: *exclude_dirs
ci:
autofix_prs: false
autoupdate_schedule: "quarterly"
29 changes: 25 additions & 4 deletions .ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ select = [
"W",
"UP",
"PT",
"I",
"BLE",
"A",
"C4",
Expand Down Expand Up @@ -63,7 +64,8 @@ extend-ignore = [
"INP001", # File is part of an implicit namespace package.
]
"docs/conf.py" = [
"E402" # Module imports not at top of file
"E402", # Module imports not at top of file
"I", # isort
]
"docs/*.py" = [
"INP001", # File is part of an implicit namespace package.
Expand All @@ -77,6 +79,7 @@ extend-ignore = [
"F401", # Unused import
"F403", # from {name} import * used; unable to detect undefined names
"F405", # {name} may be undefined, or defined from star imports
"I", # isort
]
"test_*.py" = [
"E402", # Module level import not at top of cell
Expand All @@ -86,9 +89,6 @@ extend-ignore = [
"PT011", # `pytest.raises(ValueError)` is too broad
]

[lint.pydocstyle]
convention = "numpy"

[lint.flake8-pytest-style]
parametrize-names-type = "csv"

Expand All @@ -97,3 +97,24 @@ exclude = [
"sunkit_spex/_dev/scm_version.py",
"docs/conf.py",
]

[lint.pydocstyle]
convention = "numpy"

[lint.isort]
default-section = "third-party"
section-order = [
"future",
"standard-library",
"third-party",
"astropy",
"sunpy",
"first-party",
"local-folder",
]
known-first-party = ["sunkit_spex"]
no-lines-before = ["local-folder"]

[lint.isort.sections]
"astropy" = ["astropy", "asdf", "gwcs", "reproject"]
"sunpy" = ["sunpy"]
4 changes: 2 additions & 2 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ New Features
- Allow automatic loading of the correct STIX SRM in `~sunkit_spex.extern.stix.STIXLoader` based on attenuation state within the selected time for spectral fitting. (`#193 <https://github.com/sunpy/sunkit-spex/pull/193>`__)
- Add two Astropy model classes, :class:`sunkit_spex.models.physical.nonthermal.ThickTarget` and :class:`sunkit_spex.models.physical.nonthermal.ThinTarget`. This provides the capability to fit using the Astropy fitting framework. (`#194 <https://github.com/sunpy/sunkit-spex/pull/194>`__)
- Add new two new Astropy model classes, :class:`sunkit_spex.models.scaling.DistanceScale` and :class:`sunkit_spex.models.scaling.Constant`. These classes can be used with physical models to scale the flux either by observer distance or by a constant multiplicative factor respectively. (`#195 <https://github.com/sunpy/sunkit-spex/pull/195>`__)
- Adds functionality to enable class:`StraightLineModel` and class:`GaussianModel` to be evaluated at energy edges and return an output at energy centers. (`#202 <https://github.com/sunpy/sunkit-spex/pull/202>`__)
- Adds functionality to enable :class:`StraightLineModel` and :class:`GaussianModel` to be evaluated at energy edges and return an output at energy centers. (`#202 <https://github.com/sunpy/sunkit-spex/pull/202>`__)
- Add the possibility to perform albedo correction within the legacy code. The alebdo matrix is generated with :func:`sunkit_spex.legacy.fitting.albedo.get_albedo_matrix` and the albedo correction is performed in :class:`sunkit_spex.legacy.fitting.fitter.Fitter`. (`#206 <https://github.com/sunpy/sunkit-spex/pull/206>`__)
- Adds an example notebook for fitting a single STIX spectrum and a joint fit with STIX imaging and background detectors when an attenuator is used. (`#217 <https://github.com/sunpy/sunkit-spex/pull/217>`__)
- Add a new `sunkit_spex.spectrum.spectrum.Spectrum` object to hold spectral data. `~sunkit_spex.spectrum.spectrum.Spectrum` is based on `NDCube` and butils on it coordinate aware methods and metadata handling. (`#239 <https://github.com/sunpy/sunkit-spex/pull/239>`__)
Expand All @@ -68,7 +68,7 @@ Bug Fixes
- Fixes fitting by removing input_unit_equivalencies from thermal classes, class:ThermalEmission , class:ContinuumEmission and class:LineEmission . This allows compound emission to function. (`#210 <https://github.com/sunpy/sunkit-spex/pull/210>`__)
- Fix bug introduced in refactoring of `~sunkit_spex.models.physical.albedo.Albedo` model. Internally the angle theta
given in degrees wasn't converted to radians before use. (`#212 <https://github.com/sunpy/sunkit-spex/pull/212>`__)
- Fixes bug in count_rate calculation in class:`StraightLineModel`. We now calculate the mean of count rates for a given time range rather than the sum. (`#214 <https://github.com/sunpy/sunkit-spex/pull/214>`__)
- Fixes bug in count_rate calculation in :class:`StraightLineModel`. We now calculate the mean of count rates for a given time range rather than the sum. (`#214 <https://github.com/sunpy/sunkit-spex/pull/214>`__)
- Ensure that the module-level abundance tables don't change in the legacy and release thermal modules. (`#231 <https://github.com/sunpy/sunkit-spex/pull/231>`__)
- Fix time selection bugs in `~sunkit_spex.extern.stix.STIXLoader` (`#241 <https://github.com/sunpy/sunkit-spex/pull/241>`__)

Expand Down
1 change: 1 addition & 0 deletions changelog/307.doc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add instructions for installing the latest stable release from PyPI to the :ref:`installation` guide.
31 changes: 24 additions & 7 deletions docs/tutorials/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,46 @@
Installing sunkit-spex
**********************

Installing the latest stable release
-------------------------------------
The latest stable release of sunkit-spex can be installed from PyPI using pip:

.. code-block:: console

$ pip install sunkit-spex

This will install the latest stable release of sunkit-spex and its required dependencies.
To additionally install the legacy dependencies, use:

.. code-block:: console

$ pip install sunkit-spex[legacy]

Installing the development version
----------------------------------
Sunkit-spex is still under development, and no stable version has been released. However, users can install the the development version.
Sunkit-spex is still under development, and no stable version has been released. However, users can install the development version.
Detailed instructions for setting up a development environment, as well as a discussion on how to contribute code to any SunPy package, can be found in the `Developer's Guide <https://docs.sunpy.org/en/latest/dev_guide/index.html#developer-s-guide>`__.
We highly encourage users to read this, especially if considering contributing to sunkit-spex (which we welcome enthusiastically!)
For brevity though, the key installation steps are as follows.

First, open a terminal and navigate to the directory where you want the sunkit-spex repo to live on your computer.
Then, clone the sunkit-spex repo:
Then, clone the sunkit-spex repository:

.. code-block:: console

$ git clone https://github.com/sunpy/sunkit-spex.git
$ git clone https://github.com/sunpy/sunkit-spex.git

Change into the sunkit-spex repo, then install sunkit-spex:
Change into the sunkit-spex repository, then install sunkit-spex:

.. code-block:: console

$ cd sunkit-spex
$ pip install -e .
$ cd sunkit-spex
$ pip install -e .

or to install the legacy dependencies

$ pip install -e .[legacy]
.. code-block:: console

$ pip install -e .[legacy]

This will install the development version of sunkit-spex. Please see the :ref:`sunpy-tutorial-installing` guide.
4 changes: 2 additions & 2 deletions sunkit_spex/spectrum/spectrum.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
from copy import deepcopy

import numpy as np
from gwcs import WCS as GWCS
from gwcs import coordinate_frames as cf
from ndcube import NDCube

import astropy.units as u
Expand All @@ -12,6 +10,8 @@
from astropy.modeling.tabular import Tabular1D
from astropy.utils import lazyproperty
from astropy.wcs.wcsapi import sanitize_slices
from gwcs import WCS as GWCS
from gwcs import coordinate_frames as cf

__all__ = ["SpectralAxis", "Spectrum", "gwcs_from_array"]

Expand Down
2 changes: 1 addition & 1 deletion sunkit_spex/spectrum/tests/test_spectrum.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import numpy as np
import pytest
from gwcs import coordinate_frames as cf
from ndcube import NDCube
from ndcube.extra_coords import QuantityTableCoordinate, TimeTableCoordinate
from ndcube.wcs.wrappers import CompoundLowLevelWCS
Expand All @@ -14,6 +13,7 @@
from astropy.tests.helper import assert_quantity_allclose
from astropy.time import Time
from astropy.wcs import WCS
from gwcs import coordinate_frames as cf

from sunkit_spex.spectrum.spectrum import SpectralAxis, SpectralGWCS, Spectrum, gwcs_from_array

Expand Down
Loading