senfd 0.2.1__tar.gz → 0.2.2__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 (33) hide show
  1. {senfd-0.2.1/src/senfd.egg-info → senfd-0.2.2}/PKG-INFO +1 -1
  2. {senfd-0.2.1 → senfd-0.2.2}/pyproject.toml +1 -1
  3. senfd-0.2.2/src/senfd/__init__.py +1 -0
  4. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/cli.py +1 -4
  5. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/documents/plain.py +11 -9
  6. senfd-0.2.2/src/senfd/errors.py +28 -0
  7. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/schemas/enriched.figure.document.schema.json +1 -1
  8. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/schemas/plain.figure.document.schema.json +1 -1
  9. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/tables.py +7 -5
  10. {senfd-0.2.1 → senfd-0.2.2/src/senfd.egg-info}/PKG-INFO +1 -1
  11. senfd-0.2.1/src/senfd/__init__.py +0 -1
  12. senfd-0.2.1/src/senfd/errors.py +0 -30
  13. {senfd-0.2.1 → senfd-0.2.2}/LICENSE +0 -0
  14. {senfd-0.2.1 → senfd-0.2.2}/README.rst +0 -0
  15. {senfd-0.2.1 → senfd-0.2.2}/setup.cfg +0 -0
  16. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/documents/__init__.py +0 -0
  17. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/documents/base.py +0 -0
  18. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/documents/enriched.py +0 -0
  19. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/pipeline.py +0 -0
  20. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/schemas/__init__.py +0 -0
  21. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/templates/__init__.py +0 -0
  22. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/templates/enriched.figure.document.html.jinja2 +0 -0
  23. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/templates/plain.figure.document.html.jinja2 +0 -0
  24. {senfd-0.2.1 → senfd-0.2.2}/src/senfd/utils.py +0 -0
  25. {senfd-0.2.1 → senfd-0.2.2}/src/senfd.egg-info/SOURCES.txt +0 -0
  26. {senfd-0.2.1 → senfd-0.2.2}/src/senfd.egg-info/dependency_links.txt +0 -0
  27. {senfd-0.2.1 → senfd-0.2.2}/src/senfd.egg-info/entry_points.txt +0 -0
  28. {senfd-0.2.1 → senfd-0.2.2}/src/senfd.egg-info/requires.txt +0 -0
  29. {senfd-0.2.1 → senfd-0.2.2}/src/senfd.egg-info/top_level.txt +0 -0
  30. {senfd-0.2.1 → senfd-0.2.2}/tests/test_case_conversion.py +0 -0
  31. {senfd-0.2.1 → senfd-0.2.2}/tests/test_cli.py +0 -0
  32. {senfd-0.2.1 → senfd-0.2.2}/tests/test_module.py +0 -0
  33. {senfd-0.2.1 → senfd-0.2.2}/tests/test_schema.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: senfd
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: Semantic Enhancer for Figure Documents
5
5
  Author-email: "Simon A. F. Lund" <os@safl.dk>
6
6
  License: LGPL-2.1-only
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "senfd"
3
- version = "0.2.1"
3
+ version = "0.2.2"
4
4
  description = "Semantic Enhancer for Figure Documents"
5
5
  authors = [
6
6
  { name = "Simon A. F. Lund", email = "os@safl.dk" }
@@ -0,0 +1 @@
1
+ __version__ = "0.2.2"
@@ -23,10 +23,7 @@ def to_log_file(
23
23
  ) -> Path:
24
24
 
25
25
  content = json.dumps(
26
- [
27
- {"type": type(error).__name__, **senfd.errors.error_to_dict(error)}
28
- for error in errors
29
- ],
26
+ [{"type": type(error).__name__, **error.model_dump()} for error in errors],
30
27
  indent=4,
31
28
  )
32
29
 
@@ -107,8 +107,8 @@ class FromDocx(Converter):
107
107
  if not figure:
108
108
  errors.append(
109
109
  senfd.errors.TableCaptionError(
110
- "Does not match figure caption assumptions",
111
- caption,
110
+ message="Does not match figure caption assumptions",
111
+ caption=caption,
112
112
  )
113
113
  )
114
114
  continue
@@ -116,8 +116,8 @@ class FromDocx(Converter):
116
116
  if figure.figure_nr in figures:
117
117
  errors.append(
118
118
  senfd.errors.TableCaptionError(
119
- "Duplicate caption",
120
- caption,
119
+ message="Duplicate caption",
120
+ caption=caption,
121
121
  )
122
122
  )
123
123
  continue
@@ -147,15 +147,17 @@ class FromDocx(Converter):
147
147
  if not figure:
148
148
  errors.append(
149
149
  senfd.errors.TableOfFiguresError(
150
- "Does not match figure assumptions",
151
- caption,
150
+ message="Does not match figure assumptions",
151
+ caption=caption,
152
152
  )
153
153
  )
154
154
  continue
155
155
 
156
156
  if not figure.page_nr:
157
157
  errors.append(
158
- senfd.errors.TableOfFiguresError("Is missing <page_nr>", caption)
158
+ senfd.errors.TableOfFiguresError(
159
+ message="Is missing <page_nr>", caption=caption
160
+ )
159
161
  )
160
162
  continue
161
163
 
@@ -165,8 +167,8 @@ class FromDocx(Converter):
165
167
  if figure.description not in existing.description:
166
168
  errors.append(
167
169
  senfd.errors.TableOfFiguresError(
168
- f"({existing.description}) != {figure.description}",
169
- caption,
170
+ message=f"({existing.description}) != {figure.description}",
171
+ caption=caption,
170
172
  )
171
173
  )
172
174
  else:
@@ -0,0 +1,28 @@
1
+ from typing import Any, List
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class TableError(BaseModel):
7
+ message: str
8
+
9
+
10
+ class TableOfFiguresError(TableError):
11
+ caption: str
12
+
13
+
14
+ class TableCaptionError(TableError):
15
+ caption: str
16
+
17
+
18
+ class TableHeaderError(TableError):
19
+ caption: str
20
+ cells: List[Any]
21
+
22
+
23
+ class IrregularTableError(TableError):
24
+ lengths: List[int]
25
+
26
+
27
+ class NonTableHeaderError(TableError):
28
+ pass
@@ -497,7 +497,7 @@
497
497
  "DocumentMeta": {
498
498
  "properties": {
499
499
  "version": {
500
- "default": "0.2.1",
500
+ "default": "0.2.2",
501
501
  "title": "Version",
502
502
  "type": "string"
503
503
  },
@@ -20,7 +20,7 @@
20
20
  "DocumentMeta": {
21
21
  "properties": {
22
22
  "version": {
23
- "default": "0.2.1",
23
+ "default": "0.2.2",
24
24
  "title": "Version",
25
25
  "type": "string"
26
26
  },
@@ -48,11 +48,13 @@ class HeaderTable(Table):
48
48
  lengths = list(set([len(row.cells) for row in table.rows]))
49
49
  if len(lengths) != 1:
50
50
  return None, senfd.errors.IrregularTableError(
51
- f"Varying row lengths({lengths})", lengths
51
+ message=f"Varying row lengths({lengths})", lengths=lengths
52
52
  )
53
53
 
54
54
  if len(table.rows) < 2:
55
- return None, senfd.errors.NonTableHeaderError("Insufficent number of rows")
55
+ return None, senfd.errors.NonTableHeaderError(
56
+ message="Insufficent number of rows"
57
+ )
56
58
 
57
59
  headers = [
58
60
  cell.text.strip()
@@ -61,9 +63,9 @@ class HeaderTable(Table):
61
63
  ]
62
64
  if len(headers) != len(table.rows[1].cells):
63
65
  return None, senfd.errors.TableHeaderError(
64
- "Unsupported names",
65
- table.rows[0].cells[0].text,
66
- [cell.text for cell in table.rows[1].cells],
66
+ message="Unsupported names",
67
+ caption=table.rows[0].cells[0].text,
68
+ cells=[cell.text for cell in table.rows[1].cells],
67
69
  )
68
70
 
69
71
  data = table.dict()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: senfd
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: Semantic Enhancer for Figure Documents
5
5
  Author-email: "Simon A. F. Lund" <os@safl.dk>
6
6
  License: LGPL-2.1-only
@@ -1 +0,0 @@
1
- __version__ = "0.2.1"
@@ -1,30 +0,0 @@
1
- from collections import namedtuple
2
- from typing import Any, Dict, List
3
-
4
- from pydantic import BaseModel
5
-
6
- TableOfFiguresError = namedtuple("TableOfFiguresError", ["message", "caption"])
7
-
8
- TableCaptionError = namedtuple("TableCaptionError", ["message", "caption"])
9
-
10
- TableHeaderError = namedtuple("TableHeaderError", ["message", "caption", "cells"])
11
-
12
- IrregularTableError = namedtuple("IrregularTableError", ["message", "lengths"])
13
-
14
- NonTableHeaderError = namedtuple("NonTableHeaderError", ["message"])
15
-
16
- TableError = (
17
- TableOfFiguresError
18
- | TableCaptionError
19
- | TableHeaderError
20
- | IrregularTableError
21
- | NonTableHeaderError
22
- )
23
-
24
-
25
- def error_to_dict(error: TableError) -> Dict[str, List[Any]]:
26
- error_dict = error._asdict()
27
- for key, value in error_dict.items():
28
- if isinstance(value, BaseModel):
29
- error_dict[key] = value.dict()
30
- return error_dict
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes