Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
914602f
Merge pull request #276 from CHESSComputing/main
rolfverberg Apr 24, 2026
83adadf
Merge branch 'main' into docs
rolfverberg Apr 27, 2026
c929aa6
build: fic pip in manual pages deploy to avoid invalid version
rolfverberg Apr 27, 2026
53b537e
build: fix version manual pages deploy to avoid invalid version
rolfverberg Apr 27, 2026
72af349
build: fix bug in version for manual pages deploy
rolfverberg Apr 27, 2026
295b327
build: update to avoid imports in __init__'s
rolfverberg Apr 27, 2026
436898a
build: add DetectorConfig.model_rebuild() for Pydantic github error
rolfverberg Apr 27, 2026
cd25d45
build: attempt 2 to avoid Pydantic github error
rolfverberg Apr 27, 2026
ddbea2b
build: attempt 3 to avoid Pydantic github error
rolfverberg Apr 27, 2026
251717e
build: attempt 4 to avoid Pydantic github error
rolfverberg Apr 27, 2026
ebf34a6
build: attempt 5 to avoid Pydantic github error
rolfverberg Apr 27, 2026
20bfcb1
build: attempt 6 to avoid Pydantic github error
rolfverberg Apr 27, 2026
989b0ac
build: attempt 7 to avoid Pydantic github error
rolfverberg Apr 27, 2026
5cf9f88
build: attempt 8 to avoid Pydantic github error
rolfverberg Apr 27, 2026
74dab79
build: attempt 9 to avoid Pydantic github error
rolfverberg Apr 27, 2026
5f7328b
build: attempt 10 to avoid Pydantic github error
rolfverberg Apr 27, 2026
9d570b8
build: attempt 11 to avoid Pydantic github error
rolfverberg Apr 27, 2026
998e2a0
build: attempt 12 to avoid Pydantic github error
rolfverberg Apr 27, 2026
4a7b3cb
build: attempt 13 to avoid Pydantic github error
rolfverberg Apr 27, 2026
ffdba80
build: attempt 14 to avoid Pydantic github error
rolfverberg Apr 27, 2026
5ba7bfa
build: attempt 14a to avoid Pydantic github error
rolfverberg Apr 27, 2026
82647ce
build: attempt 14c to avoid Pydantic github error
rolfverberg Apr 27, 2026
d803676
build: attempt 15 to avoid Pydantic github error
rolfverberg Apr 27, 2026
9be6c0c
build: attempt 15a to avoid Pydantic github error
rolfverberg Apr 27, 2026
5707fb6
build: attempt 15b to avoid Pydantic github error
rolfverberg Apr 27, 2026
61e1e24
build: attempt 15c to avoid Pydantic github error
rolfverberg Apr 27, 2026
55854a8
build: attempt 15d to avoid Pydantic github error
rolfverberg Apr 27, 2026
7ef0bad
build: attempt 16 to avoid Pydantic github error
rolfverberg Apr 27, 2026
6e9d354
build: attempt 17 to avoid Pydantic github error
rolfverberg Apr 27, 2026
7a052a5
style: removed unused typing.Dict import
rolfverberg Apr 27, 2026
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
8 changes: 4 additions & 4 deletions .github/workflows/manual-pages-deploy.yml
Comment thread
keara-soloway marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:

- name: Update docs configuration with version (tag) name
run: |
sed -i "s/PACKAGE_VERSION/${{ github.ref_name }}/" setup.py
sed -i "s/PACKAGE_VERSION/${{ github.ref_name }}/" CHAP/__init__.py
sed -i "s/PACKAGE_VERSION/${{ github.ref_name }}/" docs/conf.py
sed -i "s/PACKAGE_VERSION/${{ github.ref_name }}/" docs/installation.md
sed -i "s/PACKAGE_VERSION/0.0.1/" setup.py
sed -i "s/PACKAGE_VERSION/0.0.1/" CHAP/__init__.py
sed -i "s/PACKAGE_VERSION/0.0.1/" docs/conf.py
sed -i "s/PACKAGE_VERSION/0.0.1/" docs/installation.md

- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3
Expand Down
5 changes: 0 additions & 5 deletions CHAP/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,4 @@
Module defining the base `Writer` class to derive all others from.
"""

#from CHAP.models import CHAPBaseModel
#from CHAP.reader import Reader
#from CHAP.processor import Processor
#from CHAP.writer import Writer

version = 'PACKAGE_VERSION'
72 changes: 0 additions & 72 deletions CHAP/common/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,75 +27,3 @@
Module for generic Writers used in multiple experiment-specific workflows.
"""

#from CHAP.common.processor import (
## AnimationProcessor,
# AsyncProcessor,
# BinarizeProcessor,
# ConvertStructuredProcessor,
# ExpressionProcessor,
# ImageProcessor,
# MapProcessor,
# MPICollectProcessor,
# MPIMapProcessor,
# MPISpawnMapProcessor,
# NexusToNumpyProcessor,
## NexusToTiffsprocessor,
# NexusToXarrayProcessor,
# NexusToZarrProcessor,
# NormalizeNexusProcessor,
# NormalizeMapProcessor,
# NumpyStackProcessor,
# NumpySumProcessor,
# NumpyToNXfieldProcessor,
# PandasToXarrayProcessor,
# PrintProcessor,
# PyfaiAzimuthalIntegrationProcessor,
# RawDetectorDataMapProcessor,
# SetupNXdataProcessor,
# UpdateNXvalueProcessor,
# UpdateNXdataProcessor,
# UnstructuredToStructuredProcessor,
# NXdataToDataPointsProcessor,
# XarrayToNexusProcessor,
# XarrayToNumpyProcessor,
# ZarrToNexusProcessor,
#)
#from CHAP.common.reader import (
# BinaryFileReader,
# ConfigReader,
# DetectorDataReader,
# FabioImageReader,
# H5Reader,
# LinkamReader,
# MapReader,
# PandasReader,
# NexusReader,
# NXdataReader,
# NXfieldReader,
# SpecReader,
# URLReader,
# YAMLReader,
# ZarrReader,
#)
#from CHAP.common.writer import (
# ExtractArchiveWriter,
# FileTreeWriter,
# H5Writer,
# ImageWriter,
# MatplotlibAnimationWriter,
# MatplotlibFigureWriter,
# NexusWriter,
# NexusValuesWriter,
# PyfaiResultsWriter,
# YAMLWriter,
# TXTWriter,
# ZarrValuesWriter,
# ZarrWriter,
#)
#from CHAP.common.map_utils import (
# MapSliceProcessor,
# SpecScanToMapConfigProcessor,
#)
#from CHAP.common.nexus_utils import (
# NexusMakeLinkProcessor,
#)
2 changes: 1 addition & 1 deletion CHAP/common/map_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
)

# Local modules
from CHAP import Processor
from CHAP.common.models.map import (
Detector,
MapConfig,
)
from CHAP.processor import Processor

def get_axes(nxdata, skip_axes=None):
"""Get the axes of a NeXus style
Expand Down
15 changes: 10 additions & 5 deletions CHAP/common/models/__init__.py
Comment thread
keara-soloway marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,13 @@
Map related Pydantic model configuration classes.
"""

from CHAP.common.models.common import (
BinarizeConfig,
ImageProcessorConfig,
UnstructuredToStructuredConfig,
)
# System modules
import typing

# Local modules
from CHAP.common.models.map import DetectorConfig

# Avoid Pydantic "Class not fully defined" in sphinx autodoc as a
# result of lazy importing by using DetectorConfig within a default
# value of a pydantic instance variable
DetectorConfig.model_rebuild(_types_namespace=vars(typing))
10 changes: 5 additions & 5 deletions CHAP/common/models/integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
from pyFAI.integrator.azimuthal import AzimuthalIntegrator

# Local modules
from CHAP import CHAPBaseModel
from CHAP.common.models.map import Detector
from CHAP.models import CHAPBaseModel


class AzimuthalIntegratorConfig(Detector, CHAPBaseModel):
Expand Down Expand Up @@ -196,7 +196,7 @@ def validate_ais(cls, ais):
return ais


class IntegrateConfig(CHAPBaseModel):
class _IntegrateConfig(CHAPBaseModel):
"""Class with the input parameters to perform various integrations
with `pyFAI <https://pyfai.readthedocs.io/en/stable/>`__.

Expand All @@ -219,7 +219,7 @@ class IntegrateConfig(CHAPBaseModel):
attrs: Optional[dict] = {}


class Integrate1dConfig(IntegrateConfig):
class Integrate1dConfig(_IntegrateConfig):
"""Class with the input parameters to perform 1D azimuthal
integration with
`pyFAI <https://pyfai.readthedocs.io/en/stable/>`__.
Expand All @@ -242,7 +242,7 @@ class Integrate1dConfig(IntegrateConfig):
npt: Optional[conint(gt=0)] = 1800


class Integrate2dConfig(IntegrateConfig):
class Integrate2dConfig(_IntegrateConfig):
"""Class with the input parameters to perform 2D azimuthal (cake)
integration with
`pyFAI <https://pyfai.readthedocs.io/en/stable/>`__.
Expand All @@ -264,7 +264,7 @@ class Integrate2dConfig(IntegrateConfig):
npt_rad: Optional[conint(gt=0)] = 1800


class IntegrateRadialConfig(IntegrateConfig, MultiGeometryConfig):
class IntegrateRadialConfig(_IntegrateConfig, MultiGeometryConfig):
"""Class with the input parameters to perform radial integration
with `pyFAI <https://pyfai.readthedocs.io/en/stable/>`__.

Expand Down
2 changes: 1 addition & 1 deletion CHAP/common/nexus_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"""

# Local modules
from CHAP import Processor
from CHAP.processor import Processor


class NexusMakeLinkProcessor(Processor):
Expand Down
2 changes: 1 addition & 1 deletion CHAP/common/processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
)

# Local modules
from CHAP import Processor
from CHAP.common.models.common import ImageProcessorConfig
from CHAP.common.models.map import (
DetectorConfig,
MapConfig,
)
from CHAP.pipeline import PipelineData
from CHAP.processor import Processor


class AsyncProcessor(Processor):
Expand Down
8 changes: 4 additions & 4 deletions CHAP/common/reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@
)

# Local modules
from CHAP.reader import (
Reader,
validate_reader_model,
)
from CHAP.common.models.map import (
DetectorConfig,
SpecConfig,
)
from CHAP.reader import (
Reader,
validate_reader_model,
)

def validate_model(model):
"""Validate the `model` configuration.
Expand Down
37 changes: 16 additions & 21 deletions CHAP/edd/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,19 @@
Writers unique to the EDD workflow.
"""

#from CHAP.edd.processor import (
# DiffractionVolumeLengthProcessor,
# LatticeParameterRefinementProcessor,
# HKLProcessor,
# MCAEnergyCalibrationProcessor,
# MCATthCalibrationProcessor,
# ReducedDataProcessor,
# StrainAnalysisProcessor,
#)
#from CHAP.edd.reader import (
# EddMapReader,
# EddMPIMapReader,
# ScanToMapReader,
# SetupNXdataReader,
# UpdateNXdataReader,
# NXdataSliceReader,
# SliceNXdataReader,
#)
#from CHAP.edd.writer import (
# StrainAnalysisUpdateWriter,
#)
# System modules
import typing

# Local modules
from CHAP.edd.models import (
DiffractionVolumeLengthConfig,
MCACalibrationConfig,
StrainAnalysisConfig,
)

# Avoid Pydantic "Class not fully defined" in sphinx autodoc as a
# result of lazy importing by using any of these within a default
# value of a pydantic instance variable
DiffractionVolumeLengthConfig.model_rebuild(_types_namespace=vars(typing))
MCACalibrationConfig.model_rebuild(_types_namespace=vars(typing))
StrainAnalysisConfig.model_rebuild(_types_namespace=vars(typing))
23 changes: 17 additions & 6 deletions CHAP/edd/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
# System modules
from copy import deepcopy
import os
import typing
from typing import (
Literal,
Optional,
Expand Down Expand Up @@ -63,7 +64,7 @@ class BaselineConfig(CHAPBaseModel):

# Fit configuration class

class FitConfig(CHAPBaseModel):
class _FitConfig(CHAPBaseModel):
"""Fit parameters configuration class for peak fitting.

:ivar background: Background model for peak fitting, defaults
Expand Down Expand Up @@ -233,7 +234,12 @@ def validate_materialconfig_after(self):

# Detector configuration classes

class MCADetectorCalibration(Detector, FitConfig):
# Avoid Pydantic "Class not fully defined" in sphinx autodoc as a
# result of lazy importing by using in an _exclude pydantic instance
# variable
_FitConfig.model_rebuild(_types_namespace=vars(typing))

class MCADetectorCalibration(Detector, _FitConfig):
"""Class representing the configuration for a single MCA detector
element to perform detector calibration.

Expand Down Expand Up @@ -541,7 +547,7 @@ def get_tth_map(self, map_shape):
]


class MCADetectorConfig(FitConfig):
class MCADetectorConfig(_FitConfig):
"""Class representing metadata required to configure a full MCA
detector.

Expand All @@ -553,7 +559,7 @@ class MCADetectorConfig(FitConfig):
'calibration', 'diffractionvolumelength', 'strainanalysis']
detectors: Optional[conlist(min_length=1, item_type=MCADetector)] = []

_exclude = set(vars(FitConfig()).keys())
_exclude = set(vars(_FitConfig()).keys())

@model_validator(mode='before')
@classmethod
Expand Down Expand Up @@ -605,7 +611,7 @@ def update_detectors(self):

# Processor configuration classes

class DiffractionVolumeLengthConfig(FitConfig):
class DiffractionVolumeLengthConfig(_FitConfig):
"""Configuration for the differential volume length processor
:class:`~CHAP.edd.processor.DiffractionVolumeLengthProcessor`
for an EDD setup using a steel-foil raster scan.
Expand Down Expand Up @@ -633,7 +639,7 @@ class DiffractionVolumeLengthConfig(FitConfig):
sample_thickness: Optional[confloat(gt=0, allow_inf_nan=False)] = None
sigma_to_dvl_factor: Optional[Literal[2.0, 3.5, 4.0]] = 3.5

_exclude = set(vars(FitConfig()).keys())
_exclude = set(vars(_FitConfig()).keys())

@model_validator(mode='after')
def validate_diffractionvolumelengthconfig_after(self):
Expand All @@ -648,6 +654,11 @@ def validate_diffractionvolumelengthconfig_after(self):
return self


# Avoid Pydantic "Class not fully defined" in sphinx autodoc as a
# result of lazy importing by using MaterialConfig within a default
# value of a pydantic instance variable
MaterialConfig.model_rebuild(_types_namespace=vars(typing))

class MCACalibrationConfig(CHAPBaseModel):
"""Base class configuration for energy and 2&theta calibration
processors.
Expand Down
Loading
Loading