8 #include <morphio/mut/modifiers.h> 9 #include <morphio/mut/section.h> 21 void printError(Warning warning,
const std::string& msg);
44 _lineNumbers[sectionId] =
static_cast<int>(line);
50 return _lineNumbers.at(sectionId);
51 }
catch (
const std::out_of_range&) {
59 std::map<unsigned int, int> _lineNumbers;
62 static std::set<Warning> _ignoredWarnings;
72 explicit Sample(
const char* line,
unsigned int lineNumber_)
73 : lineNumber(lineNumber_) {
76 #ifdef MORPHIO_USE_DOUBLE 77 const auto format =
"%20u%20d%20lg%20lg%20lg%20lg%20d";
79 const auto format =
"%20u%20d%20f%20f%20f%20f%20d";
92 diameter = radius * 2;
101 unsigned int lineNumber;
119 static bool isIgnored(
Warning warning);
123 std::map<ErrorLevel, std::string> SEVERITY{{ErrorLevel::INFO,
"info"},
124 {ErrorLevel::WARNING,
"warning"},
125 {ErrorLevel::ERROR,
"error"}};
127 const std::map<ErrorLevel, std::string> COLOR{{ErrorLevel::INFO,
"\033[1;34m"},
128 {ErrorLevel::WARNING,
"\033[1;33m"},
129 {ErrorLevel::ERROR,
"\033[1;31m"}};
131 const std::string COLOR_END(
"\033[0m");
133 return COLOR.at(errorLevel) + _uri +
":" + std::to_string(lineNumber) +
":" +
134 SEVERITY.at(errorLevel) + COLOR_END;
138 std::string errorMsg(
long unsigned int lineNumber,
140 std::string msg =
"")
const;
147 std::string ERROR_OPENING_FILE()
const;
150 std::string ERROR_LINE_NON_PARSABLE(
long unsigned int lineNumber)
const;
153 std::string ERROR_UNSUPPORTED_SECTION_TYPE(
long unsigned int lineNumber,
157 std::string ERROR_UNSUPPORTED_VASCULATURE_SECTION_TYPE(
long unsigned int lineNumber,
161 std::string ERROR_MULTIPLE_SOMATA(
const std::vector<Sample>& somata)
const;
164 std::string ERROR_MISSING_PARENT(
const Sample& sample)
const;
167 std::string ERROR_SOMA_BIFURCATION(
const Sample& sample,
168 const std::vector<Sample>& children)
const;
171 std::string ERROR_SOMA_WITH_NEURITE_PARENT(
const Sample& sample)
const;
174 std::string ERROR_REPEATED_ID(
const Sample& originalSample,
const Sample& newSample)
const;
177 std::string ERROR_SELF_PARENT(
const Sample& sample)
const;
180 std::string ERROR_NOT_IMPLEMENTED_UNDEFINED_SOMA(
const std::string&)
const;
183 std::string ERROR_MISSING_MITO_PARENT(
int mitoParentId)
const;
189 std::string ERROR_SOMA_ALREADY_DEFINED(
long unsigned int lineNumber)
const;
192 std::string ERROR_PARSING_POINT(
long unsigned int lineNumber,
const std::string& point)
const;
195 std::string ERROR_UNKNOWN_TOKEN(
long unsigned int lineNumber,
const std::string& token)
const;
198 std::string ERROR_UNEXPECTED_TOKEN(
long unsigned int lineNumber,
199 const std::string& expected,
200 const std::string& got,
201 const std::string& msg)
const;
204 std::string ERROR_EOF_REACHED(
long unsigned int lineNumber)
const;
207 std::string ERROR_EOF_IN_NEURITE(
long unsigned int lineNumber)
const;
210 std::string ERROR_EOF_UNBALANCED_PARENS(
long unsigned int lineNumber)
const;
220 std::string ERROR_WRONG_EXTENSION(
const std::string& filename)
const;
223 std::string ERROR_VECTOR_LENGTH_MISMATCH(
const std::string& vec1,
225 const std::string& vec2,
226 size_t length2)
const;
229 std::string ERROR_PERIMETER_DATA_NOT_WRITABLE();
231 std::string ERROR_ONLY_CHILD_SWC_WRITER(
unsigned int parentId)
const;
239 std::string WARNING_MITOCHONDRIA_WRITE_NOT_SUPPORTED()
const;
241 std::string WARNING_WRITE_NO_SOMA()
const;
243 std::string WARNING_WRITE_EMPTY_MORPHOLOGY()
const;
245 std::string WARNING_NO_SOMA_FOUND()
const;
247 std::string WARNING_ZERO_DIAMETER(
const Sample& sample)
const;
249 std::string WARNING_DISCONNECTED_NEURITE(
const Sample& sample)
const;
251 std::string WARNING_WRONG_DUPLICATE(
const std::shared_ptr<morphio::mut::Section>& current,
252 const std::shared_ptr<morphio::mut::Section>& parent)
const;
254 std::string WARNING_APPENDING_EMPTY_SECTION(std::shared_ptr<morphio::mut::Section>);
256 std::string WARNING_ONLY_CHILD(
const DebugInfo& info,
257 unsigned int parentId,
258 unsigned int childId)
const;
261 std::string WARNING_NEUROMORPHO_SOMA_NON_CONFORM(
const Sample& root,
266 std::string WARNING_WRONG_ROOT_POINT(
const std::vector<Sample>& children)
const;
void set_maximum_warnings(int n_warnings)
std::array< morphio::floatType, 3 > Point
Definition: vector_types.h:24
void set_ignored_warning(Warning warning, bool ignore=true)
void set_raise_warnings(bool is_raise)
Info.
Definition: errorMessages.h:27
Option
Definition: enums.h:12
DebugInfo(std::string filename="")
Definition: errorMessages.h:39
Error.
Definition: errorMessages.h:29
void printError(Warning warning, const std::string &msg)
ErrorMessages(const std::string &uri)
Definition: errorMessages.h:115
Definition: dendritic_spine.h:9
ErrorMessages()
Definition: errorMessages.h:110
Warning
Definition: enums.h:24
std::string errorLink(long unsigned int lineNumber, ErrorLevel errorLevel) const
Definition: errorMessages.h:122
Definition: errorMessages.h:65
ErrorLevel
Definition: errorMessages.h:26
Warning.
Definition: errorMessages.h:28
Point point
x, y, z and diameter
Definition: errorMessages.h:97
Definition: errorMessages.h:106
int32_t getLineNumber(uint32_t sectionId) const
Definition: errorMessages.h:48
std::string _filename
Definition: errorMessages.h:56
float floatType
Definition: vector_types.h:17
void setLineNumber(uint32_t sectionId, unsigned int line)
Definition: errorMessages.h:43
Undefined section.
Definition: enums.h:62
VascularSectionType
Definition: enums.h:98
SectionType
Definition: enums.h:61
Definition: errorMessages.h:33