rawmaker 2.40.3__tar.gz → 2.40.5__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 (81) hide show
  1. {rawmaker-2.40.3 → rawmaker-2.40.5}/PKG-INFO +11 -9
  2. {rawmaker-2.40.3 → rawmaker-2.40.5}/letty/optimizer.py +4 -24
  3. {rawmaker-2.40.3 → rawmaker-2.40.5}/pyproject.toml +12 -9
  4. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/cli_automate.py +1 -2
  5. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/reader.py +2 -3
  6. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker.egg-info/PKG-INFO +11 -9
  7. rawmaker-2.40.5/rawmaker.egg-info/requires.txt +18 -0
  8. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_horizontals.py +1 -3
  9. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_master.py +12 -1
  10. rawmaker-2.40.3/rawmaker.egg-info/requires.txt +0 -15
  11. {rawmaker-2.40.3 → rawmaker-2.40.5}/LICENSE +0 -0
  12. {rawmaker-2.40.3 → rawmaker-2.40.5}/README +0 -0
  13. {rawmaker-2.40.3 → rawmaker-2.40.5}/letty/__init__.py +0 -0
  14. {rawmaker-2.40.3 → rawmaker-2.40.5}/letty/cli.py +0 -0
  15. {rawmaker-2.40.3 → rawmaker-2.40.5}/letty/quality/__init__.py +0 -0
  16. {rawmaker-2.40.3 → rawmaker-2.40.5}/letty/quality/whitespace.py +0 -0
  17. {rawmaker-2.40.3 → rawmaker-2.40.5}/letty/strategy.py +0 -0
  18. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/__init__.py +0 -0
  19. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/__main__.py +0 -0
  20. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/__patch__.py +0 -0
  21. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/cli.py +0 -0
  22. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/converter/__init__.py +0 -0
  23. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/converter/basic.py +0 -0
  24. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/converter/images.py +0 -0
  25. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/date.py +0 -0
  26. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/destination.py +0 -0
  27. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/error.py +0 -0
  28. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/__init__.py +0 -0
  29. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/annotation.py +0 -0
  30. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/border.py +0 -0
  31. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/boxes.py +0 -0
  32. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/figures.py +0 -0
  33. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/fonts.py +0 -0
  34. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/formula.py +0 -0
  35. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/horizontals.py +0 -0
  36. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/images.py +0 -0
  37. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/line.py +0 -0
  38. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/outlines.py +0 -0
  39. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/features/text.py +0 -0
  40. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/fonts/__init__.py +0 -0
  41. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/fonts/parser.py +0 -0
  42. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/images/__init__.py +0 -0
  43. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/images/info.py +0 -0
  44. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/__init__.py +0 -0
  45. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/char.py +0 -0
  46. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/colorspace.py +0 -0
  47. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/images.py +0 -0
  48. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/position.py +0 -0
  49. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/rawchar.py +0 -0
  50. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/text.py +0 -0
  51. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/miner/underline.py +0 -0
  52. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/parameter.py +0 -0
  53. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/patch/__init__.py +0 -0
  54. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/patch/ltchar.py +0 -0
  55. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/text/__init__.py +0 -0
  56. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/text/chars.py +0 -0
  57. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/text/data.py +0 -0
  58. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/text/superfast.py +0 -0
  59. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/text/wordbox.py +0 -0
  60. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker/utils.py +0 -0
  61. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker.egg-info/SOURCES.txt +0 -0
  62. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker.egg-info/dependency_links.txt +0 -0
  63. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker.egg-info/entry_points.txt +0 -0
  64. {rawmaker-2.40.3 → rawmaker-2.40.5}/rawmaker.egg-info/top_level.txt +0 -0
  65. {rawmaker-2.40.3 → rawmaker-2.40.5}/setup.cfg +0 -0
  66. {rawmaker-2.40.3 → rawmaker-2.40.5}/spacestation/__init__.py +0 -0
  67. {rawmaker-2.40.3 → rawmaker-2.40.5}/spacestation/cli.py +0 -0
  68. {rawmaker-2.40.3 → rawmaker-2.40.5}/spacestation/features/__init__.py +0 -0
  69. {rawmaker-2.40.3 → rawmaker-2.40.5}/spacestation/features/chardist.py +0 -0
  70. {rawmaker-2.40.3 → rawmaker-2.40.5}/spacestation/features/worddist.py +0 -0
  71. {rawmaker-2.40.3 → rawmaker-2.40.5}/spacestation/features/wspace.py +0 -0
  72. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_annotation.py +0 -0
  73. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_border.py +0 -0
  74. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_boxes.py +0 -0
  75. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_cli.py +0 -0
  76. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_layout_extraction.py +0 -0
  77. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_line.py +0 -0
  78. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_pdfminer.py +0 -0
  79. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_position.py +0 -0
  80. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_superfast.py +0 -0
  81. {rawmaker-2.40.3 → rawmaker-2.40.5}/tests/test_text.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rawmaker
3
- Version: 2.40.3
3
+ Version: 2.40.5
4
4
  Author-email: Helmut Konrad Schewe <helmutus@outlook.com>
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/anaticulae/rawmaker
@@ -12,19 +12,21 @@ Requires-Python: >=3.12
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
14
  Requires-Dist: pdfminer.six<20270000,>=20260107
15
- Requires-Dist: pillow<13.0.0,>=12.2.0
16
- Requires-Dist: camelot_py<2.0.0,>=1.0.9
17
- Requires-Dist: utilo<3.0.0,>=2.105.0
15
+ Requires-Dist: pillow<13.0.0,>=12.3.0
16
+ Requires-Dist: utilo<3.0.0,>=2.109.0
18
17
  Requires-Dist: configos<2.0.0,>=1.0.4
19
- Requires-Dist: iamraw<5.0.0,>=4.91.0
18
+ Requires-Dist: iamraw<5.0.0,>=4.91.7
20
19
  Requires-Dist: protoerror<4.0.0,>=3.20.2
21
20
  Requires-Dist: ughost<2.0.0,>=1.0.1
22
21
  Requires-Dist: pdflog<2.0.0,>=1.0.2
23
22
  Provides-Extra: dev
24
- Requires-Dist: hoverpower<2.0.0,>=1.1.0; extra == "dev"
25
- Requires-Dist: jamer<2.0.0,>=1.0.1; extra == "dev"
26
- Requires-Dist: utilotest<2.0.0,>=1.0.2; extra == "dev"
27
- Requires-Dist: gennex<2.0.0,>=1.0.1; extra == "dev"
23
+ Requires-Dist: hoverpower<2.0.0,>=1.5.1; extra == "dev"
24
+ Requires-Dist: jamer<2.0.0,>=1.0.2; extra == "dev"
25
+ Requires-Dist: utilotest<2.0.0,>=1.0.4; extra == "dev"
26
+ Requires-Dist: gennex<2.0.0,>=1.0.3; extra == "dev"
27
+ Requires-Dist: yamlfix<2.0.0,>=1.19.1; extra == "dev"
28
+ Provides-Extra: table
29
+ Requires-Dist: camelot_py<2.0.0,>=1.0.9; extra == "table"
28
30
  Dynamic: license-file
29
31
 
30
32
  # rawmaker - convert PDF to raw data
@@ -10,7 +10,6 @@
10
10
  import collections
11
11
  import concurrent
12
12
  import itertools
13
- import math
14
13
  import os
15
14
  import sys
16
15
 
@@ -99,10 +98,10 @@ def strategy(
99
98
  lines: int = 1,
100
99
  boxes: int = 1,
101
100
  ):
102
- boxes_flow = ranges(0.5, 1.0, boxes)
103
- char_margin = ranges(0.5, 20.0, chars)
104
- line_margin = ranges(0.01, 5.0, lines)
105
- word_margin = ranges(1.5, 5.0, words)
101
+ boxes_flow = utilo.ranged_exp(0.5, 1.0, boxes)
102
+ char_margin = utilo.ranged_exp(0.5, 20.0, chars)
103
+ line_margin = utilo.ranged_exp(0.01, 5.0, lines)
104
+ word_margin = utilo.ranged_exp(1.5, 5.0, words)
106
105
  result = []
107
106
  for char, word, box, line, in itertools.product(
108
107
  char_margin,
@@ -117,22 +116,3 @@ def strategy(
117
116
  'line_margin': line,
118
117
  })
119
118
  return result
120
-
121
-
122
- # TODO: REPLACE WITH utilo CODE
123
- def ranges(mini: float, maxi: float, steps: int = 15):
124
- """Compute parameter.
125
-
126
- >>> utilo.roundme(ranges(0.1, 100, steps=10))
127
- [0.1, 0.12, 0.18, 0.34, 0.76, 1.92, 5.06, 13.61, 36.84, 99.99]
128
- >>> utilo.roundme(ranges(0.1, 20, steps=5))
129
- [0.1, 0.73, 2.43, 7.06, 19.64]
130
- """
131
- func = math.exp
132
- maxed = func(steps - 1) / (maxi - mini)
133
- result = []
134
- for index in range(steps):
135
- value = mini + (math.exp(index) - 1) / maxed
136
- value = utilo.roundme(value, digits=5) # pylint:disable=R0204
137
- result.append(value)
138
- return result
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "rawmaker"
3
- version = "2.40.3"
3
+ version = "2.40.5"
4
4
  description = ""
5
5
  requires-python = ">=3.12"
6
6
  authors = [
@@ -8,11 +8,10 @@ authors = [
8
8
  ]
9
9
  dependencies = [
10
10
  "pdfminer.six>=20260107,<20270000",
11
- "pillow>=12.2.0,<13.0.0",
12
- "camelot_py>=1.0.9,<2.0.0",
13
- "utilo>=2.105.0,<3.0.0",
11
+ "pillow>=12.3.0,<13.0.0",
12
+ "utilo>=2.109.0,<3.0.0",
14
13
  "configos>=1.0.4,<2.0.0",
15
- "iamraw>=4.91.0,<5.0.0",
14
+ "iamraw>=4.91.7,<5.0.0",
16
15
  "protoerror>=3.20.2,<4.0.0",
17
16
  "ughost>=1.0.1,<2.0.0",
18
17
  "pdflog>=1.0.2,<2.0.0",
@@ -34,10 +33,14 @@ content-type = "text/markdown"
34
33
 
35
34
  [project.optional-dependencies]
36
35
  dev = [
37
- "hoverpower>=1.1.0,<2.0.0",
38
- "jamer>=1.0.1,<2.0.0",
39
- "utilotest>=1.0.2,<2.0.0",
40
- "gennex>=1.0.1,<2.0.0",
36
+ "hoverpower>=1.5.1,<2.0.0",
37
+ "jamer>=1.0.2,<2.0.0",
38
+ "utilotest>=1.0.4,<2.0.0",
39
+ "gennex>=1.0.3,<2.0.0",
40
+ "yamlfix>=1.19.1,<2.0.0",
41
+ ]
42
+ table = [
43
+ "camelot_py>=1.0.9,<2.0.0",
41
44
  ]
42
45
 
43
46
  [project.urls]
@@ -12,7 +12,6 @@ import os
12
12
  import sys
13
13
 
14
14
  import utilo
15
- import utilotest
16
15
 
17
16
  DESCRIPTION = """\
18
17
  Collect pdf files of defined folders and use them to run rawmaker.
@@ -60,7 +59,7 @@ def run(inpath: str, outpath: str, cores: int = 1):
60
59
  _, name = os.path.split(item)
61
60
  # use quotation marks to encapsulate file path white spaces
62
61
  item = f'"{item}"' if ' ' in str(item) else item
63
- name = utilotest.simple(name) # TODO: REPLACE WITH utilo CODE
62
+ name = utilo.simple(name)
64
63
  out = os.path.join(outpath, name)
65
64
  cmd = f'rawmaker -i {item} -o {out} -j4'
66
65
  cmds.append(cmd)
@@ -44,9 +44,8 @@ def read(path: str, password: str = None, verify: bool = True) -> PDFDocument:
44
44
  if verify:
45
45
  header = open(path, 'rb').read(5)
46
46
  if header != b'%PDF-':
47
- # TODO: MOVE TO def before() method after upgrading utilo
48
- utilo.error('invalid pdf header')
49
- sys.exit(1)
47
+ # TODO: MOVE TO def before() method after upgrading utilo ?
48
+ utilo.exitx('invalid pdf header')
50
49
  with open(path, 'rb') as fp:
51
50
  # Create a PDF parser object associated with the file object.
52
51
  parser = PDFParser(fp)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rawmaker
3
- Version: 2.40.3
3
+ Version: 2.40.5
4
4
  Author-email: Helmut Konrad Schewe <helmutus@outlook.com>
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/anaticulae/rawmaker
@@ -12,19 +12,21 @@ Requires-Python: >=3.12
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
14
  Requires-Dist: pdfminer.six<20270000,>=20260107
15
- Requires-Dist: pillow<13.0.0,>=12.2.0
16
- Requires-Dist: camelot_py<2.0.0,>=1.0.9
17
- Requires-Dist: utilo<3.0.0,>=2.105.0
15
+ Requires-Dist: pillow<13.0.0,>=12.3.0
16
+ Requires-Dist: utilo<3.0.0,>=2.109.0
18
17
  Requires-Dist: configos<2.0.0,>=1.0.4
19
- Requires-Dist: iamraw<5.0.0,>=4.91.0
18
+ Requires-Dist: iamraw<5.0.0,>=4.91.7
20
19
  Requires-Dist: protoerror<4.0.0,>=3.20.2
21
20
  Requires-Dist: ughost<2.0.0,>=1.0.1
22
21
  Requires-Dist: pdflog<2.0.0,>=1.0.2
23
22
  Provides-Extra: dev
24
- Requires-Dist: hoverpower<2.0.0,>=1.1.0; extra == "dev"
25
- Requires-Dist: jamer<2.0.0,>=1.0.1; extra == "dev"
26
- Requires-Dist: utilotest<2.0.0,>=1.0.2; extra == "dev"
27
- Requires-Dist: gennex<2.0.0,>=1.0.1; extra == "dev"
23
+ Requires-Dist: hoverpower<2.0.0,>=1.5.1; extra == "dev"
24
+ Requires-Dist: jamer<2.0.0,>=1.0.2; extra == "dev"
25
+ Requires-Dist: utilotest<2.0.0,>=1.0.4; extra == "dev"
26
+ Requires-Dist: gennex<2.0.0,>=1.0.3; extra == "dev"
27
+ Requires-Dist: yamlfix<2.0.0,>=1.19.1; extra == "dev"
28
+ Provides-Extra: table
29
+ Requires-Dist: camelot_py<2.0.0,>=1.0.9; extra == "table"
28
30
  Dynamic: license-file
29
31
 
30
32
  # rawmaker - convert PDF to raw data
@@ -0,0 +1,18 @@
1
+ pdfminer.six<20270000,>=20260107
2
+ pillow<13.0.0,>=12.3.0
3
+ utilo<3.0.0,>=2.109.0
4
+ configos<2.0.0,>=1.0.4
5
+ iamraw<5.0.0,>=4.91.7
6
+ protoerror<4.0.0,>=3.20.2
7
+ ughost<2.0.0,>=1.0.1
8
+ pdflog<2.0.0,>=1.0.2
9
+
10
+ [dev]
11
+ hoverpower<2.0.0,>=1.5.1
12
+ jamer<2.0.0,>=1.0.2
13
+ utilotest<2.0.0,>=1.0.4
14
+ gennex<2.0.0,>=1.0.3
15
+ yamlfix<2.0.0,>=1.19.1
16
+
17
+ [table]
18
+ camelot_py<2.0.0,>=1.0.9
@@ -88,9 +88,7 @@ def test_lines_master099c(td, mp):
88
88
  cmd = f'-i {hoverpower.MASTER099C_PDF} --pages=7,8,9,10,80,81,82 --line --horizontals'
89
89
  tests.run(cmd, mp=mp)
90
90
  lines = serializeraw.load_horizontals(td.tmpdir)
91
- boundings = []
92
- for page in lines:
93
- boundings.append((page.page, page.content[0].box[3]))
91
+ boundings = [(page.page, page.content[0].box[3]) for page in lines]
94
92
  # page, horizontal y1 bounding
95
93
  expected = [
96
94
  (7, 618.6),
@@ -27,8 +27,19 @@ def test_master_compare_vim(td, mp):
27
27
 
28
28
  golden = tests.resources.GOLDEN_VIM
29
29
  current = td.tmpdir
30
- diff = f'diff -rd --suppress-common-lines -y {golden} {current}'
30
+ # run yamlfix to compare to golden master correctly
31
+ utilo.run(f'yamlfix {current}', cwd=td.tmpdir)
31
32
 
33
+ if is_busybox():
34
+ diff = f'diff -ru {golden} {current}'
35
+ else:
36
+ diff = f'diff -rd --suppress-common-lines -y {golden} {current}'
32
37
  completed = utilo.run(diff)
38
+
33
39
  utilo.error(completed.stdout)
34
40
  assert completed.returncode == utilo.SUCCESS
41
+
42
+
43
+ def is_busybox() -> bool:
44
+ completed = utilo.run('diff --help')
45
+ return 'BusyBox' in completed.stderr
@@ -1,15 +0,0 @@
1
- pdfminer.six<20270000,>=20260107
2
- pillow<13.0.0,>=12.2.0
3
- camelot_py<2.0.0,>=1.0.9
4
- utilo<3.0.0,>=2.105.0
5
- configos<2.0.0,>=1.0.4
6
- iamraw<5.0.0,>=4.91.0
7
- protoerror<4.0.0,>=3.20.2
8
- ughost<2.0.0,>=1.0.1
9
- pdflog<2.0.0,>=1.0.2
10
-
11
- [dev]
12
- hoverpower<2.0.0,>=1.1.0
13
- jamer<2.0.0,>=1.0.1
14
- utilotest<2.0.0,>=1.0.2
15
- gennex<2.0.0,>=1.0.1
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes