Releases: OCR-D/core
Releases · OCR-D/core
v2.71.0
Changed:
- Rewrite
ocrd_utils.logging
, #1288- Handle only
''
as the root logger disableLogging
: Remove handlers from root and all configured loggers- Do not do any module-level modification of the log config
- Handle only
Fixed:
v2.70.0
Added:
ocrd network client workflow run
: Add--print-status
flag to periodically print the job status, #1277- Processing Server:
DELETE /mets_server_zombies
to kill any renegade METS servers, #1277 - No more zombie METS Server by properly shutting them down, #1284
OCRD_NETWORK_RABBITMQ_HEARBEAT
to allow overriding the heartbeat behavior of RabbitMQ, #1285
Changed:
- significantly more detailed logging for the METS Server and Processing Server, #1284
- Only import
ocrd_network
in src/ocrd/decorators/init.py once needed, #1289 - Automate release via GitHub Actions, #1290
Fixed:
v2.69.0
Fixed:
- tests: ensure
ocrd_utils.config
gets reset whenever changing it globally ocrd.cli.workspace
: consistently pass on--mets-server-url
and--backup
ocrd.cli.workspace
: makelist-page
work w/ METS Serverocrd.cli.validate "tasks"
: pass on--mets-server-url
lib.bash
: fixerrexit
handling- actually apply CLI
--log-filename
, and show in--help
- adapt to Pillow changes
ocrd workspace clone
: do pass on--file-grp
(for download filtering)OcrdMetsServer.add_file
: pass onforce
kwargWorkspace.reload_mets
: handle ClientSideOcrdMets as wellOcrdMets.get_physical_pages
: coverreturn_divs
w/ofor_fileIds
andfor_pageIds
disableLogging
: also re-instate root logger to Python defaultsOcrdExif
: handle multi-frame TIFFs gracefully inidentify
callout, #1276
Changed:
run_processor
: be robust ifocrd_tool
is missingsteps
PcGtsType.PageType.id
viamake_xml_id
: replace/
with_
ClientSideOcrdMets
: use same logger name prefix as METS ServerProcessor.zip_input_files
: when--page-id
yields empty list, just log instead of raise
Added:
OcrdPage
: newPageType.get_ReadingOrderGroups()
to retrieve recursive RO as dict- METS Server: export and delegate
physical_pages
- ocrd.cli.workspace
server
: add subcommandsreload
andsave
- processor CLI: delegate
--resolve-resource
, too OcrdConfig.reset_defaults
to reset config variables to their defaultsocrd_utils.scale_coordinates
for resizing images
v3.0.0b5
Fixed:
- tests: ensure
ocrd_utils.config
gets reset whenever changing it globally OcrdMetsServer.add_file
: pass onforce
kwargocrd.cli.workspace
: consistently pass on--mets-server-url
and--backup
ocrd.cli.validate "tasks"
: pass on--mets-server-url
ocrd.cli.bashlib "input-files"
: pass on--mets-server-url
lib.bash input-files
: pass on--mets-server-url
,--overwrite
, and parameterslib.bash
: fixerrexit
handlingocrd.cli.ocrd-tool "resolve-resource"
: forgot to actually print result
Changed:
- 🔥
Processor
/Workspace.add_file
: alwaysforce
ifOCRD_EXISTING_OUTPUT==OVERWRITE
- 🔥
Processor.verify
: revert 3.0.0b1 enforcing cardinality checks (stay backwards compatible) - 🔥
Processor.verify
: check output fileGrps, too
(must not exist unlessOCRD_EXISTING_OUTPUT=OVERWRITE|SKIP
or disjoint--page-id
range) - lib.bash
input-files
: do not try to validate tasks here (now covered byProcessor.verify()
) run_processor
: be robust ifocrd_tool
is missingsteps
PcGtsType.PageType.id
viamake_xml_id
: replace/
with_
Added:
OcrdPage
: newPageType.get_ReadingOrderGroups()
to retrieve recursive RO as dict- ocrd.cli.workspace
server
: add subcommandsreload
andsave
- METS Server: export and delegate
physical_pages
- processor CLI: delegate
--resolve-resource
, too Processor.process_page_file
/OcrdPageResultImage
: allowNone
besidesAlternativeImageType
v3.0.0b4
Fixed:
Processor.metadata_location
:src
workaround respects namespace packages, qurator-spk/eynollah#134Workspace.reload_mets
: handle ClientSideOcrdMets as well
v3.0.0b3
v3.0.0b2
Added:
Processor.max_workers
: class attribute to control per-page parallelism of this implementationProcessor.max_page_seconds
: class attribute to control per-page timeout of this implementationOCRD_MAX_PARALLEL_PAGES
for whether and how many workers should process pages in parallelOCRD_PROCESSING_PAGE_TIMEOUT
for whether and how long processors should wait for single pagesOCRD_MAX_MISSING_OUTPUTS
for maximum rate (fraction) of pages before makingOCRD_MISSING_OUTPUT=abort
Fixed:
disableLogging
: also re-instate root logger to Python defaults
v3.0.0b1
Fixed:
- actuall apply CLI
--log-filename
- adapt to Pillow changes
ocrd workspace clone
: do pass on--file-grp
(for download filtering)
Changed:
- 🔥
ocrd_utils
,ocrd_models
,ocrd_modelfactory
,ocrd_validators
andocrd_network
are not published
as separate packages anymore, everything is contained inocrd
- you should adapt yourrequirements.txt
accordingly - 🔥
Processor.parameter
now a property (attribute always exists, butNone
for non-processing contexts) - 🔥
Processor.parameter
is now afrozendict
(contents immutable) - 🔥
Processor.parameter
validate when(ever) set instead of (just) the constructor - setting
Processor.parameter
will also trigger (Processor.shutdown() and)
Processor.setup()` get_processor(... instance_caching=True)
: usemin(max_instances, OCRD_MAX_PROCESSOR_CACHE)
- 🔥
Processor.verify
always validates fileGrp cardinalities (because we haveocrd-tool.json
defaults now) - 🔥
OcrdMets.add_agent
without positional arguments ocrd bashlib input-files
now uses normal Processor decorator, and gets passed actualocrd-tool.json
and tool name
from bashlib'socrd__wrap
Added:
Processor.metadata_filename
: expose to make local path ofocrd-tool.json
in Python distribution reusable+overridableProcessor.metadata_location
: expose to make absolute path ofocrd-tool.json
reusable+overridableProcessor.metadata_rawdict
: expose to make in-memory contents ofocrd-tool.json
reusable+overridableProcessor.metadata
: expose to make validated and default-expanded contents ofocrd-tool.json
reusable+overridableProcessor.shutdown
: to shut down processor after processing, optionalProcessor.max_instances
: class attribute to control instance caching of this implementation
v2.68.0
Changed:
- ocrd_network: Use
ocrd-all-tool.json
bundled by core instead of download from website, #1257, #1260 - 🔥
ocrd network client processing processor
renamedocrd network client processing run
, #1269 ocrd network client processing run
supports blocking behavior with--block
by polling job status, #1265, #1269
Added:
ocrd network client workflow run
Run, optionally blocking, a workflow on the processing server, #1265, #1269ocrd network client workflow check-status
to get the status of a workflow job, #1269ocrd network client processing check-status
to get the status of a processing (processor) job, #1269ocrd network client discovery processors
to list the processors deployed in the processing server, #1269ocrd network client discovery processor
to get theocrd-tool.json
of a deployed processor, #1269ocrd network client processing check-log
to retrieve the log data for a processing job, #1269- Environment variables
OCRD_NETWORK_CLIENT_POLLING_SLEEP
andOCRD_NETWORK_CLIENT_POLLING_TIMEOUT
to control polling interval and timeout forocrd network client {processing processor,workflow run
, #1269 ocrd workspace clone
/Resolver.workspace_from_url
: withclobber_mets=False
, raise a FileExistsError for existing mets.xml on disk, #563, #1268ocrd workspace find --download
: print the the correct, up-to-date field, notNone
, #1202, #1266
Fixed:
- Sanitize
self.imageFilename
for thepcGtsId
to ensure it is a validxml:id
, #1271
v3.0.0a2
Changed:
- 🔥
OcrdPage
as proxy ofPcGtsType
instead of alias; also containsetree
andmapping
now - 🔥
Processor.zip_input_files
now can throwocrd.NonUniqueInputFile
andocrd.MissingInputFile
(the latter only ifOCRD_MISSING_INPUT=ABORT
) - 🔥
Processor.zip_input_files
does not by default userequire_first
anymore
(so the first file in any input file tuple per page can beNone
as well) - 🔥 no more
Workspace.overwrite_mode
, merely delegate toOCRD_EXISTING_OUTPUT=OVERWRITE
- 🎨 improve on docs result for
ocrd_utils.config
Added:
- 👉
OCRD_DOWNLOAD_INPUT
for whether input files should be downloaded before processing - 👉
OCRD_MISSING_INPUT
for how to handle missing input files (SKIP
orABORT
) - 👉
OCRD_MISSING_OUTPUT
for how to handle processing failures (SKIP
orABORT
orCOPY
)
the latter behaves like ocrd-dummy for the failed page(s) - 👉
OCRD_EXISTING_OUTPUT
for how to handle existing output files (SKIP
orABORT
orOVERWRITE
) - new CLI option
--debug
as short-hand forABORT
choices above Processor.logger
set up by constructor already (for re-use by processor implementors)default
-expand and validateocrd_tool.json
inProcessor
constructor, log invalidities- handle JSON
deprecation
inocrd_tool.json
by reporting warnings