logger-36 2025.10__tar.gz → 2025.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. {logger_36-2025.10 → logger_36-2025.12}/PKG-INFO +1 -1
  2. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/__init__.py +5 -2
  3. logger_36-2025.12/package/logger_36/api/exception.py +56 -0
  4. logger_36-2025.12/package/logger_36/api/handler.py +58 -0
  5. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/api/storage.py +1 -0
  6. logger_36-2025.10/package/logger_36/api/logger.py → logger_36-2025.12/package/logger_36/api/type.py +1 -0
  7. {logger_36-2025.10/package/logger_36 → logger_36-2025.12/package/logger_36/extension}/exception.py +28 -7
  8. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/task/format/message.py +16 -8
  9. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/type/logger.py +32 -2
  10. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/version.py +1 -1
  11. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36.egg-info/PKG-INFO +1 -1
  12. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36.egg-info/SOURCES.txt +10 -9
  13. logger_36-2025.10/package/logger_36/storage.py +0 -53
  14. {logger_36-2025.10 → logger_36-2025.12}/MANIFEST.in +0 -0
  15. {logger_36-2025.10 → logger_36-2025.12}/README-COPYRIGHT-utf8.txt +0 -0
  16. {logger_36-2025.10 → logger_36-2025.12}/README-LICENCE-utf8.txt +0 -0
  17. {logger_36-2025.10 → logger_36-2025.12}/README.rst +0 -0
  18. {logger_36-2025.10 → logger_36-2025.12}/documentation/wiki/description.asciidoc +0 -0
  19. {logger_36-2025.10/package/logger_36 → logger_36-2025.12/package/logger_36/api}/content.py +0 -0
  20. {logger_36-2025.10/package/logger_36 → logger_36-2025.12/package/logger_36/api}/gpu.py +0 -0
  21. {logger_36-2025.10/package/logger_36 → logger_36-2025.12/package/logger_36/api}/memory.py +0 -0
  22. {logger_36-2025.10/package/logger_36 → logger_36-2025.12/package/logger_36/api}/system.py +0 -0
  23. {logger_36-2025.10/package/logger_36 → logger_36-2025.12/package/logger_36/api}/time.py +0 -0
  24. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/config/console_rich.py +0 -0
  25. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/config/optional.py +0 -0
  26. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/handler/console.py +0 -0
  27. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/handler/console_rich.py +0 -0
  28. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/handler/file.py +0 -0
  29. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/handler/generic.py +0 -0
  30. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/logger/chronos.py +0 -0
  31. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/logger/gpu.py +0 -0
  32. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/logger/memory.py +0 -0
  33. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/catalog/logger/system.py +0 -0
  34. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/config/issue.py +0 -0
  35. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/config/memory.py +0 -0
  36. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/config/message.py +0 -0
  37. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/config/system.py +0 -0
  38. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/error.py +0 -0
  39. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/generic.py +0 -0
  40. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/handler.py +0 -0
  41. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/issue.py +0 -0
  42. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/logger.py +0 -0
  43. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/memory.py +0 -0
  44. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/message.py +0 -0
  45. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/path.py +0 -0
  46. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/record.py +0 -0
  47. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/constant/system.py +0 -0
  48. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/extension/html_.py +0 -0
  49. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/instance/logger.py +0 -0
  50. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/instance/loggers.py +0 -0
  51. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/task/format/memory.py +0 -0
  52. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/task/format/rule.py +0 -0
  53. /logger_36-2025.10/package/logger_36/handler.py → /logger_36-2025.12/package/logger_36/task/handling.py +0 -0
  54. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/task/inspection.py +0 -0
  55. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/task/measure/chronos.py +0 -0
  56. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/task/measure/memory.py +0 -0
  57. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/task/storage.py +0 -0
  58. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/type/handler.py +0 -0
  59. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/type/issue.py +0 -0
  60. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36/type/loggers.py +0 -0
  61. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36.egg-info/dependency_links.txt +0 -0
  62. {logger_36-2025.10 → logger_36-2025.12}/package/logger_36.egg-info/top_level.txt +0 -0
  63. {logger_36-2025.10 → logger_36-2025.12}/pyproject.toml +0 -0
  64. {logger_36-2025.10 → logger_36-2025.12}/setup.cfg +0 -0
  65. {logger_36-2025.10 → logger_36-2025.12}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: logger-36
3
- Version: 2025.10
3
+ Version: 2025.12
4
4
  Summary: Simple logger with a catalog of handlers
5
5
  Home-page: https://src.koda.cnrs.fr/eric.debreuve/logger-36/
6
6
  Author: Eric Debreuve
@@ -12,9 +12,12 @@ else:
12
12
  import site
13
13
  from pathlib import Path as path_t
14
14
 
15
- paths = site.getsitepackages() + [site.getusersitepackages()]
16
15
  folder = path_t(__file__).parent
17
- if folder not in paths:
16
+ paths = site.getsitepackages() + [site.getusersitepackages()]
17
+ for path in paths:
18
+ if folder.is_relative_to(path):
19
+ break
20
+ else:
18
21
  beartype_this_package()
19
22
 
20
23
  from logger_36.instance.logger import L
@@ -0,0 +1,56 @@
1
+ """
2
+ Copyright CNRS/Inria/UniCA
3
+ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
4
+ SEE COPYRIGHT NOTICE BELOW
5
+ """
6
+
7
+ from logger_36.extension.exception import ( # noqa
8
+ OverrideExceptionFormat,
9
+ ResetExceptionFormat,
10
+ )
11
+
12
+ """
13
+ COPYRIGHT NOTICE
14
+
15
+ This software is governed by the CeCILL license under French law and
16
+ abiding by the rules of distribution of free software. You can use,
17
+ modify and/ or redistribute the software under the terms of the CeCILL
18
+ license as circulated by CEA, CNRS and INRIA at the following URL
19
+ "http://www.cecill.info".
20
+
21
+ As a counterpart to the access to the source code and rights to copy,
22
+ modify and redistribute granted by the license, users are provided only
23
+ with a limited warranty and the software's author, the holder of the
24
+ economic rights, and the successive licensors have only limited
25
+ liability.
26
+
27
+ In this respect, the user's attention is drawn to the risks associated
28
+ with loading, using, modifying and/or developing or reproducing the
29
+ software by the user in light of its specific status of free software,
30
+ that may mean that it is complicated to manipulate, and that also
31
+ therefore means that it is reserved for developers and experienced
32
+ professionals having in-depth computer knowledge. Users are therefore
33
+ encouraged to load and test the software's suitability as regards their
34
+ requirements in conditions enabling the security of their systems and/or
35
+ data to be ensured and, more generally, to use and operate it in the
36
+ same conditions as regards security.
37
+
38
+ The fact that you are presently reading this means that you have had
39
+ knowledge of the CeCILL license and that you accept its terms.
40
+
41
+ SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
42
+
43
+ This software is being developed by Eric Debreuve, a CNRS employee and
44
+ member of team Morpheme.
45
+ Team Morpheme is a joint team between Inria, CNRS, and UniCA.
46
+ It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
47
+ I3S, and Laboratory iBV.
48
+
49
+ CNRS: https://www.cnrs.fr/index.php/en
50
+ Inria: https://www.inria.fr/en/
51
+ UniCA: https://univ-cotedazur.eu/
52
+ Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
53
+ I3S: https://www.i3s.unice.fr/en/
54
+ iBV: http://ibv.unice.fr/
55
+ Team Morpheme: https://team.inria.fr/morpheme/
56
+ """
@@ -0,0 +1,58 @@
1
+ """
2
+ Copyright CNRS/Inria/UniCA
3
+ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
4
+ SEE COPYRIGHT NOTICE BELOW
5
+ """
6
+
7
+ from logger_36.task.handling import ( # noqa
8
+ AddConsoleHandler,
9
+ AddFileHandler,
10
+ AddGenericHandler,
11
+ AddRichConsoleHandler,
12
+ )
13
+
14
+ """
15
+ COPYRIGHT NOTICE
16
+
17
+ This software is governed by the CeCILL license under French law and
18
+ abiding by the rules of distribution of free software. You can use,
19
+ modify and/ or redistribute the software under the terms of the CeCILL
20
+ license as circulated by CEA, CNRS and INRIA at the following URL
21
+ "http://www.cecill.info".
22
+
23
+ As a counterpart to the access to the source code and rights to copy,
24
+ modify and redistribute granted by the license, users are provided only
25
+ with a limited warranty and the software's author, the holder of the
26
+ economic rights, and the successive licensors have only limited
27
+ liability.
28
+
29
+ In this respect, the user's attention is drawn to the risks associated
30
+ with loading, using, modifying and/or developing or reproducing the
31
+ software by the user in light of its specific status of free software,
32
+ that may mean that it is complicated to manipulate, and that also
33
+ therefore means that it is reserved for developers and experienced
34
+ professionals having in-depth computer knowledge. Users are therefore
35
+ encouraged to load and test the software's suitability as regards their
36
+ requirements in conditions enabling the security of their systems and/or
37
+ data to be ensured and, more generally, to use and operate it in the
38
+ same conditions as regards security.
39
+
40
+ The fact that you are presently reading this means that you have had
41
+ knowledge of the CeCILL license and that you accept its terms.
42
+
43
+ SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
44
+
45
+ This software is being developed by Eric Debreuve, a CNRS employee and
46
+ member of team Morpheme.
47
+ Team Morpheme is a joint team between Inria, CNRS, and UniCA.
48
+ It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
49
+ I3S, and Laboratory iBV.
50
+
51
+ CNRS: https://www.cnrs.fr/index.php/en
52
+ Inria: https://www.inria.fr/en/
53
+ UniCA: https://univ-cotedazur.eu/
54
+ Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
55
+ I3S: https://www.i3s.unice.fr/en/
56
+ iBV: http://ibv.unice.fr/
57
+ Team Morpheme: https://team.inria.fr/morpheme/
58
+ """
@@ -5,6 +5,7 @@ SEE COPYRIGHT NOTICE BELOW
5
5
  """
6
6
 
7
7
  from logger_36.extension.html_ import html_content_t # noqa
8
+ from logger_36.task.storage import SaveLOGasHTML # noqa
8
9
 
9
10
  """
10
11
  COPYRIGHT NOTICE
@@ -5,6 +5,7 @@ SEE COPYRIGHT NOTICE BELOW
5
5
  """
6
6
 
7
7
  from logger_36.type.logger import logger_t # noqa
8
+ from logger_36.type.loggers import loggers_t # noqa
8
9
 
9
10
  """
10
11
  COPYRIGHT NOTICE
@@ -7,13 +7,29 @@ SEE COPYRIGHT NOTICE BELOW
7
7
  import re as r
8
8
  import sys as s
9
9
  import tempfile as tmpf
10
+ import textwrap as text
10
11
  import traceback as tcbk
11
12
  import types as t
12
13
  from pathlib import Path as path_t
13
14
 
15
+ from logger_36.catalog.config.optional import RICH_IS_AVAILABLE
14
16
  from logger_36.constant.path import USER_FOLDER
15
17
 
16
18
  _ORIGINAL_EXCEPTION_HANDLER = s.excepthook
19
+ _INDENTATION = " "
20
+
21
+ if RICH_IS_AVAILABLE:
22
+ from rich import print as ShowErrorMessage # noqa
23
+
24
+ TITLE_COLOR = "[red]"
25
+ FUNCTION_COLOR = "[cyan]"
26
+ REPORT_COLOR = "[red]"
27
+ MONOCHROME = "[/]"
28
+ OPTIONAL_NEWLINE = ""
29
+ else:
30
+ ShowErrorMessage = s.__stderr__.write
31
+ TITLE_COLOR = WHERE_COLOR = REPORT_COLOR = MONOCHROME = ""
32
+ OPTIONAL_NEWLINE = "\n"
17
33
 
18
34
 
19
35
  def OverrideExceptionFormat() -> None:
@@ -63,26 +79,31 @@ def _HandleException(
63
79
  variables = map(
64
80
  lambda _: f"{_:{longest}} = {all_variables[_]}", sorted(found_names)
65
81
  )
66
- variables = " " + "\n ".join(variables) + "\n"
82
+ variables = 2 * _INDENTATION + f"\n{2*_INDENTATION}".join(variables) + "\n"
67
83
  else:
68
84
  variables = ""
69
85
 
70
- line_content = f" {line_content}\n"
86
+ line_content = f"{_INDENTATION}{line_content}\n"
71
87
 
72
88
  # Format message.
73
89
  message = str(exception).strip()
74
90
  if message.__len__() > 0:
75
- message = f" {message[0].title()}{message[1:]}\n"
91
+ if "\n" in message:
92
+ message = text.indent(message, 2 * _INDENTATION)[
93
+ (2 * _INDENTATION.__len__()) :
94
+ ]
95
+ message = f"{_INDENTATION}{message[0].title()}{message[1:]}\n"
76
96
 
77
97
  document = tmpf.NamedTemporaryFile(delete=False)
78
98
 
79
- s.__stderr__.write(
80
- f"{stripe.__name__}\n"
81
- f" {module}:{function}@{line_number}\n"
99
+ ShowErrorMessage(
100
+ f"{TITLE_COLOR}{stripe.__name__}{MONOCHROME}\n"
101
+ f"{_INDENTATION}{module}:{FUNCTION_COLOR}{function}{MONOCHROME}@{line_number}\n"
82
102
  f"{line_content}"
83
103
  f"{variables}"
84
104
  f"{message}"
85
- f" Full report at: {document.name}\n",
105
+ f"{_INDENTATION}{REPORT_COLOR}Full report at: file://{document.name}"
106
+ f"{MONOCHROME}{OPTIONAL_NEWLINE}",
86
107
  )
87
108
 
88
109
  lines = tcbk.format_exception(exception)
@@ -39,7 +39,12 @@ def MessageWithActualExpected(
39
39
  else:
40
40
  dot = ""
41
41
 
42
- return f"{message}: Actual={actual}:{type(actual).__name__}; {expected}{dot}"
42
+ if isinstance(actual, type):
43
+ actual = actual.__name__
44
+ else:
45
+ actual = f"{actual}:{type(actual).__name__}"
46
+
47
+ return f"{message}: Actual={actual}; {expected}{dot}"
43
48
 
44
49
 
45
50
  def _FormattedExpected(
@@ -54,14 +59,17 @@ def _FormattedExpected(
54
59
  else:
55
60
  expected = ", ".join(map(str, expected))
56
61
  return f"Valid values: {expected}"
62
+
63
+ if isinstance(expected, type):
64
+ return f"Expected{operator}{expected.__name__}"
65
+
66
+ if operator == "=":
67
+ stripe = f":{type(expected).__name__}"
57
68
  else:
58
- if operator == "=":
59
- stripe = f":{type(expected).__name__}"
60
- else:
61
- stripe = ""
62
- if operator == ":":
63
- operator = ": "
64
- return f"Expected{operator}{expected}{stripe}"
69
+ stripe = ""
70
+ if operator == ":":
71
+ operator = ": "
72
+ return f"Expected{operator}{expected}{stripe}"
65
73
 
66
74
 
67
75
  """
@@ -40,10 +40,14 @@ from logger_36.constant.record import (
40
40
  SHOW_W_RULE_ATTR,
41
41
  STORE_MEMORY_ATTR,
42
42
  )
43
- from logger_36.exception import OverrideExceptionFormat
44
- from logger_36.handler import AddConsoleHandler, AddFileHandler, AddRichConsoleHandler
43
+ from logger_36.extension.exception import OverrideExceptionFormat
45
44
  from logger_36.task.format.message import MessageWithActualExpected
46
45
  from logger_36.task.format.rule import RuleAsText
46
+ from logger_36.task.handling import (
47
+ AddConsoleHandler,
48
+ AddFileHandler,
49
+ AddRichConsoleHandler,
50
+ )
47
51
  from logger_36.task.measure.chronos import ElapsedTime
48
52
  from logger_36.task.measure.memory import CurrentUsage as CurrentMemoryUsage
49
53
  from logger_36.type.issue import NewIssue, issue_t
@@ -111,6 +115,11 @@ class logger_t(base_t):
111
115
  """"""
112
116
  return self.staged_issues.__len__() > 0
113
117
 
118
+ @property
119
+ def n_staged_issues(self) -> int:
120
+ """"""
121
+ return self.staged_issues.__len__()
122
+
114
123
  @property
115
124
  def past_logs_as_HTML(self) -> str | None:
116
125
  """
@@ -497,6 +506,27 @@ class logger_t(base_t):
497
506
  )
498
507
  self.staged_issues.append(issue)
499
508
 
509
+ def PopIssues(self, /, *, should_remove_context: bool = False) -> list[str]:
510
+ """"""
511
+ if not self.has_staged_issues:
512
+ return []
513
+
514
+ output = []
515
+
516
+ if should_remove_context:
517
+ separator = ISSUE_CONTEXT_END
518
+ else:
519
+ separator = ISSUE_LEVEL_SEPARATOR
520
+ separator_length = separator.__len__()
521
+ for issue in self.staged_issues:
522
+ start_idx = issue.find(separator)
523
+ issue = issue[(start_idx + separator_length) :]
524
+ output.append(issue)
525
+
526
+ self.staged_issues.clear()
527
+
528
+ return output
529
+
500
530
  def CommitIssues(
501
531
  self,
502
532
  /,
@@ -4,7 +4,7 @@ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
4
4
  SEE COPYRIGHT NOTICE BELOW
5
5
  """
6
6
 
7
- __version__ = "2025.10"
7
+ __version__ = "2025.12"
8
8
 
9
9
  """
10
10
  COPYRIGHT NOTICE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: logger-36
3
- Version: 2025.10
3
+ Version: 2025.12
4
4
  Summary: Simple logger with a catalog of handlers
5
5
  Home-page: https://src.koda.cnrs.fr/eric.debreuve/logger-36/
6
6
  Author: Eric Debreuve
@@ -6,21 +6,20 @@ pyproject.toml
6
6
  setup.py
7
7
  documentation/wiki/description.asciidoc
8
8
  package/logger_36/__init__.py
9
- package/logger_36/content.py
10
- package/logger_36/exception.py
11
- package/logger_36/gpu.py
12
- package/logger_36/handler.py
13
- package/logger_36/memory.py
14
- package/logger_36/storage.py
15
- package/logger_36/system.py
16
- package/logger_36/time.py
17
9
  package/logger_36/version.py
18
10
  package/logger_36.egg-info/PKG-INFO
19
11
  package/logger_36.egg-info/SOURCES.txt
20
12
  package/logger_36.egg-info/dependency_links.txt
21
13
  package/logger_36.egg-info/top_level.txt
22
- package/logger_36/api/logger.py
14
+ package/logger_36/api/content.py
15
+ package/logger_36/api/exception.py
16
+ package/logger_36/api/gpu.py
17
+ package/logger_36/api/handler.py
18
+ package/logger_36/api/memory.py
23
19
  package/logger_36/api/storage.py
20
+ package/logger_36/api/system.py
21
+ package/logger_36/api/time.py
22
+ package/logger_36/api/type.py
24
23
  package/logger_36/catalog/config/console_rich.py
25
24
  package/logger_36/catalog/config/optional.py
26
25
  package/logger_36/catalog/handler/console.py
@@ -45,9 +44,11 @@ package/logger_36/constant/message.py
45
44
  package/logger_36/constant/path.py
46
45
  package/logger_36/constant/record.py
47
46
  package/logger_36/constant/system.py
47
+ package/logger_36/extension/exception.py
48
48
  package/logger_36/extension/html_.py
49
49
  package/logger_36/instance/logger.py
50
50
  package/logger_36/instance/loggers.py
51
+ package/logger_36/task/handling.py
51
52
  package/logger_36/task/inspection.py
52
53
  package/logger_36/task/storage.py
53
54
  package/logger_36/task/format/memory.py
@@ -1,53 +0,0 @@
1
- """
2
- Copyright CNRS/Inria/UniCA
3
- Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
4
- SEE COPYRIGHT NOTICE BELOW
5
- """
6
-
7
- from logger_36.task.storage import SaveLOGasHTML # noqa
8
-
9
- """
10
- COPYRIGHT NOTICE
11
-
12
- This software is governed by the CeCILL license under French law and
13
- abiding by the rules of distribution of free software. You can use,
14
- modify and/ or redistribute the software under the terms of the CeCILL
15
- license as circulated by CEA, CNRS and INRIA at the following URL
16
- "http://www.cecill.info".
17
-
18
- As a counterpart to the access to the source code and rights to copy,
19
- modify and redistribute granted by the license, users are provided only
20
- with a limited warranty and the software's author, the holder of the
21
- economic rights, and the successive licensors have only limited
22
- liability.
23
-
24
- In this respect, the user's attention is drawn to the risks associated
25
- with loading, using, modifying and/or developing or reproducing the
26
- software by the user in light of its specific status of free software,
27
- that may mean that it is complicated to manipulate, and that also
28
- therefore means that it is reserved for developers and experienced
29
- professionals having in-depth computer knowledge. Users are therefore
30
- encouraged to load and test the software's suitability as regards their
31
- requirements in conditions enabling the security of their systems and/or
32
- data to be ensured and, more generally, to use and operate it in the
33
- same conditions as regards security.
34
-
35
- The fact that you are presently reading this means that you have had
36
- knowledge of the CeCILL license and that you accept its terms.
37
-
38
- SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
39
-
40
- This software is being developed by Eric Debreuve, a CNRS employee and
41
- member of team Morpheme.
42
- Team Morpheme is a joint team between Inria, CNRS, and UniCA.
43
- It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
44
- I3S, and Laboratory iBV.
45
-
46
- CNRS: https://www.cnrs.fr/index.php/en
47
- Inria: https://www.inria.fr/en/
48
- UniCA: https://univ-cotedazur.eu/
49
- Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
50
- I3S: https://www.i3s.unice.fr/en/
51
- iBV: http://ibv.unice.fr/
52
- Team Morpheme: https://team.inria.fr/morpheme/
53
- """
File without changes
File without changes
File without changes
File without changes
File without changes