ocrd 3.0.1__tar.gz → 3.0.3__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 (157) hide show
  1. {ocrd-3.0.1/src/ocrd.egg-info → ocrd-3.0.3}/PKG-INFO +2 -2
  2. ocrd-3.0.3/VERSION +1 -0
  3. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/decorators/ocrd_cli_options.py +5 -5
  4. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/base.py +10 -4
  5. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/helpers.py +9 -3
  6. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/workspace.py +0 -2
  7. {ocrd-3.0.1 → ocrd-3.0.3/src/ocrd.egg-info}/PKG-INFO +2 -2
  8. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/config.py +1 -1
  9. ocrd-3.0.1/VERSION +0 -1
  10. {ocrd-3.0.1 → ocrd-3.0.3}/LICENSE +0 -0
  11. {ocrd-3.0.1 → ocrd-3.0.3}/MANIFEST.in +0 -0
  12. {ocrd-3.0.1 → ocrd-3.0.3}/README.md +0 -0
  13. {ocrd-3.0.1 → ocrd-3.0.3}/README_bashlib.md +0 -0
  14. {ocrd-3.0.1 → ocrd-3.0.3}/README_ocrd.md +0 -0
  15. {ocrd-3.0.1 → ocrd-3.0.3}/README_ocrd_modelfactory.md +0 -0
  16. {ocrd-3.0.1 → ocrd-3.0.3}/README_ocrd_models.md +0 -0
  17. {ocrd-3.0.1 → ocrd-3.0.3}/README_ocrd_network.md +0 -0
  18. {ocrd-3.0.1 → ocrd-3.0.3}/README_ocrd_utils.md +0 -0
  19. {ocrd-3.0.1 → ocrd-3.0.3}/README_ocrd_validators.md +0 -0
  20. {ocrd-3.0.1 → ocrd-3.0.3}/pyproject.toml +0 -0
  21. {ocrd-3.0.1 → ocrd-3.0.3}/requirements.txt +0 -0
  22. {ocrd-3.0.1 → ocrd-3.0.3}/setup.cfg +0 -0
  23. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/__init__.py +0 -0
  24. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/__init__.py +0 -0
  25. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/bashlib.py +0 -0
  26. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/log.py +0 -0
  27. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/network.py +0 -0
  28. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/ocrd_tool.py +0 -0
  29. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/process.py +0 -0
  30. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/resmgr.py +0 -0
  31. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/validate.py +0 -0
  32. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/workspace.py +0 -0
  33. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/cli/zip.py +0 -0
  34. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/constants.py +0 -0
  35. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/decorators/__init__.py +0 -0
  36. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/decorators/loglevel_option.py +0 -0
  37. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/decorators/mets_find_options.py +0 -0
  38. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/decorators/parameter_option.py +0 -0
  39. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/lib.bash +0 -0
  40. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/mets_server.py +0 -0
  41. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/ocrd-all-tool.json +0 -0
  42. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/__init__.py +0 -0
  43. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/builtin/__init__.py +0 -0
  44. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/builtin/dummy/__init__.py +0 -0
  45. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/builtin/dummy/ocrd-tool.json +0 -0
  46. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/builtin/dummy_processor.py +0 -0
  47. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/builtin/filter_processor.py +0 -0
  48. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/processor/ocrd_page_result.py +0 -0
  49. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/resolver.py +0 -0
  50. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/resource_list.yml +0 -0
  51. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/resource_manager.py +0 -0
  52. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/task_sequence.py +0 -0
  53. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/workspace_backup.py +0 -0
  54. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd/workspace_bagger.py +0 -0
  55. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd.egg-info/SOURCES.txt +0 -0
  56. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd.egg-info/dependency_links.txt +0 -0
  57. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd.egg-info/entry_points.txt +0 -0
  58. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd.egg-info/requires.txt +0 -0
  59. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd.egg-info/top_level.txt +0 -0
  60. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_modelfactory/__init__.py +0 -0
  61. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/__init__.py +0 -0
  62. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/constants.py +0 -0
  63. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/mets-empty.xml +0 -0
  64. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/ocrd_agent.py +0 -0
  65. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/ocrd_exif.py +0 -0
  66. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/ocrd_file.py +0 -0
  67. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/ocrd_mets.py +0 -0
  68. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/ocrd_page.py +0 -0
  69. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/ocrd_page_generateds.py +0 -0
  70. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/ocrd_xml_base.py +0 -0
  71. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/report.py +0 -0
  72. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/utils.py +0 -0
  73. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_models/xpath_functions.py +0 -0
  74. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/__init__.py +0 -0
  75. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/cli/__init__.py +0 -0
  76. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/cli/client.py +1 -1
  77. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/cli/processing_server.py +0 -0
  78. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/cli/processing_worker.py +0 -0
  79. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/cli/processor_server.py +0 -0
  80. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/client.py +0 -0
  81. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/client_utils.py +0 -0
  82. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/constants.py +0 -0
  83. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/database.py +0 -0
  84. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/logging_utils.py +0 -0
  85. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/models/__init__.py +0 -0
  86. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/models/job.py +0 -0
  87. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/models/messages.py +0 -0
  88. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/models/ocrd_tool.py +0 -0
  89. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/models/workflow.py +0 -0
  90. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/models/workspace.py +0 -0
  91. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/param_validators.py +0 -0
  92. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/process_helpers.py +0 -0
  93. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/processing_server.py +0 -0
  94. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/processing_worker.py +0 -0
  95. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/processor_server.py +0 -0
  96. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/rabbitmq_utils/__init__.py +0 -0
  97. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/rabbitmq_utils/connector.py +0 -0
  98. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/rabbitmq_utils/constants.py +0 -0
  99. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/rabbitmq_utils/consumer.py +0 -0
  100. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/rabbitmq_utils/helpers.py +0 -0
  101. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/rabbitmq_utils/ocrd_messages.py +0 -0
  102. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/rabbitmq_utils/publisher.py +0 -0
  103. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/runtime_data/__init__.py +0 -0
  104. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/runtime_data/config_parser.py +0 -0
  105. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/runtime_data/connection_clients.py +0 -0
  106. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/runtime_data/deployer.py +0 -0
  107. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/runtime_data/hosts.py +0 -0
  108. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/runtime_data/network_agents.py +0 -0
  109. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/runtime_data/network_services.py +0 -0
  110. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/server_cache.py +0 -0
  111. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/server_utils.py +0 -0
  112. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/tcp_to_uds_mets_proxy.py +0 -0
  113. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_network/utils.py +0 -0
  114. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/__init__.py +0 -0
  115. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/constants.py +0 -0
  116. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/deprecate.py +0 -0
  117. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/image.py +0 -0
  118. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/introspect.py +0 -0
  119. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/logging.py +0 -0
  120. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/ocrd_logging.conf +0 -0
  121. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/os.py +0 -0
  122. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_utils/str.py +0 -0
  123. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/__init__.py +0 -0
  124. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/bagit-profile.yml +0 -0
  125. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/constants.py +0 -0
  126. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/json_validator.py +0 -0
  127. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/message_processing.schema.yml +0 -0
  128. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/message_result.schema.yml +0 -0
  129. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/mets.xsd +0 -0
  130. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/ocrd_network_message_validator.py +0 -0
  131. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/ocrd_tool.schema.yml +0 -0
  132. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/ocrd_tool_validator.py +0 -0
  133. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/ocrd_zip_validator.py +0 -0
  134. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/page.xsd +0 -0
  135. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/page_validator.py +0 -0
  136. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/parameter_validator.py +0 -0
  137. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/processing_server_config.schema.yml +0 -0
  138. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/processing_server_config_validator.py +0 -0
  139. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/resource_list_validator.py +0 -0
  140. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/workspace_validator.py +0 -0
  141. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/xlink.xsd +0 -0
  142. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/xsd_mets_validator.py +0 -0
  143. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/xsd_page_validator.py +0 -0
  144. {ocrd-3.0.1 → ocrd-3.0.3}/src/ocrd_validators/xsd_validator.py +0 -0
  145. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_decorators.py +0 -0
  146. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_logging.py +0 -0
  147. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_logging_conf.py +0 -0
  148. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_mets_server.py +0 -0
  149. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_model_factory.py +0 -0
  150. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_resolver.py +0 -0
  151. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_resolver_oai.py +0 -0
  152. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_resource_manager.py +0 -0
  153. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_task_sequence.py +0 -0
  154. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_utils.py +0 -0
  155. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_version.py +0 -0
  156. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_workspace.py +0 -0
  157. {ocrd-3.0.1 → ocrd-3.0.3}/tests/test_workspace_remove.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: ocrd
3
- Version: 3.0.1
3
+ Version: 3.0.3
4
4
  Summary: OCR-D framework
5
5
  Author-email: Konstantin Baierer <unixprog@gmail.com>
6
6
  License: Apache License 2.0
ocrd-3.0.3/VERSION ADDED
@@ -0,0 +1 @@
1
+ 3.0.3
@@ -13,16 +13,16 @@ from ocrd_network import (
13
13
 
14
14
  def ocrd_cli_options(f):
15
15
  """
16
- Implement MP CLI.
16
+ Implement Processor CLI.
17
17
 
18
18
  Usage::
19
19
 
20
- import ocrd_click_cli from ocrd.utils
20
+ from ocrd.decorators import ocrd_cli_options
21
21
 
22
22
  @click.command()
23
- @ocrd_click_cli
24
- def cli(mets_url):
25
- print(mets_url)
23
+ @ocrd_cli_options
24
+ def cli(**kwargs):
25
+ print(kwargs['mets_url'])
26
26
  """
27
27
  # XXX Note that the `--help` output is statically generate_processor_help
28
28
  params = [
@@ -518,7 +518,7 @@ class Processor():
518
518
 
519
519
  if max_workers > 1:
520
520
  executor_cls = ProcessPoolExecutor
521
- log_queue = mp.Queue()
521
+ log_queue = mp.get_context('fork').Queue()
522
522
  else:
523
523
  executor_cls = DummyExecutor
524
524
  log_queue = None
@@ -534,15 +534,20 @@ class Processor():
534
534
  # forward messages from log queue (in subprocesses) to all root handlers
535
535
  log_listener = logging.handlers.QueueListener(log_queue, *logging.root.handlers, respect_handler_level=True)
536
536
  log_listener.start()
537
+ tasks = None
537
538
  try:
538
539
  self._base_logger.debug("started executor %s with %d workers", str(executor), max_workers or 1)
539
540
  tasks = self.process_workspace_submit_tasks(executor, max_seconds)
540
541
  stats = self.process_workspace_handle_tasks(tasks)
541
542
  finally:
542
543
  executor.shutdown(kill_workers=True, wait=False)
544
+ self._base_logger.debug("stopped executor %s after %d tasks", str(executor), len(tasks) if tasks else -1)
543
545
  if max_workers > 1:
544
- log_listener.stop()
545
- del log_listener
546
+ # can cause deadlock:
547
+ #log_listener.stop()
548
+ # not much better:
549
+ #log_listener.enqueue_sentinel()
550
+ pass
546
551
 
547
552
  except NotImplementedError:
548
553
  # fall back to deprecated method
@@ -670,11 +675,12 @@ class Processor():
670
675
  nr_succeeded += 1
671
676
  # else skipped - already exists
672
677
  nr_errors = dict(nr_errors)
678
+ nr_all = nr_succeeded + nr_failed
673
679
  if nr_failed > 0:
674
- nr_all = nr_succeeded + nr_failed
675
680
  if config.OCRD_MAX_MISSING_OUTPUTS > 0 and nr_failed / nr_all > config.OCRD_MAX_MISSING_OUTPUTS:
676
681
  raise Exception(f"too many failures with {reason} output ({nr_failed} of {nr_all}, {str(nr_errors)})")
677
682
  self._base_logger.warning("%s %d of %d pages due to %s", reason, nr_failed, nr_all, str(nr_errors))
683
+ self._base_logger.debug("succeeded %d, missed %d of %d pages due to %s", nr_succeeded, nr_failed, nr_all, str(nr_errors))
678
684
  return nr_succeeded, nr_failed, nr_errors, len(tasks)
679
685
 
680
686
  def process_workspace_handle_page_task(self, page_id : str, input_files : List[Optional[OcrdFileType]], task : TFuture) -> Union[bool, Exception]:
@@ -56,13 +56,19 @@ def run_processor(
56
56
  - :py:attr:`output_file_grp`
57
57
  - :py:attr:`parameter` (after applying any :py:attr:`parameter_override` settings)
58
58
 
59
- Warning: Avoid setting the `instance_caching` flag to True. It may have unexpected side effects.
60
- This flag is used for an experimental feature we would like to adopt in future.
61
-
62
59
  Run the processor on the workspace (creating output files in the filesystem).
63
60
 
64
61
  Finally, write back the workspace (updating the METS in the filesystem).
65
62
 
63
+ If :py:attr:`instance_caching` is True, then processor instances (for the same set
64
+ of :py:attr:`parameter` values) will be cached internally. Thus, these objects (and
65
+ all their memory resources, like loaded models) get re-used instead of re-instantiated
66
+ when a match occurs - as long as the program is being run. They only get deleted (and
67
+ their resources freed) when as many as :py:data:`~ocrd_utils.config.OCRD_MAX_PROCESSOR_CACHE`
68
+ instances have already been cached while this particular parameter set was re-used
69
+ least frequently. (See :py:class:`~ocrd_network.ProcessingWorker` and
70
+ :py:class:`~ocrd_network.ProcessorServer` for use-cases.)
71
+
66
72
  Args:
67
73
  processorClass (object): Python class of the module processor.
68
74
  """
@@ -798,7 +798,6 @@ class Workspace():
798
798
  raise Exception('Found no AlternativeImage that satisfies all requirements ' +
799
799
  'filter="%s" in page "%s"' % (
800
800
  feature_filter, page_id))
801
- page_image.format = 'PNG' # workaround for tesserocr#194
802
801
  # ensure DPI will be set in image meta-data again
803
802
  if 'DPI' in page_coords:
804
803
  dpi = page_coords['DPI']
@@ -1060,7 +1059,6 @@ class Workspace():
1060
1059
  raise Exception('Found no AlternativeImage that satisfies all requirements ' +
1061
1060
  'filter="%s" in segment "%s"' % (
1062
1061
  feature_filter, segment.id))
1063
- segment_image.format = 'PNG' # workaround for tesserocr#194
1064
1062
  # ensure DPI will be set in image meta-data again
1065
1063
  if 'DPI' in segment_coords:
1066
1064
  dpi = segment_coords['DPI']
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: ocrd
3
- Version: 3.0.1
3
+ Version: 3.0.3
4
4
  Summary: OCR-D framework
5
5
  Author-email: Konstantin Baierer <unixprog@gmail.com>
6
6
  License: Apache License 2.0
@@ -142,7 +142,7 @@ config.add('OCRD_MAX_PROCESSOR_CACHE',
142
142
  default=(True, 128))
143
143
 
144
144
  config.add('OCRD_MAX_PARALLEL_PAGES',
145
- description="Maximum number of processor threads for page-parallel processing (within each Processor's selected page range, independent of the number of Processing Workers or Processor Servers). If set >1, then a METS Server must be used for METS synchronisation.",
145
+ description="Maximum number of processor workers for page-parallel processing (within each Processor's selected page range, independent of the number of Processing Workers or Processor Servers). If set >1, then a METS Server must be used for METS synchronisation.",
146
146
  parser=int,
147
147
  default=(True, 1))
148
148
 
ocrd-3.0.1/VERSION DELETED
@@ -1 +0,0 @@
1
- 3.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
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
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
@@ -110,8 +110,8 @@ def check_processing_job_status(address: Optional[str], processing_job_id: str):
110
110
  @click.option('-p', '--print-state', default=False, is_flag=True,
111
111
  help='If set, the client will print job states by each iteration.')
112
112
  def send_processing_job_request(
113
- address: Optional[str],
114
113
  processor_name: str,
114
+ address: Optional[str],
115
115
  mets: str,
116
116
  input_file_grp: str,
117
117
  output_file_grp: Optional[str],
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
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