v1.0.0-rc.176 (#86)
Build Packages / Create release (push) Successful in 9s
Build Packages / build:portable:macos-arm64:nocuda (push) Successful in 5m8s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 11m12s
Build Packages / build:portable:linux-x86_64:nocuda (push) Successful in 16m43s
Build Packages / build:portable:linux-x86_64:cuda (push) Successful in 20m56s
Build Packages / build:portable:windows-x86_64:nocuda (push) Successful in 22m4s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 26m57s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 28m24s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 27m58s
Build Packages / build:portable:windows-x86_64:cuda (push) Successful in 29m29s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 18m23s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m55s
Build Packages / Generate python client (push) Successful in 32s
Build Packages / Build documentation (push) Successful in 1m32s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 27m20s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 29m27s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 32m41s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 34m46s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 37m25s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 35m56s
Build Packages / Unit tests (push) Successful in 2h8m44s
Build Packages / Validation Battery (push) Successful in 33m35s

* jfjoch_broker: Optional live Rugnux analysis of DECTRIS rotation collections inside the broker, with merged data, maps and the placed model written beside the master file, the rotation lattice in the scan result, and a "Rugnux live" tab and dashboard row in the web frontend.
* Rugnux: Faster processing, with molecular replacement and model validation spread over several GPUs and run on the Apple GPU on macOS.
* Rugnux: The polarization stated in miniCBF and d*TREK headers is used, twinned crystals' space groups are decided more reliably, and a run that finds no lattice still reports every image.

Reviewed-on: #86
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
This commit was merged in pull request #86.
This commit is contained in:
leonarski_f authored and leonarski_f committed 2026-10-19 07:03:28 +02:00
1 parent 19b135186d
commit 8261b7354e
377 files changed
+114248 -1922

No files matched your search

+488
View File
@@ -29,6 +29,10 @@ Method | HTTP request | Description
[**config_mask_tiff_get**](DefaultApi.md#config_mask_tiff_get) | **GET** /config/mask.tiff | Get mask of the detector (TIFF)
[**config_roi_get**](DefaultApi.md#config_roi_get) | **GET** /config/roi | Get ROI definitions
[**config_roi_put**](DefaultApi.md#config_roi_put) | **PUT** /config/roi | Upload ROI definitions
[**config_rugnux_get**](DefaultApi.md#config_rugnux_get) | **GET** /config/rugnux | Get rugnux live mode settings and model status
[**config_rugnux_model_delete**](DefaultApi.md#config_rugnux_model_delete) | **DELETE** /config/rugnux/model | Remove the model used by rugnux live mode
[**config_rugnux_model_put**](DefaultApi.md#config_rugnux_model_put) | **PUT** /config/rugnux/model | Upload the model used by rugnux live mode
[**config_rugnux_put**](DefaultApi.md#config_rugnux_put) | **PUT** /config/rugnux | Change rugnux live mode settings
[**config_select_detector_get**](DefaultApi.md#config_select_detector_get) | **GET** /config/select_detector | List available detectors
[**config_select_detector_put**](DefaultApi.md#config_select_detector_put) | **PUT** /config/select_detector | Select detector
[**config_spot_finding_get**](DefaultApi.md#config_spot_finding_get) | **GET** /config/spot_finding | Get data processing configuration
@@ -52,11 +56,13 @@ Method | HTTP request | Description
[**image_buffer_status_get**](DefaultApi.md#image_buffer_status_get) | **GET** /image_buffer/status | Get status of the image buffers
[**image_pusher_status_get**](DefaultApi.md#image_pusher_status_get) | **GET** /image_pusher/status | Get status of image pusher
[**initialize_post**](DefaultApi.md#initialize_post) | **POST** /initialize | Initialize detector and data acquisition
[**live_events_get**](DefaultApi.md#live_events_get) | **GET** /live/events | Event stream of the collection, for a reader following it
[**pedestal_post**](DefaultApi.md#pedestal_post) | **POST** /pedestal | Collect dark current for the detector
[**preview_pedestal_tiff_get**](DefaultApi.md#preview_pedestal_tiff_get) | **GET** /preview/pedestal.tiff | Get pedestal in TIFF format
[**preview_plot_bin_get**](DefaultApi.md#preview_plot_bin_get) | **GET** /preview/plot.bin | Generate 1D plot from Jungfraujoch and send in raw binary format. Data are provided as (32-bit) float binary array. This format doesn&#39;t transmit information about X-axis, only values, so it is of limited use for azimuthal integration.
[**preview_plot_get**](DefaultApi.md#preview_plot_get) | **GET** /preview/plot | Generate 1D plot from Jungfraujoch
[**result_scan_get**](DefaultApi.md#result_scan_get) | **GET** /result/scan | Get full scan result
[**rugnux_status_get**](DefaultApi.md#rugnux_status_get) | **GET** /rugnux/status | Get live rugnux processing status of the last collection
[**start_post**](DefaultApi.md#start_post) | **POST** /start | Start detector
[**statistics_calibration_get**](DefaultApi.md#statistics_calibration_get) | **GET** /statistics/calibration | Get calibration statistics
[**statistics_data_collection_get**](DefaultApi.md#statistics_data_collection_get) | **GET** /statistics/data_collection | Get data collection statistics
@@ -79,6 +85,11 @@ Command will inform FPGA network card to stop pedestal or data collection at the
Any frame that is currently being processed by CPU will be finished and sent to writer.
Given the command is making sure to gracefully stop data acquisition and detector, it might take some time to switch back after command finished to `Idle` state.
With rugnux live mode (`/config/rugnux`) the command also cuts the rugnux analysis, during the collection
or after its last image alike: the collection ends with what the analysis has established
(see `cut` in `/rugnux/status`). After the last image the collection itself is complete and is not
marked as cancelled.
If data collection is not running, the command has no effect.
@@ -1729,6 +1740,318 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **config_rugnux_get**
> RugnuxStatus config_rugnux_get()
Get rugnux live mode settings and model status
Can be done anytime
### Example
* Bearer Authentication (bearerAuth):
```python
import jfjoch_client
from jfjoch_client.models.rugnux_status import RugnuxStatus
from jfjoch_client.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to http://localhost:5232
# See configuration.py for a list of all supported configuration parameters.
configuration = jfjoch_client.Configuration(
host = "http://localhost:5232"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization: bearerAuth
configuration = jfjoch_client.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with jfjoch_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = jfjoch_client.DefaultApi(api_client)
try:
# Get rugnux live mode settings and model status
api_response = api_instance.config_rugnux_get()
print("The response of DefaultApi->config_rugnux_get:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling DefaultApi->config_rugnux_get: %s\n" % e)
```
### Parameters
This endpoint does not need any parameter.
### Return type
[**RugnuxStatus**](RugnuxStatus.md)
### Authorization
[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain, application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**401** | The current dataset is protected and no valid bearer token was presented. | - |
**200** | Everything OK | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **config_rugnux_model_delete**
> config_rugnux_model_delete()
Remove the model used by rugnux live mode
This can only be done when detector is `Idle`, `Error` or `Inactive` states.
### Example
* Bearer Authentication (bearerAuth):
```python
import jfjoch_client
from jfjoch_client.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to http://localhost:5232
# See configuration.py for a list of all supported configuration parameters.
configuration = jfjoch_client.Configuration(
host = "http://localhost:5232"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization: bearerAuth
configuration = jfjoch_client.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with jfjoch_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = jfjoch_client.DefaultApi(api_client)
try:
# Remove the model used by rugnux live mode
api_instance.config_rugnux_model_delete()
except Exception as e:
print("Exception when calling DefaultApi->config_rugnux_model_delete: %s\n" % e)
```
### Parameters
This endpoint does not need any parameter.
### Return type
void (empty response body)
### Authorization
[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain, application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**401** | The current dataset is protected and no valid bearer token was presented. | - |
**200** | All good | - |
**500** | Error within Jungfraujoch code - see output message. | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **config_rugnux_model_put**
> config_rugnux_model_put(body=body)
Upload the model used by rugnux live mode
This can only be done when detector is `Idle`, `Error` or `Inactive` states.
The model (PDB or mmCIF, optionally gzipped; at most 64 MiB) is used for molecular replacement
and validation of every following rugnux live collection, until it is removed with
`DELETE /config/rugnux/model` or replaced by another upload.
### Example
* Bearer Authentication (bearerAuth):
```python
import jfjoch_client
from jfjoch_client.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to http://localhost:5232
# See configuration.py for a list of all supported configuration parameters.
configuration = jfjoch_client.Configuration(
host = "http://localhost:5232"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization: bearerAuth
configuration = jfjoch_client.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with jfjoch_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = jfjoch_client.DefaultApi(api_client)
body = None # bytearray | (optional)
try:
# Upload the model used by rugnux live mode
api_instance.config_rugnux_model_put(body=body)
except Exception as e:
print("Exception when calling DefaultApi->config_rugnux_model_put: %s\n" % e)
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**body** | **bytearray**| | [optional]
### Return type
void (empty response body)
### Authorization
[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/octet-stream
- **Accept**: text/plain, application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**401** | The current dataset is protected and no valid bearer token was presented. | - |
**200** | All good | - |
**400** | Empty body, or not a model that can be read (PDB or mmCIF, optionally gzipped) | - |
**413** | Model larger than 64 MiB | - |
**500** | Error within Jungfraujoch code - see output message. | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **config_rugnux_put**
> config_rugnux_put(rugnux_settings=rugnux_settings)
Change rugnux live mode settings
This can only be done when detector is `Idle`, `Error` or `Inactive` states.
### Example
* Bearer Authentication (bearerAuth):
```python
import jfjoch_client
from jfjoch_client.models.rugnux_settings import RugnuxSettings
from jfjoch_client.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to http://localhost:5232
# See configuration.py for a list of all supported configuration parameters.
configuration = jfjoch_client.Configuration(
host = "http://localhost:5232"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization: bearerAuth
configuration = jfjoch_client.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with jfjoch_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = jfjoch_client.DefaultApi(api_client)
rugnux_settings = jfjoch_client.RugnuxSettings() # RugnuxSettings | (optional)
try:
# Change rugnux live mode settings
api_instance.config_rugnux_put(rugnux_settings=rugnux_settings)
except Exception as e:
print("Exception when calling DefaultApi->config_rugnux_put: %s\n" % e)
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**rugnux_settings** | [**RugnuxSettings**](RugnuxSettings.md)| | [optional]
### Return type
void (empty response body)
### Authorization
[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain, application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**401** | The current dataset is protected and no valid bearer token was presented. | - |
**200** | Everything OK | - |
**400** | Input parsing or validation error | - |
**500** | Error within Jungfraujoch code - see output message. | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **config_select_detector_get**
> DetectorList config_select_detector_get()
@@ -3326,6 +3649,96 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **live_events_get**
> str live_events_get()
Event stream of the collection, for a reader following it
Server-sent events (text/event-stream) for the current collection, from the moment /start has
accepted it: first its whole history, then every change, until it ends or a new collection
begins. Only one reader at a time. Events, each with a JSON `data` line:
- `start` {run_number, run_name, file_prefix, number_of_images, images_per_file, cbor} - first,
once the start message is known: at once for a JUNGFRAU, when the detector sends its own for
a DECTRIS. `cbor` is the start message the writer of the master file received, CBOR in base64;
a reader builds the dataset from it;
- `file` {file_number, file, first_image, image_count} - a data file closed and renamed into
place; `file` is relative to the collection's root, as the writer named it;
- `end` {images, error?} - every writer acknowledged the end: the data files and the master
file are in place; `images` is the number of images collected. Also sent, with `error`, when
the measurement ends any other way - before the start message, for one. The stream then closes;
- `superseded` {run_number} - a new collection began. The stream then closes.
A comment line (`: keepalive`) every 10 s when nothing happens.
### Example
* Bearer Authentication (bearerAuth):
```python
import jfjoch_client
from jfjoch_client.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to http://localhost:5232
# See configuration.py for a list of all supported configuration parameters.
configuration = jfjoch_client.Configuration(
host = "http://localhost:5232"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization: bearerAuth
configuration = jfjoch_client.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with jfjoch_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = jfjoch_client.DefaultApi(api_client)
try:
# Event stream of the collection, for a reader following it
api_response = api_instance.live_events_get()
print("The response of DefaultApi->live_events_get:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling DefaultApi->live_events_get: %s\n" % e)
```
### Parameters
This endpoint does not need any parameter.
### Return type
**str**
### Authorization
[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/event-stream, text/plain
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | Event stream | - |
**401** | The current dataset is protected and no valid bearer token was presented. | - |
**404** | No collection has started | - |
**409** | Another reader is following the collection, or the image pusher does not report closed data files | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **pedestal_post**
> pedestal_post()
@@ -3702,6 +4115,81 @@ This endpoint does not need any parameter.
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **rugnux_status_get**
> RugnuxLiveStatus rugnux_status_get()
Get live rugnux processing status of the last collection
Can be done anytime
### Example
* Bearer Authentication (bearerAuth):
```python
import jfjoch_client
from jfjoch_client.models.rugnux_live_status import RugnuxLiveStatus
from jfjoch_client.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to http://localhost:5232
# See configuration.py for a list of all supported configuration parameters.
configuration = jfjoch_client.Configuration(
host = "http://localhost:5232"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization: bearerAuth
configuration = jfjoch_client.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with jfjoch_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = jfjoch_client.DefaultApi(api_client)
try:
# Get live rugnux processing status of the last collection
api_response = api_instance.rugnux_status_get()
print("The response of DefaultApi->rugnux_status_get:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling DefaultApi->rugnux_status_get: %s\n" % e)
```
### Parameters
This endpoint does not need any parameter.
### Return type
[**RugnuxLiveStatus**](RugnuxLiveStatus.md)
### Authorization
[bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain, application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**401** | The current dataset is protected and no valid bearer token was presented. | - |
**200** | Everything OK | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **start_post**
> start_post(dataset_settings=dataset_settings)
@@ -27,6 +27,7 @@ Name | Type | Description | Notes
**zeromq_preview** | [**ZeromqPreviewSettings**](ZeromqPreviewSettings.md) | | [optional]
**zeromq_metadata** | [**ZeromqMetadataSettings**](ZeromqMetadataSettings.md) | | [optional]
**dark_mask** | [**DarkMaskSettings**](DarkMaskSettings.md) | | [optional]
**rugnux** | [**RugnuxSettings**](RugnuxSettings.md) | | [optional]
## Example
@@ -0,0 +1,46 @@
# RugnuxLiveStatus
Live rugnux processing of the last collection; kept until the next collection starts
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**state** | **str** | |
**probe** | **str** | Answer of the early lattice probe on the first 60 degrees; empty until it answers |
**probe_s** | **float** | When the probe answered, since the collection started | [optional]
**message** | **str** | Why the run failed or was skipped |
**images_expected** | **int** | |
**images_received** | **int** | |
**elapsed_s** | **float** | |
**step_progress** | **float** | Fraction of the current pass&#39;s images | [optional]
**steps** | [**List[RugnuxLiveStep]**](RugnuxLiveStep.md) | |
**last_image_s** | **float** | When the last image arrived (and the cutoff timer started), since the collection started | [optional]
**cut** | **str** | Empty, or why the analysis was cut: &#x60;deadline&#x60; (&#x60;deadline_s&#x60; after the last image) or &#x60;cancel&#x60; (&#x60;POST /cancel&#x60;). The end message then carried what was established at the cut. | [optional]
**cut_s** | **float** | When the analysis was cut, since the collection started | [optional]
**last_image_to_written_s** | **float** | From the last image received to all results written | [optional]
**verdict** | **str** | OK, WARNINGS, UNUSABLE or FAILED; empty until the run is over |
**verdict_text** | **str** | |
**summary** | [**List[RugnuxSummaryRow]**](RugnuxSummaryRow.md) | |
**warnings** | **List[str]** | |
## Example
```python
from jfjoch_client.models.rugnux_live_status import RugnuxLiveStatus
# TODO update the JSON string below
json = "{}"
# create an instance of RugnuxLiveStatus from a JSON string
rugnux_live_status_instance = RugnuxLiveStatus.from_json(json)
# print the JSON string representation of the object
print(RugnuxLiveStatus.to_json())
# convert the object into a dict
rugnux_live_status_dict = rugnux_live_status_instance.to_dict()
# create an instance of RugnuxLiveStatus from a dict
rugnux_live_status_from_dict = RugnuxLiveStatus.from_dict(rugnux_live_status_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+32
View File
@@ -0,0 +1,32 @@
# RugnuxLiveStep
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**title** | **str** | |
**started_s** | **float** | Start of the step, since the collection started |
**duration_s** | **float** | Set once the next step starts or the run ends | [optional]
**notes** | **List[str]** | What the step found (e.g. lattice, space group) |
## Example
```python
from jfjoch_client.models.rugnux_live_step import RugnuxLiveStep
# TODO update the JSON string below
json = "{}"
# create an instance of RugnuxLiveStep from a JSON string
rugnux_live_step_instance = RugnuxLiveStep.from_json(json)
# print the JSON string representation of the object
print(RugnuxLiveStep.to_json())
# convert the object into a dict
rugnux_live_step_dict = rugnux_live_step_instance.to_dict()
# create an instance of RugnuxLiveStep from a dict
rugnux_live_step_from_dict = RugnuxLiveStep.from_dict(rugnux_live_step_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+32
View File
@@ -0,0 +1,32 @@
# RugnuxSettings
Rugnux live mode: rotation collections from a DECTRIS detector are processed by rugnux inside the broker while they arrive, and the merged result is sent to the writer.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**enable** | **bool** | Process DECTRIS rotation collections with rugnux live | [optional] [default to False]
**reserved_cpus** | **int** | CPU threads left to the receiver and the image pusher while rugnux runs | [optional] [default to 4]
**deadline_s** | **float** | Fixed cutoff: this long after the last image the analysis is cut, and the collection ends with what it has established (as &#x60;POST /cancel&#x60; after the last image does). 0 means no cutoff. | [optional] [default to 60.0]
## Example
```python
from jfjoch_client.models.rugnux_settings import RugnuxSettings
# TODO update the JSON string below
json = "{}"
# create an instance of RugnuxSettings from a JSON string
rugnux_settings_instance = RugnuxSettings.from_json(json)
# print the JSON string representation of the object
print(RugnuxSettings.to_json())
# convert the object into a dict
rugnux_settings_dict = rugnux_settings_instance.to_dict()
# create an instance of RugnuxSettings from a dict
rugnux_settings_from_dict = RugnuxSettings.from_dict(rugnux_settings_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+33
View File
@@ -0,0 +1,33 @@
# RugnuxStatus
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**enable** | **bool** | Rugnux live mode is enabled |
**reserved_cpus** | **int** | CPU threads left to the receiver and the image pusher while rugnux runs |
**deadline_s** | **float** | Seconds after the last image at which the analysis is cut; 0 means no cutoff | [optional]
**model_loaded** | **bool** | A model was uploaded with &#x60;PUT /config/rugnux/model&#x60; |
**model_size_bytes** | **int** | Size of the uploaded model file | [optional]
## Example
```python
from jfjoch_client.models.rugnux_status import RugnuxStatus
# TODO update the JSON string below
json = "{}"
# create an instance of RugnuxStatus from a JSON string
rugnux_status_instance = RugnuxStatus.from_json(json)
# print the JSON string representation of the object
print(RugnuxStatus.to_json())
# convert the object into a dict
rugnux_status_dict = rugnux_status_instance.to_dict()
# create an instance of RugnuxStatus from a dict
rugnux_status_from_dict = RugnuxStatus.from_dict(rugnux_status_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -0,0 +1,30 @@
# RugnuxSummaryRow
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**label** | **str** | |
**value** | **str** | |
## Example
```python
from jfjoch_client.models.rugnux_summary_row import RugnuxSummaryRow
# TODO update the JSON string below
json = "{}"
# create an instance of RugnuxSummaryRow from a JSON string
rugnux_summary_row_instance = RugnuxSummaryRow.from_json(json)
# print the JSON string representation of the object
print(RugnuxSummaryRow.to_json())
# convert the object into a dict
rugnux_summary_row_dict = rugnux_summary_row_instance.to_dict()
# create an instance of RugnuxSummaryRow from a dict
rugnux_summary_row_from_dict = RugnuxSummaryRow.from_dict(rugnux_summary_row_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)