Skip to content

Commit

Permalink
Fix imports after splitting euphonic.spectra
Browse files Browse the repository at this point in the history
  • Loading branch information
ajjackson committed Jan 23, 2025
1 parent e900347 commit 13e1dc0
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 32 deletions.
14 changes: 14 additions & 0 deletions euphonic/spectra/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from .base import Spectrum1D, Spectrum2D, apply_kinematic_constraints

Check notice on line 1 in euphonic/spectra/__init__.py

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

euphonic/spectra/__init__.py#L1

Missing module docstring
from .collections import Spectrum1DCollection, Spectrum2DCollection

from .base import CallableQuantity, XTickLabels
from .collections import OneLineData, LineData, Metadata


__all__ = [
"Spectrum1D",
"Spectrum2D",
"apply_kinematic_constraints",
"Spectrum1DCollection",
"Spectrum2DCollection",
]
21 changes: 9 additions & 12 deletions euphonic/spectra/base.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
# pylint: disable=no-member

from abc import ABC, abstractmethod
import collections
import copy
from functools import partial, reduce
from itertools import product, repeat, starmap
from functools import partial
from itertools import starmap

import math
import json
from numbers import Integral, Real
from operator import contains
from typing import (Any, Callable, Dict, Generator, List, Literal, Optional,
from typing import (Any, Callable, Dict, List, Literal, Optional,
overload, Sequence, Tuple, TypeVar, Union, Type)
from typing_extensions import Self
import warnings

from pint import DimensionalityError, Quantity
import numpy as np
from scipy.ndimage import correlate1d, gaussian_filter
from toolz.dicttoolz import keyfilter, valmap
from toolz.functoolz import complement
from toolz.itertoolz import groupby, pluck

from euphonic import ureg, __version__
from euphonic import ureg
from euphonic.broadening import (ErrorFit, FWHM_TO_SIGMA, KernelShape,
variable_width_broadening)
from euphonic.io import (_obj_to_json_file, _obj_from_json_file,
Expand All @@ -32,6 +25,8 @@


CallableQuantity = Callable[[Quantity], Quantity]
OneSpectrumMetadata = Dict[str, Union[str, int]]

XTickLabels = list[tuple[int, str]]


Expand Down Expand Up @@ -488,6 +483,7 @@ def __add__(self, other: 'Spectrum1D') -> 'Spectrum1D':
Any metadata key/value pairs that are common to both
spectra are retained, any others are discarded
"""
from .collections import Spectrum1DCollection

Check notice on line 486 in euphonic/spectra/base.py

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

euphonic/spectra/base.py#L486

Import outside toplevel (collections.Spectrum1DCollection)
spec_col = Spectrum1DCollection.from_spectra([self, other])
return spec_col.sum()

Expand Down Expand Up @@ -538,6 +534,7 @@ def to_text_file(self, filename: str,
A format specifier or sequence of specifiers (one for each
column), to be passed to numpy.savetxt
"""
from .collections import Spectrum1DCollection
spec = Spectrum1DCollection.from_spectra([self])
spec.to_text_file(filename, fmt)

Expand Down Expand Up @@ -730,7 +727,7 @@ class Spectrum2D(Spectrum):
def __init__(self, x_data: Quantity, y_data: Quantity,
z_data: Quantity,
x_tick_labels: Optional[XTickLabels] = None,
metadata: Optional[Metadata] = None
metadata: Optional[OneSpectrumMetadata] = None
) -> None:
"""
Parameters
Expand Down
34 changes: 16 additions & 18 deletions euphonic/spectra/collections.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,32 @@
import collections
import copy
from functools import partial, reduce
from itertools import product, repeat, starmap
from itertools import product, repeat

import math
import json
from numbers import Integral, Real
from numbers import Integral
from operator import contains
from typing import (Any, Callable, Dict, Generator, List, Literal, Optional,
overload, Sequence, Tuple, TypeVar, Union, Type)
overload, Sequence, TypeVar, Union, Type)
from typing_extensions import Self
import warnings

from pint import DimensionalityError, Quantity
from pint import Quantity
import numpy as np
from scipy.ndimage import correlate1d, gaussian_filter
from toolz.dicttoolz import keyfilter, valmap
from toolz.functoolz import complement
from toolz.itertoolz import groupby, pluck

from euphonic import ureg, __version__
from euphonic.broadening import (ErrorFit, FWHM_TO_SIGMA, KernelShape,
variable_width_broadening)
from euphonic.io import (_obj_to_json_file, _obj_from_json_file,
_obj_to_dict, _process_dict)
from euphonic.broadening import (ErrorFit, KernelShape)
from euphonic.io import (_obj_to_dict, _process_dict)
from euphonic.readers.castep import read_phonon_dos_data
from euphonic.validate import _check_constructor_inputs, _check_unit_conversion
from euphonic.validate import _check_constructor_inputs

from .base import Spectrum, Spectrum1D, Spectrum2D
from .base import CallableQuantity, XTickLabels
from .base import OneSpectrumMetadata as OneLineData

CallableQuantity = Callable[[Quantity], Quantity]
XTickLabels = list[tuple[int, str]]

OneLineData = Dict[str, Union[str, int]]
LineData = Sequence[OneLineData]
Metadata = Dict[str, Union[str, int, LineData]]

Expand Down Expand Up @@ -214,8 +209,9 @@ def _set_item_data(
setattr(spectrum, f"{self._spectrum_data_name()}_unit",
self._get_spectrum_data_unit())

def _validate_item(self, item: Integral | slice | Sequence[Integral] | np.ndarray
) -> None:
def _validate_item(
self, item: Integral | slice | Sequence[Integral] | np.ndarray
) -> None:
"""Raise Error if index has inappropriate typing/ranges
Raises
Expand All @@ -230,6 +226,7 @@ def _validate_item(self, item: Integral | slice | Sequence[Integral] | np.ndarra
"""
if isinstance(item, Integral):
return

if isinstance(item, slice):
if (item.stop is not None) and (item.stop >= len(self)):
raise IndexError(f'index "{item.stop}" out of range')
Expand Down Expand Up @@ -786,7 +783,8 @@ def broaden(self: T,
method=method, width_convention=width_convention)

new_spectrum = self.copy()
new_spectrum.y_data = ureg.Quantity(y_broadened, units=self.y_data_unit)
new_spectrum.y_data = ureg.Quantity(y_broadened,
units=self.y_data_unit)
return new_spectrum

elif isinstance(x_width, Callable):
Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ py_src = {
'euphonic/data': ['__init__.py', 'bluebook.json', 'sears-1992.json',
'reciprocal_spectroscopy_definitions.txt'],
'euphonic/readers': ['__init__.py', 'castep.py', 'phonopy.py'],
'euphonic/spectra': ['__init__.py'],
'euphonic/spectra': ['__init__.py', 'base.py', 'collections.py'],
'euphonic/styles': ['__init__.py', 'base.mplstyle', 'intensity_widget.mplstyle'],
'euphonic/writers': ['__init__.py', 'phonon_website.py'],
}
Expand Down
2 changes: 1 addition & 1 deletion tests_and_analysis/test/euphonic_test/test_spectrum2d.py
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ class TestKinematicAngles:
((-2.25 * np.pi, -2.5 * np.pi), (np.sqrt(2) / 2, 0))
])
def test_cos_range(self, angle_range, expected):
from euphonic.spectra import _get_cos_range
from euphonic.spectra.base import _get_cos_range
cos_limits = _get_cos_range(angle_range)
assert cos_limits == pytest.approx(expected)

Expand Down

0 comments on commit 13e1dc0

Please sign in to comment.