AARE
Data analysis library for PSI hybrid detectors
Loading...
Searching...
No Matches
NumpyHelpers.hpp
Go to the documentation of this file.
1
2#pragma once
3#include <algorithm>
4#include <array>
5#include <filesystem>
6#include <fstream>
7#include <iostream>
8#include <numeric>
9#include <sstream>
10#include <string>
11#include <unordered_map>
12#include <vector>
13
14#include "aare/core/DType.hpp"
15#include "aare/core/defs.hpp"
16
17namespace aare {
18
19using shape_t = std::vector<size_t>;
20
23 bool fortran_order{false};
25
26 std::string to_string() const;
27};
28
29namespace NumpyHelpers {
30
31const constexpr std::array<char, 6> magic_str{'\x93', 'N', 'U', 'M', 'P', 'Y'};
32const uint8_t magic_string_length{6};
33
34std::string parse_str(const std::string &in);
38std::string trim(const std::string &str);
39
40std::vector<std::string> parse_tuple(std::string in);
41
42bool parse_bool(const std::string &in);
43
44std::string get_value_from_map(const std::string &mapstr);
45
46std::unordered_map<std::string, std::string> parse_dict(std::string in, const std::vector<std::string> &keys);
47
48template <typename T, size_t N> bool in_array(T val, const std::array<T, N> &arr) {
49 return std::find(std::begin(arr), std::end(arr), val) != std::end(arr);
50}
51bool is_digits(const std::string &str);
52
53aare::DType parse_descr(std::string typestring);
54size_t write_header(std::filesystem::path fname, const NumpyHeader &header);
55size_t write_header(std::ostream &out, const NumpyHeader &header);
56
57} // namespace NumpyHelpers
58} // namespace aare
Definition DType.hpp:20
@ ERROR
Definition DType.hpp:25
size_t write_header(std::filesystem::path fname, const NumpyHeader &header)
Definition NumpyHelpers.cpp:225
std::string get_value_from_map(const std::string &mapstr)
Definition NumpyHelpers.cpp:132
bool is_digits(const std::string &str)
Definition NumpyHelpers.cpp:141
std::vector< std::string > parse_tuple(std::string in)
Definition NumpyHelpers.cpp:143
aare::DType parse_descr(std::string typestring)
Definition NumpyHelpers.cpp:93
std::string trim(const std::string &str)
Definition NumpyHelpers.cpp:163
bool parse_bool(const std::string &in)
Definition NumpyHelpers.cpp:124
std::unordered_map< std::string, std::string > parse_dict(std::string in, const std::vector< std::string > &keys)
Definition NumpyHelpers.cpp:42
const constexpr std::array< char, 6 > magic_str
Definition NumpyHelpers.hpp:31
bool in_array(T val, const std::array< T, N > &arr)
Definition NumpyHelpers.hpp:48
std::string parse_str(const std::string &in)
Definition NumpyHelpers.cpp:174
const uint8_t magic_string_length
Definition NumpyHelpers.hpp:32
Frame class to represent a single frame of data model class should be able to work with streams comin...
Definition CircularFifo.hpp:11
std::vector< size_t > shape_t
Definition NumpyHelpers.hpp:19
Definition NumpyHelpers.hpp:21
bool fortran_order
Definition NumpyHelpers.hpp:23
std::string to_string() const
Definition NumpyHelpers.cpp:30
DType dtype
Definition NumpyHelpers.hpp:22
shape_t shape
Definition NumpyHelpers.hpp:24