gondola_core/
prelude.rs

1// This file is part of gaps-online-software and published 
2// under the GPLv3 license
3
4pub use std::sync::Arc;
5pub use std::collections::{
6  HashMap,
7  VecDeque,
8  HashSet
9};
10
11pub use std::path::Path;
12pub use std::thread;
13pub use std::error::Error;
14pub use std::fmt;
15pub use std::env;
16pub use std::io::{
17  self,
18  BufReader,
19  Read,
20  Seek,
21  SeekFrom,
22  Write,
23};
24
25pub use std::net::{
26  UdpSocket,
27  SocketAddr
28};
29
30pub use std::time::{
31  Duration,
32  Instant
33};
34
35pub use std::fs::{
36  self,
37  File,
38  OpenOptions,
39};
40
41pub use crossbeam_channel::Sender;
42
43pub use chrono::{
44  Utc,
45  DateTime,
46  NaiveDateTime,
47  TimeZone,
48  LocalResult
49};
50
51pub use glob::glob;
52pub use indicatif::{
53  ProgressBar,
54  ProgressStyle
55};
56
57// avoiding boilerplate for enums
58pub use strum_macros::{
59  AsRefStr,
60  FromRepr,
61  EnumIter,
62};
63pub use strum::IntoEnumIterator;
64
65pub use half::f16;
66
67pub use num_traits::{
68  NumAssign,
69  NumCast,
70  Float,
71  FromBytes,
72  FloatConst,
73  NumOps,
74  NumAssignOps,
75};
76
77pub use regex::Regex;    
78pub use statistical::median;
79
80#[cfg(feature="advanced-algorithms")]
81pub use smoothed_z_score::{
82  Peak,
83  PeaksDetector,
84  PeaksFilter
85};
86
87#[cfg(feature="random")]
88pub use rand::Rng;
89
90#[cfg(feature="pybindings")]
91pub use pyo3::prelude::*; 
92#[cfg(feature="pybindings")]
93pub use pyo3::wrap_pymodule; 
94#[cfg(feature="pybindings")]
95pub use pyo3::wrap_pyfunction; 
96
97#[cfg(feature="pybindings")]
98pub use pyo3::exceptions::{
99  PyIOError,
100  PyValueError,
101  PyKeyError
102};
103
104#[cfg(feature="pybindings")]
105pub use pyo3::types::PyBytes;
106
107#[cfg(feature="pybindings")]
108pub use numpy::{
109  ToPyArray,
110  PyArrayMethods,
111  PyArray1,
112  PyReadonlyArray1,
113  PyArray2, 
114};
115
116pub use crate::stats::{
117  mean,
118  calculate_column_stat,
119  standard_deviation
120};
121
122//#[cfg(feature = "pybindings")]
123//pub use polars::prelude::*;
124
125#[cfg(feature = "pybindings")]
126pub use pyo3_polars::{
127  PyDataFrame,
128  //PySeries
129};
130
131#[cfg(feature = "pybindings")] 
132pub use polars::frame::DataFrame;
133#[cfg(feature = "pybindings")]
134pub use polars::series::Series; 
135#[cfg(feature = "pybindings")]
136pub use polars::error::PolarsResult;
137
138#[cfg(not(feature="database"))]
139#[derive(Debug, Default, Clone)]
140pub struct TofPaddle {}
141#[cfg(not(feature="database"))]
142#[derive(Debug, Default, Clone)]
143pub struct TrackerStrip {}
144#[cfg(not(feature="database"))]
145#[derive(Debug, Default, Clone)]
146pub struct TrackerStripMask {}
147#[cfg(not(feature="database"))]
148#[derive(Debug, Default, Clone)]
149pub struct TrackerStripPedestal {}
150#[cfg(not(feature="database"))]
151#[derive(Debug, Default, Clone)]
152pub struct TrackerStripTransferFunction {}
153#[cfg(not(feature="database"))]
154#[derive(Debug, Default, Clone)]
155pub struct TrackerStripCmnNoise {}
156
157
158
159#[cfg(feature="pybindings")]
160pub use crate::pythonize_packable;
161#[cfg(feature="pybindings")]
162pub use crate::pythonize_packable_no_new;
163#[cfg(feature="pybindings")]
164pub use crate::pythonize;
165#[cfg(feature="pybindings")]
166pub use crate::pythonize_telemetry;
167#[cfg(feature="pybindings")]
168pub use crate::pythonize_display;
169#[cfg(feature="pybindings")]
170pub use crate::pythonize_monidata;
171pub use crate::moniseries;
172
173#[cfg(feature="random")]
174pub use crate::random::FromRandom;
175
176pub use crate::version::ProtocolVersion;
177pub use crate::constants::*;
178pub use crate::errors::*;
179pub use crate::io::*;
180pub use crate::io::parsers::*;
181pub use crate::io::caraspace::*;
182pub use crate::io::serialization::*;
183pub use crate::events::*;
184pub use crate::packets::*;
185#[cfg(feature="database")]
186pub use crate::database::*;
187//#[cfg(not(feature="database"))]
188//pub use crate::TrackerStrip;
189//#[cfg(not(feature="database"))]
190//pub use crate::TofPaddle;
191
192pub use crate::calibration::tof::*;
193pub use crate::monitoring::*;
194pub use crate::tof::*;
195pub use crate::tracker::*;
196pub use crate::tof::algorithms::*;
197//pub use crate::algorithms::*;
198
199pub use crate::packets::{
200  TofPacket,
201  TofPackable,
202  TofPacketType
203};
204
205pub use crate::io::parsers::{
206  parse_u8,
207  parse_u16,
208  parse_u32,
209  parse_u64,
210  parse_string,
211  u8_to_u16,
212};
213
214pub use crate::constants::{
215  NWORDS,
216  NCHN
217};
218
219pub use crate::errors::{
220  SerializationError,
221  AnalysisError,
222  UserError
223};
224
225// macro to avoid boring enum boilerplate
226pub use crate::expand_and_test_enum;
227pub use crate::reader;
228