Versioned according to Semantic Versioning.
Removed:
- Support for Python
<=3.7, #1207
2.63.3 - 2024-03-07
Added:
make uninstall-workaroundcompantion tomake install-workaround, #119
Fixed:
OcrdMets.add_file: fix finding existing el_pagediv, #1199
Fixed:
- Missed incrementing version
Fixed:
OcrdMetsbug that produced invalid caches, #1192, #1195, #1193
Fixed:
- Reduce logging level of spammy log statements to
DEBUGin workspace, #1181 - Clean up lxml code, #1188
Changed:
- 🔥
OcrdFile.local_filenamereturns/acceptsstrafter unpopular change toPathfrom #1079, #1182, #1167 WorkspaceValidator: more efficiency by doing all page checks in the same loop, #1071
Added:
OcrdMets.get_physical_pagesto search for/change/generate ranges for page-specificmets:divattributes beyond to@ID, #821, #1063
Added:
- Basic integration test for
ocrd_network, #1164 ocrd-tool.jsonforocrd-dummynow in repo root, for ocrd_all'smake ocrd-all-tool.json, #1168
Fixed:
- METS Server: UDS sockets are removed on process exit, #117
Changed:
- replace license-incompatible sparkline library with a simpler implementation, #1176
- remove all pkg_resources calls with modern alternatives, no more run-time setuptools dependency, #1174
Fixed:
- another regression to docker deployment (requirements.txt missing), #1173
Fixed:
- deps-cuda: add workaround for keras-team/tf-keras#62, #1169
- fix regression docker deployment, #1172
Changed:
- 🔥 simplify the project layout and distribution policy, #1166
- In the future there will be only one distribution
ocrd - The previous separate distributions of the
ocrd_utils,ocrd_models,ocrd_modelfactory,ocrd_validatorsandocrd_networkare all part ofocrdnow - Nothing needs to be changed in code using OCR-D/core, the package structure and API is the same as before
- Until the next major release, we will continue to provide distributions for
ocrd_utilsetc. that contain the same code asocrd - Using
ocrd_utilsetc. as distributions inrequirements.txtorinstall_requiresis now deprecated - Once we release v3.0.0, these distributions will be depublished
- In the future there will be only one distribution
Fixed:
make install-devworking withsetuptools>=64again, #1163
Fixed:
- Log level downgraded from DEBUG to INFO in logging.conf, #1161
- log OAI check as
DEBUGnotINFO, #1160
Fixed:
- Docker: copy
.gitduring build, sosetuptools_scmcan determine version number, #1159
Fixed:
ocrd workspace list-pagenow works in workspaces with non-page-specific files, #1148, #1151
Changed:
cli.workspace.WorkspaceCtxandResolver.resolve_mets_argumentsnow have defaults formets_server_url,mets_basenameandautomatic_backup, slub/mets-mods2tei#68, #1156- 🔥 switch to
pyproject.toml, derive version from git, separate build from install, #1065
Fixed:
- Chunking algorithm for
ocrd workspace list-pagenow handles edge cases properly, #1145 - Avoid deadlocks in
ocrd_networkif processing workers not deployed, #1125, #1142
Changed:
- Change web API paths to avoid any potential URL segment clashes, #1136, OCR-D/spec#250
GET /->GET /infoPOST /->POST /run/{job-id}->/job/{job-id}/{job-id}/log->/log/{job-id}
Fixed:
- WorkspaceBagger: do not overwrite files in case of filename conflict, #1129, #1137
- Update apidocs to include
ocrd_network, #1131
Added:
ocrd workspace update-pageto set attributes on themets:divof a page, #1133, #1134ocrd workspace list-pagenow has configurable output format and optional partitioning of the page list, #1140, #1141ocrd zip bag,ocrd workspace merge,ocrd workspace clonenow support whitelisting/blacklisting file groups, #356, #383, #506, #582, #1138, #1139- workflow endpoint supports storing and deduplicating workflows, #1143
Removed:
OcrdMets: remove Unused__exit__method,.#1130 #1132
Fixed:
- bashlib: regression introduced in v2.58.0 breaking non-mets-server calls, #1128
Fixed:
helpers.run_cli: Handle bothintandstrlog levels, #1121- bashlib: typo
ocrd_argv->ocrd__argv, #1122, #1123 processing workers: pass log level as string andHandle logging of bashlib workers separately, #1123 #1127initLoggingat the right time,ocrd workspace bulk-addnow supports-U/--mets-server-url, #1126- bashlib: Support
-Uas alias for--mets-server-url, #1126
Added:
- METS server:
POST /reloadto reload METS from disk, #1123, #1124
Fixed:
- bashlib: remove vestigial
--log-filenameoption from #1105, #1120
Fixed:
- Docker deployment process, no functional change
Fixed:
- running a processor as a worker no longer dumps
ocrd-tool.jsonand messed up logging, #1116
Changed:
- logging: With
ocrd_logging.conf(e.g. in Docker), log all messagesDEBUGand up and log toocrd.log, #1117
Changed:
- A separate logging dir tree structure for the modules (processing servers, processing workers, processor servers, mets servers, processing jobs). Configurable with env variable
OCRD_NETWORK_LOGS_ROOT_DIR, #1111- Processing job-level logging - each job is logged into a separate file with format
{job_id}.log - Processing job-level logging file paths are added to the Job models and preserved in the database.
- The
ocrd_networklogging is based on the format provided inocrd_utils
- Processing job-level logging - each job is logged into a separate file with format
- Support env variable
OCRD_NETWORK_SOCKETS_ROOT_DIRfor setting the root directory for METS server sockets, #1111 - An endpoint
/job/{id}/logfor getting the log file of a processing job of a processor, #1111
Fixed:
OcrdAgentModel:_typemust betype, pydantic/pydantic#6797, #1114
Changed:
ocrd workspace bulk-adddistinguishes betweenurlandlocal_filename, supporting both, #1086, #1079, #1113
Added:
/workflowendpoint that can handleocrd processworkflows and distribute jobs page-wise across workers, #1083, #1105, #1108, #1109
Changed:
- METS Server: Make sockets world-readable and -writable, #1098, #1099
- METS Server: Implement find_files support for
local_filenameandurl, #1100 - Logging: consistent logger names derived from
ocrd., #1101 - Logging: consistent logging across the packages, including
ocrd_network, #1101 ..page range operator: allow single-page ranges, #1106, #1107
Added:
- METS Server: providing concurrent additional access to the METS file for parallel processing, #966
- Web API: Cache jobs in the processing server with an optional callback once processed, #1069
- Web API: Lock pages output file groups of a workspace to prevent simultaneous non-additive access to workspaces, #1069
- Web API: Support job dependency for caching complete fully-deterministic workflows, #1069
- Web API: Processing server will start all ready requests, not just the first one, #1069
- Web API: Workers will create on demand, retry attempts configurable via
OCRD_NETWORK_WORKER_QUEUE_CONNECT_ATTEMPTS, #1093 ocrd_utils.configto collect all configuration based on environment variables in one place, #1081- Processor CLI: Warn if a given page ID cannot be found in METS, #1088, #1089
Changed:
- Processors now have
workerandserversubcommands, with separate --help, for starting processing worker/processor server, #1087 - Move
tf_disable_interactive_logs(to silence keras/tensorflow print statements) toocrd_utils.loggingand do not call on module-level, #1090, #1091 - 🔥 We do now properly distinguish between original and local-file FLocat, original URL will not be changed for downloads anymore, #323, #1079
- 🔥 logging has been streamlined to be better usable as a library, #1080
Fixed:
WorkspaceValidator: make the check for consistency ofpc:Page[@pcGtsId]andmets:file[@ID]optional with themets_fileid_page_pcgtsidskip flag, #1066ocrd resmgr download: usebasediras an arg and not a kwarg, #1078
Changed:
WorkspaceValidator: Download files temporarily/on-demand, #1066ocrd-* --versionnow prints only the version of the processor without noise or core version, #1068
Added
- Environment variables to control optional retries and timeouts for downloading files:
OCRD_DOWNLOAD_RETRIES: Number of times to retry failed attempts for downloads of workspace files. #1073OCRD_DOWNLOAD_TIMEOUT: Timeout in seconds for connecting or reading (comma-separated) when downloading. #1073
- Environment variables used throughout core are now documented in README and
ocrd --help, #1073 - Web API:
--create-queueoption to on-demand create RabbitMQ for processing workers, #1075 - Web API:
--queue-connec-attemptsto retry connection to RabbitMQ in case server is not yet running, #1075
Added:
make deps-cuda: Makefile target to set up a working CUDA installation, both for native and Dockerfile.cuda, #1055- Implementation of the Standalone Processor Server module, #1030
ocrd_utils.guess_media_typeto consistently try to determine media type from a file name, #1045
Changed:
- Refactoring the Network CLI, all network module CLI are in
ocrd_networknow, #1030 - The Processing Server uses
ocrd-all-tool.jsonfile, removing local processor install dependencies, #1030 - Overall improvement and refactoring of the
ocrd_networkpackage, #1030 - Optionally skip deployment of mongodb and rabbitmq to make external usage/management possible, #1048
page_from_filenow also accepts a (str) file path in addition toOcrdFile, #1045- packaging: install/uninstall in correct build order, use
python -m buildinstead ofpython setup.py sdist bdist_wheel, #1051
Removed:
- Obsolete travis CI configuration removed, #1056
- Support for end-of-life python versions 3.5 and 3.6, #1057
Fixed:
- Makefile
FIND_VERSIONmacro: usegrep -Einstead ofgrep -Pfor macos compatibility, #1060 ocrd resmgr: detect HTTP errors as such and don't try to continue if HTTP >= 400, #1062PageValidator: Ensure TextLine has coordinates when checking for Baseline containment, #1049
Changed:
core cudaDocker: CUDA base image working again, based onocrd/corenotnvidia/cudain a separateDockerfile.cuda, #1041core-cudaDocker: adopt #1008 (venv under /usr/local, as in ocrd_all, instead of dist-packages), #1041core-cudaDocker: use conda (micromamba) for CUDA toolkit, and nvidia-pyindex for CUDA libs – instead of nvidia/cuda base image, #1041- more robust workaround for shapely#1598, #1041
Removed:
- Revert #882 (fastentrypoints) as it enforces deps versions at runtime
- Drop
ocrd_utils.package_resourcesand usepkg_resources.*directly, #1041 ocrd resmgr: Drop redundant (processor-provided) entries in the centralresource_list.yml.
Added:
- 🔥
ocrd_network: Components related to OCR-D Web API, #974
Changed:
bashlib: support file input from multiple file groups, #1027, #1031
Fixed:
- Don't output default docstrings for bashlib processors, #1026
Changed:
- 🔥 (for now: also) publish Docker images to ghcr.io, not docker.io, #997
ocrd resmgr: eynollah models now provided by eynollah itself, qurator-spk/eynollah#91
Changed:
make docker-cuda: Support CUDA 11.3 not 11.2, #1020
Changed:
- 🔥 ocrd.run_processor / ocrd.processor.get_processor: rm unnecessary ocrd_tool kwarg #998, #1009
- chdir into workspace directory for both cached and uncached
get_processor, #972, 987 - 🔥 new CUDA base image 20.04, support CUDA runtime 11/12, not 10, #1014
Fixed:
make install: do not update opencv-python-headless or numpy for python<= 3.6, #1014
Changed:
resmgr:ocrd-typegroups-classifierresources now listed decentrally, #1011, OCR-D/ocrd_typegroups_classifier#15
Fixed:
- Docker: reintroduce
python3-pipbecause why not, #1004
Fixed:
- Docker: Use
pip3notpip, #986 make install: Speed up opencv built for (now unsupported) python<= 3.6, #986, OCR-D/ocrd_calamari#72
Added:
- CI/CD: GH action to deploy docker images to ghcr.io, #986
Fixed:
- Docker: install
python3-venv, do not installpython3-pip, #1003, #1004, OCR-D/ocrd_all#352
Fixed:
ocrd resmgr: handle namespaces packages gracefully for Python<=3.6, #917, #985ocrd resmgr: guess media type withfiletype.pyin addition toMIME_TO_EXT, #991OcrdMets: Insertmets:agentin a schema-compliant way, #976, #977ocrd_cli_wrap_processor: remove unnecessary ocrd_tool kwarg, #998, #999- Docker base image builds again, except CUDA, #986
Added:
ocrd resmgr: support Google Drive links, #993, #992
Changed:
- Use the new
importlib.resources.filesAPI, #995, #996 ocrd resmgr: resources forocrd_anybaseocrremoved from central list, provided by the project, #989, OCR-D/ocrd_anybaseocr#100
Changed:
WorkspaceValidator: anOcrdFilewithout a pageId is not an error, but a document-wide file, #485, #979WorkspaceBackupManager: add snapshot on init if enabled, #981- 🔥 end-of-life for python 3.6, test from 3.7 to 3.11, #956
- 🔥 update base image to Ubuntu 20.04, #956
Fixed:
bashlib: Handle empty list of input files, #978OcrdMets.find_files: don't override the@LOCTYPEof file candidates, #980ocrd resmgr: replace libmagic with simple lookup by suffix, #982, #984
Added:
helpers:get_cached_processorto get instances of a processor in preparation for #974, #972
Fixed:
ocrd resmgr: insert new entries first, so dedup works as expected, #971
Fixed:
ocrd resmgr download --overwritenow works properly for both directories and files, #690, #797ocrd resmgr:archiveresources can now also be ZIP files and reference files and folders in them, #967ocrd-dummy: can now be used to create PAGE-XML for images without copying, #803, #814
Added:
ocrd zip updatecommand to update checksums for an OCRD-ZIP after changing it, #363, #951
Removed:
ocrd zip bagdoes no longer support the long-broken--in-placeoption, #964, #363
Added:
OcrdMets.refresh_cachesto update caches after changes to XML outside ofOcrdMets, #957, #960
Fixed:
- Regressions from PR #875, #957, #958
- Missing import in
ocrd workspace merge, #956
Fixed:
- Symlinks in workspaces are properly resolved now, #802, #954
Added:
- Optional caching of access to METS, configured via environment variable
OCRD_METS_CACHING, #875 - CPU and memory profiling , configured via environment variable
OCRD_PROFILEandOCRD_PROFILE_FILE, #678
Changed:
ocrd workspace find: supports comma-separated regexes, ranges and literal values for--page-id, #955ocrd workspace find: ranges are generated with last number in string, #955
Fixed:
ocrd workspace list-installedshould not create spurious entries formoduledirfiles, #940OcrdResourceManager.downloaddoes not need to querysizevia HTTPContent-Lengthin most cases, #924, #939make install: Reinstall shapely to work around shapely/shapely#1598, #947
Changed:
ocrd workspace bulk-add: Generate file_id consistent with conventions from filename if no--file-idgiven, #943
Fixed:
- Downloading to
moduledirshould not create subdirectory, #934 - Reduce logging noise in Ocrd{ResourceManager,Mets,Workspace}, #933, #916
- Allow downloading resources explicitly to
modulelocation, #932
Changed:
- bashlib processors support
--profile{-file}and--dump-module-dir, #929
Fixed:
ocrd resmgr download '*'working again, #904, #908, #909- Resource manager respects
moduledircorrectly, #904 moduledirnow be able to handle namespace packages properly, #917- processing with
--overwritedoes not create duplicates any more, #861 - bashlib:
ocrd validate taskscall now supports non-standard METS name, #925
Added:
- Processors have a
--dump-module-dirto print their implementation-specific module directory to STDOUT, #904 ocrd workspace merge: support--forceto overwrite mets:file with clashing IDs, #926
Changed:
ocrd_utils.make_file_id: only fall back to output fileGrp + (page)ID instead of page counter, #861OcrdWorkspace.add_file: when ID already exists, remove (with overwrite) or fail instead of reusing- Workspace.merge: delegate
forceto eachadd_file
Fixed:
ocrd zip: Properly respectOcrd-Mets, #899ocrd workspace merge: missing arguments, #896ocrd resmgr download: Support dynamic discovery, #901
Added:
- Processors support profiling with
--profileand--profile-file, #878, bertsky#4
Removed:
ocrd zip: remove support for obsoleteOcrd-Manifestation-Depth, #902, OCR-D/spec#182
Added:
ocrd resmgr: Resources of processors can be described in theocrd-tool.json, #800
Fixed:
ocrd_utils.generate_range:maxsplitsshould be 1, not 2, #880- Typos in CHANGELOG, README and code comments, #890
Changed:
- Consistently use snake_case but continue to support CamelCase for kwargs and CLI options, #874, #862
- Update to spec to 3.19.0, introducing greater flexibility in describing parameters, #872, #848, OCR-D/spec#206
ocrd workspace merge: support mappingfile_idandpage_idin addition tofile_grp, #886, #888ocrd workspace merge: rebaseOcrdFile.urlto target workspace, #887, #888- Replace
resource_filenameet al from pkg_resources with faster alternatives, #881, #882
Changed:
- OCRD-ZIP: Drop
Ocrd-Manifestation-Depthand disallowfetch.txt, OCR-D/spec#182 - Parameters can now be described with most JSON-Schema constructs, OCR-D/spec#206, #848
Added:
ocrd lognow accepts-argument to read messages from STDIN, #852, #870
Changed:
ocrd_utils.safe_filename: replace with_instead of.and retain pre-existing_, #858, #859OcrdMets.find_files: allow pageId regex, precompile all regexes, #855, #856
Fixed:
ocrd resmgr list-available: handle processors not in resource list gracefully, #854, #865ocrd resmgr: do not try to parse strings as dates, #867, #869ocrd workspace bulk-add: use 1-based counter, #864
Fixed:
ocrd workspace remove-group: Pass on--recursivetoremove_file_group, #831, #832ocrd workspace bulk-add: handle unset file_id properly, #812, #846io.BufferedReaderfilename attribute should benamenotfilename, #838, #839
Changed:
OcrdWorkspace.image_from_*: support passing explicit AlternativeImage filename, #845
Removed:
make asset-serverfeature no longer used, #843python3-pipdependency is redundant, #813
Fixed:
ocrd zip bag:-Iis not required, #828, #829
Changed:
OcrdExif: fallback to PIL if ImageMagick'sidentifyis not available, #796, #676OcrdWorkspace.image_from_*: Avoid false warning when recropping, #820, #687
Changed:
make cuda-ubuntuinstalls all CUDA versions, OCR-D#704, OCR-D/ocrd_all#270ocrd resmgr: updated models for ocrd-anybaseocr-{tiseg,layout-analysis}, #819, OCR-D/ocrd_anybaseocr#89
Fixed:
- Error message erroneously referenced
mets:file/@IDinsteadmets:fileGrp/@USE, #823 - Consistently use kwargs/args in
OcrdWorkspace.save_image_file, #822 - Missing arg for log message in WorkspaceValidator, #811
Changed:
- Images processed by OCR-D can now be up to 40,000 by 40,000 pixels, #735, #768
OcrdExif: get pixel density metadata from ImageMagick'sidentify, not PIL, #676- Refactor parsing of
--mets/--mets-basename/--working-dirto reduce ambiguities, #693, #696 - bashlib: implify (i.e. remove) build process, #742, #785
ocrd workspace bulk-add: Make bulk-add more flexible and (hopefully) user-friendly, #641, #754, #769, #776
Fixed:
- PAGE validation: handle
pc:ImageRegionas well, #781 - bashlib: pass on parameters for task validation, #784
<processor> --list-resources: List only the relevant type of resource (directory or file), #750, #777
Changed:
ocrd_utils.make_file_id: combine with output fileGrp if input has pageId, but don't extract numbers, #744OcrdMets.add_file:mets:fileGrp/@USEmust be validxs:ID, #746
Added:
ocrd ocrd-tool: wraplist-resourcesandshow-resourcefromProcessor- bashlib
ocrd__parse_argv: add--list-resourcesand--show-resource, #751 ocrd bashlib: wrapinput-filesfromProcessorandmake_file_id- bashlib
ocrd__wrap: offerocrd__filesandocrd__input_file, #571
Added:
- Store parameterization of processors in METS for provenance, #747
ocrd workspace find --download: Add a--waitoption to wait between downloads, #745- bashlib: Check fileGrps when parsing CLI args, #743, OCR-D/ocrd_olena#76
- Dockerfile: Install
timeto have/usr/bin/timein the image, #748, OCR-D/ocrd_all#271
Fixed:
ocrd-dummy: Also set pcGtsId, v0.0.2, #739
Fixed:
- remove dependency on six, #732
ocrd workspace remove-group: handle files not in subdir gracefully, #734ocrd resmgr: fix "reference before assignment" issue #689, #733OcrdWorkspace.remove_file: handle empty regexes, #725
Changed:
ocrd workspace rename-groupwill now also rename filenames andmets:file/@ID, #736
Fixed:
resmgr: Correct URL for tesseract configs
Added:
ocrd_utils: functions for scaling images, #707
Changed:
OcrdFile: should only ever be instantiated in the context ofOcrdMets, #324, #714- Logging outputs to
STDERRnotSTDOUT, OCR-D/spec#183, #713, #667
Fixed:
ocrd workspace merge: handlefile_grpparameter, #715ocrd workspace merge: explicit --copy-files was --no-copy-files, #715ocrd resmgr: Fix tesseract URLs, #721
Fixed:
ocrd_page: fallback foridif none of the attributes are set, #683
Added:
ocrd_page: Universal attributeidto get eitherid,imageFilenameorpcGtsId, #683, #682ocrd_page: functionparseTreeandwith_etreekwarg toworkspace.page_from_*to access PAGE with etree API, #699, #313
Fixed:
- Version-independent URL of METS XSD, #695, #694
- Recrop if deskewed after cropping, #688
Changed:
workspace.image_from_pagewill return the AlternativeImage with most features matched, not the last one, #686crop_image: Ensures that masked areas do not influence the median forfill='background', #686
Added:
ocrd resmgr: modeldefaultfor eynollah, #668
Added:
ocrd resmgr: new modeldefault-2021-03-09for sbb_binarization, #681
Added:
configsresource forocrd-tesserocr-recognize, #680
Changed:
- Stop testing python 3.5, start testing python 3.9
ocrd resmgr: skip redundantcontent-lengthrequest ifsizeis known
Changed:
- The
--page-id/-goption now accepts value ranges with the..operator, #672
Added:
ocrd workspace mergeto merge two workspaces, #670, #673- Two experimental calmari models
c1_fraktur19-1andc1_latin-script-hist-3, #675
Fixed:
OcrdPage: never output parsing results to STDOUT, #665, #372- improved docstrings throughout (ht @bertsky), #664
resmgr --location cwdwill download to$PWD, not$PWD/ocrd-resources/<executable>, #671
Changed:
- resmgr: do not download on-demand when encountering unresolveable file parameters
Fixed:
- resmgr: bugs in
--location cwdresolving
Changed:
- resmgr/ocrd_calamari: disable pre-1.0 model
- resmgr/ocrd_calamri: Rename resource
qurator-gt4hist{,ocr}-1.0
Fixed:
mkdir -p $HOME/.config/ocrd
Added:
- Implement file resource algorithm from OCR-D/spec#169, #559
- New CLI
ocrd resmgrto download/browse processor resources, #559 Workspace.rename_file_groupwith CLIocrd workspace rename-groupto rename file groups, #646- PAGE API method
get_AllTextLines - resources for kraken
Changed:
ocrd workspace add: guess--mimetypeif not provided, #658ocrd workspace add: warn if--page-idnot provided, #659
Fixed:
run_cli: don't reference undefined vars in error handler, #651nameof resources mustn't contain slash/
Changed:
prune_ReadingOrder: also remove if RO contains only empty groups, #648- Don't restrict version range on
numpy, #642 run_cli: measure both wall time and CPU time, #647
Fixed:
TaskSequence.parsedo not hard-code class to instantiate, #649
Fixed:
ocrd workspace: workspace directory should always be absolute, #644
Fixed:
Workspace.find_files: Ignoremets:filew/omets:FLocat, #640- Re-crop after rotation to avoid coordinate inconsistencies (and get tighter crops), #640
- Handle missing
@orientationby using the next-upper-level@orientation, #640
Fixed:
- Use
chmod, notfchmodto support Windows, #636 ht @b2m - Do not capture processor output in
run_cli, #592, #638
Changed:
- Record version information in
pg:MetadataItem, #637 - New method
Processor.zip_input_filesto uniformly handle files from multiple input file groups, #635 - Auto-invalidate derived
pg:AlternativeImageimages when changing coords, #639
Changed:
- CUDA base image is now nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04, #629 ht @Witiko
- Convert 16-/32-bit images to 8-bit because PIL poorly supports the former, #627
Fixed:
- Permission of existing
mets.xmlshould not change, #403, #625 - Handle
pg:AlternativeImagewithoutcomments, #633
Fixed:
- default ocrd_logging.conf had a typo, #590, #628
- default ocrd_logging.conf mirrors builtin logging config, #630
--log-leveloverride mechanism works with logging config file, #626, #631
Changed:
- 🔥
OcrdMets.find_filesis now a generator, #614 - Print docstrings if available for
--help, #623 - parameter values can be arrays, OCR-D/spec#174
Fixed:
- As a workaround for tensorflow compatibility, require
numpy < 1.19.0, #620
Fixed:
ocrd workspace remove-group: don't fail on non-existing files, #618
Changed:
- media type <-> extension mapping for
text/plain, #612
Fixed:
ocrd_utils.imagehandles 16/32-bit images correctly, #606, python-pillow/Pillow#4925- OcrdPage: Most elements should be hashable, i.e. usable in sets, maps etc., #610
ocrd_utils.make_file_id: Ensure produced IDs are syntactically valid xs:ID, #616
Changed:
- Calling a processor w/o any arguments: show help and exit 1, #586, #615
- 🔥
Workspace.add_filerequires page_id kwarg (which can be None), #560 - Reorganized the loggign to be more consistent and well-behaved, #599
Fixed:
- Prune empty reading order when serializing, #602
Fixed:
- handle empty reading order in PAGE gracefully, #600
Fixed:
ocrd_utilson module-level, disable logging less than CRITICAL, call initLogging explicitly in CLI, #594
Fixed:
ocrd process: better-readable output on failure, #583ocrd logno longer produces "Logging errors" for multi-arg call, #588ocrd workspace remove-group: remove empty file groups on disk, #584, #569
Added:
METS_URLcan also be an OAI-PMH GetRecord request, ht @m3ssman, #581- Additional docker base image for Nvidia CUDA, ht @sepastian, #452
Changed:
- 🔥 Finish deprecations on workspace CLI begun in 2.11.0, #578
--mets-basenameis deprecated now, use--metsand--directory- Deprecated arguments are hidden in
--help - some internal function name changes
Fixed:
make_file_idID incrementation algorithm failed under certain conditions, #570
Changed:
- ValidationReport is now in ocrd_models, not ocrd_validators, #573
run_clinow returnsexitcode, stdout, stderr, not justexit_code, #574ocrd-dummywill create PAGE-XML for images on-the-fly, #574
Added:
- processors can
self.add_metadata(pcgts)to add a self-describingpg:MetadataItem, #574
Fixed:
- workspace: Possible source of "too many open files" closed, #564
Changed:
assert_file_grp_cardinalityaccepts a thirdmsgparameter
Changed:
Processor.input_filescan handle images mixed with PAGE-XML in a file group, OCR-D/spec#164, #554
Changed:
ocrd process also supports -P, #552
Fixed:
- Vulnerabilities in Pillow < 7.2.0, #550
Changed:
setOverrideLoglevelnow accepts asilentparameter, #548
Fixed:
- No more logging output interfering with
--dump-jsonet al. #540
Fixed:
- logging no longer interferes with
--dump-json/--help/--version, #540, #546
Fixed:
ocrd workspace validate: properly check whether AlternativeImage are available locally, #450, 543ocrd workspace validate: reduceINFOlog messages
Fixed:
ocrd_validators: adapt ocrd-tool schema to include OCR-D/spec#152
Fixed:
ocrd process: first task was ignored, #529, #542
Changed:
- Refactoring of
ocrd_utils.__init__into thematic submodules, #536 - validation of file groups downgraded to notice, allow PRE fileGrp/USE prefix, #541
- BaseProcessor: 🔥 show help if no METS was specified, OCR-D/spec#156, #438, #503
Fixed:
- bashlib: Don't set
-xinocrd__minversion, #535 - bashlib:
ocrd__minversionlogic was broken
Fixed:
- OcrdFile now has
__eq__implementation to allow for==/!=comparisons, #532 Workspace.image_from_page: Respect the order of feature annotation onpage:AlternativeImage, #525
Changed:
- processors:
-pis now repeatable and the referenced JSON may contain comments, #514, #533 ocrd workspace validate:METS_URLargument now optional as redundant to--directory/--mets-basename, #518ocrd workspace clone:WORKSPACE_DIRargument now optional as redundant to--directory, #518ocrd workspace init:DIRECTORYargument now optional as redundant to--directory, #518ocrd workpace *: Pass--mets-basenameon to resolver, #518
Added:
- processors:
-P/--parameter-overrideto override individual key-value pair of the parameter JSON, #533 - utils:
make_file_idto generate newmets:file/@IDfrom existing OcrdFiles, #530 - utils:
assert_file_grp_cardinalityto assert the correct number of comma-separated fileGrps were passed, #530
Fixed:
- Blacklist PIL versions with PNG issues, #527
ocrd workspace validate: Allow skippingpage_xsdandmets_xsd, #531- Fix import of
xlinkXSD inmetsXSD, #531
Added:
bashlib: support --overwrite flag, #522
Fixed:
- Regression in
ocrd workspace addthat prevented files from being copied, #519
Fixed:
- bashlib: Typo, #516
Changed:
- bashlib: Make
input-file-grpandoutput-file-grpmandatory, #512 - bashlib: Add a function
ocrd__minversionthat will check whetherocrd --versionis new enough for the processor., #512
Fixed:
- Re-introduce
ocrd__raise, #511 - Move XSD into root package of
ocrd_validators, #513
Fixed:
--help: Improve formatting of parameters, document--overwrite, ht @bersky
Changed:
Workspace.remove_file: Optionalpage_recursiveparameter to remove images linked in PAGE as well, #434, #471Workspace.remove_file: Optionalpage_same_gropupparameter to remove only those images linked in PAGE that are in the same group as the PAGE-XMLWorkspace.remove_file_gropup: The samepage_recursiveandpage_same_gropupparameters asWorkspace.remove_fileWorkspaceValidator.check_file_grpnow accepts apage_idparameter and will not raise an error if an existing output file group is targeted but for pages that aren't in that group, #471ocrd_cli_wrap_processor: Takepage_idinto account when doingWorkspaceValidator.check_file_grprun_cliaccepts anoverwriteparameter to pass on to processor calls, #471blocked by OCR-D/spec#121Task.validate: set implicit input/output groups from ocrd-tool.json, #471ocrd process: support --overwrite and pass on to processor calls, #471TaskSequencec.validate_tasks: Check output file groups are not in METS unless overwrite for every task, ht @berskyocrd workspace add/ocrd workspace bulk-addsupport--ignore
Added:
- Workspace: Optional
overwrite_modethat setsforcefor all operations OcrdPage:get_AllAlternativeImagePathsto list allpc:AlternativeImage/@filenamereferenced in a PcGts, #434, #471ocrd workspace bulk-addto add many files at once to a workspace, #428OcrdMets.add_file:ignoreparameter to optionally disable looking for existing files, #428
Changed:
OcrdMets.add_filenow validates file ID syntax, #447
Added:
ocrd log, CLI to OCR-D's logging mechanism, #472- XML Schema validation of PAGE-XML and METS, #470
Fixed:
- workspace.remove_file: fix for list-valued results, #507
Changed:
- workspace prune-files CLI: support filtering (like workspace find), #507
- workspace CLI: update help strings (documenting regex support), #507
Changed:
- bashlib: check bash version to be >= 4.4, #445, OCR-D/ocrd_olena#30
ocrd workspace addsupports-C/--check-file-existsto validate thatFNAMEis an existing local file, #495OcrdFileconstructor acceptsIDparametermodel_factory.page_from_imagenow sets the@pcGtsIdattribute tot the file's@ID, #378WorkspaceValidator: checkpc:PcGts/@pcGtsId==mets:file/@ID, #378OcrdFileconstructor: removed long-obsoleteinstanceparameterOcrdFileconstructor: acceptspageIdparameter- METS: reorder elements according to schema in empty METS, #487
Changed:
OcrdMets.remove_filenow supports all the options ofOcrdMets.find_files, #497, #458OcrdMets.remove_file_groupnow supports theUSEparam being a regex,, #497, #458
Added:
OcrdMets.remove_one_file: remove a singleOcrdFile, either directly or by ID, #497, #458
Added:
ocrd-dummy, a minimal processor that copies input to output, #468- OcrdPage:
get_AllRegions: retrieve all regions, sorted by document or reading order, #479 - OcrdPage:
sort_AllIndexed: sort all children by@indexin-place - OcrdPage:
clear_AllIndexed: clear all@indexchildren - OcrdPage:
extend_AllIndexed: Add elements with incrementing@index - OcrdPage: Replace empty reading order groups with equivalent
RegionRefon export - OcrdPage:
get_UnorderedGroupChildren: get reading order elements of anUnorderedGroup
Changed:
- OcrdPage:
get_AllIndexed: allow filtering by child type - OcrdPage:
get_AllIndexed: index_sort parameter to enable/disable sorting
Fixed:
ocrd workspace find: UseOcrdMets.get_physical_pagesmethod, fix #491
Changed:
- 🔥
Workspace.image_from_pageno longer treatsPrintSpaceas functionally equivalent toBorder, #490 OcrdMets.get_physical_pagesmethod companion toOcrdMets.physical_pagesproperty, #484- OcrdMets/ocrd workspace find: Search for multiple pages by fileid, ht @bertsky, #463, #484
- PAGE validation: respect reading order in consistency checks, #442
Added:
- OcrdPage: new method
get_AllIndexedfor OrderedGroup and OrderedGroupIndexed that lists their children, sorted by index, #478
Changed:
- Improved log message for profiling processors, #477
Fixed:
- Search for
--page-idnow orders of magnitutde faster, ht @bertsky, #481 - Not all generateDS types were exported by ocrd_page, now they are, #480
Fixed:
- image files no longer cached in workspace, #446, #448
Added
- Many mets:file search fields support regex now, #458, #448
Fixed:
- OcrdPage: hacks to make XML namespace output consistent, #474
Fixed:
- logging: format is spec-conformant again, #466
Added:
- ocrd_page: generateDS-generated code has
__hash__method now, #443
Fixed:
- logging: disable propagation for loggers with handler, #463
Changed:
- Logging configuration via configuration file, not script, #460 (HT @M3ssman @bertsky)
Added:
- Execution of processors is tracked with logger 'orcd.process.profile', #461
Fixed:
- #437 broke simple types in PAGE model, (really) revert 3a0a3a8, #451
Fixed:
- bashlib: ocrd-tool.json-related errors no longer lead to silent exit, #456
- #437 broke simple types in PAGE model, revert 3a0a3a8, #451
Fixed:
- JSON strings longer than OS-allowed filename size crash fixed, #444
Changed:
- Updated PAGE bindings generated using generateDS, #437
Fixed:
- concatenation of PAGE elements was based on
@indexstarting with1, #430 - CLI:
--helpshould work for processors w/oinput_file_grp, #440 - CLI:
--versionmore robust, #433
Changed:
- processor
--helplists parameter enum values if available, #427 - 🔥
workspace.save_image_filetakesmimetypeinstead offormat, #441
Changed:
- More expressive coordination validation, #418
ocrd workspace initshortcut forocrd workspace init ., #419ocrd workspace validateshortcut forocrd workspace validate mets.xml, #419ocrd workspace clone <METS_URL>shortcut forocrd workspace <METS_URL> ., #419- workspace validation: check of dimensions in image and PAGE only with
--download, #423 - behavior of
clobber_mets=Falsechanged to silently skip re-downloading METS instead of making a fuss, #425
Fixed:
- regression from #419 for
ocrd workspace validate - regression from #384 for task sequence validation, #424
Changed:
- layout of --help, #411
- OcrdMets: Removing the last file for a physical page will remove the physical page
Fixed:
mets_basenamewas not respected inocrd workspace init, #415, #417- typos, #414
Added:
- OcrdMets.remove_physical_page to remove
structMap[@TYPE="physical"]entries ocrd validateCLI to validate task groups, PAGE XML and processor parameters, #245, #384
Added:
- Validation of input/output file groups before running a processor/task sequence, #392
- Improved
--helpfor both python and bashlib processors, #402, #408
Fixed:
- bashlib: Calling bashlib processor w/o parameters, #381, #400
- bashlib: syntax error, regression from 2d89c22ae3. #410
Fixed:
- OcrdExif: PNG metadata extraction was broken, #395, #396
- Remove the trivial and error-prone image caching feature in resolver, #399
- When creating files with workspace.add_file, single-component file paths (i.e. just the basename of a file) were treated as directories, #404
- When downloading files to a workspace, check first whether those files to be added already exist on disk and are within the workspace directory., #404
Fixed:
- PIL.Image.open'ed files weren't closed, #390
- resolver: if mets_url is relative path, resolve before anything else, #319, #397
- Resolver.workspace_from_url: Create dst_dir before resolve for py
<=3.5, #330, #393 - fix help string for -m/--mets, fix #263, #391
Changed:
- downgrade filegrp syntax errors to warnings, #364, #389
Changed:
- bagit-profile matches changes from spec v3.4.2 (metadata dir)
Changed:
- have save_mets use UTF-8 encoding for byte-serialization (no entities), #388
Fixed:
- regression from #374, #387
Added:
- PAGE validator: coordinate self-validity and mutual consistency, #374
Fixed:
- Add more related mime types and fix image/jpeg, #382
Added:
- Workspace validation will check cardinality of images per file is 1, #243, OCR-D/spec#132
Changed:
- bashlib will no longer warn about "non-conformant" file group names, #365
- Invalid
file:/URL will now raise exceptions, #373 - image_from_*: increase tolerance for size mismatch after rotation to 2px, #371
Changed:
ocrd process: Validate parameters when validating a task- Dockerfile: Revert to Ubuntu 18.04 for LTS compatibility, #344
- Parameter validation: Raise exception for unknown parameters
ocrd ocrd-tool validate: Raise exception for unknown keys in JSON
Fixed:
- METS
CREATEDATEdate format now ISO8601, #360 ocrd workspace findallow outputting file group, #359- processor decorator:
--versionshould succeed independent of parameters, #358
Changed:
ocrd processuses the ocrd-tool.json of the tools to check whether output file group necessary, #296- Dockerfile: Revert to Ubuntu 18.04 for LTS compatibility, #344
- pixel density warnings downgraded further to "notice", #361
Changed:
- image_from_page etc: allow filling with background or transparency
- 🔥 API changes, #311, #327
- Dockerfile: Omit
ENTRYPOINT, OCR-D/spec#130, #340 - Relax pixel density validation errors to warnings, OCR-D/spec#129, #339
Fixed:
- Add
dimensionto workspace validation skip list, #329 - Update ocrd-tool.json schema to spec 3.3.0 (no output_file_grp, no syntax restriction on content-type)
- PAGE XML output references xsi:schemaLocation, #331
- Update Pillow to 6.2.0
Changed:
ocrd process: task validation takes processor's ocrd-tool into account, #296
- Workspace validation: Validate that files mentioned in pc:Page/@imageFilename exist in METS and on FS, #309
ocrd ocrd-tool parse-paramshas the string-or-filepath logic for -p/--parameter as for the CLI
- image_from_page etc: allow filtering by feature (@comments), #294
Changed:
-m/--metsis not required anymore, #301ocrd workspace prune-files: Throw on error removing non-existent file-p/--parameterargument accepts raw JSON as well now, #239
Fixed:
- OcrdFile: Default fileGrp to
TEMP - OcrdFile: Accept url constructor arg
- Workspace: Simplify file download code, add extensions to files
- Processor:
chdirto workspace directory on init so relative files resolve properly - typos in docstrings
- README: 'module' -> 'package'
- workspace.image_from_page etc: logic with rotation/angle
- Adapted test suite to OCR-D/assets now with file extensions
Added:
- utils:
MIME_TO_EXTto map mime types to preferred extension - Validation of imageHeight/imageWidth in PAGE vs. actual image height/width, #229
Fixed:
- Require
Pillow == 5.4.1throughout
Added:
- many utility methods for image manipulation and coordinate handling, #268, OCR-D/ocrd_tesserocr#49
bbox_from_pointsbbox_from_xywhbbox_from_polygoncoordinates_for_segmentcoordinates_of_segmentcrop_imagemembernameimage_from_polygonpoints_from_bboxpoints_from_polygonpoints_from_xywhpolygon_from_bboxpolygon_from_x0y0x1y1polygon_from_xywhpolygon_maskrotate_coordinatesxywh_from_bbox
- Spec-conformant handling of AlternativeImage, OCR-D/spec#116, OCR-D/ocrd_tesserocr#33, #284
Changed:
- workspace bagger will create files with extension
save_metsis atomic now, #278, #285
Fixed:
- regression in namespace handling of PAGE output, #277
Fixed:
- METS is serialized as Unicode instead of character entities, #279
Added:
ocrd workspace removeto remove files, #275, #245ocrd workspace remove-groupto remove file groups, #275, #245ocrd workspace prune-files
Fixed:
- Regression with ocrd_page data types, #269
- Segfault issue with Pillow >= 6.0.0, #270
Changed:
- Improve pixel density logic in OcrdExif, #256, #37, OCR-D/ocrd_tesserocr#54
- 🔥 stop supporting python
<= 3.4 - Support only 2019-07-15 PAGE version
Fixed:
- Handle TIFF ResolutionUnit not being set #250
- bashlib:
--mets-fileshould be--mets
Changed:
- missing required parameters should raise exception, fix #244 #247
Changed:
- export additional region types from generated code, #241
Added:
points_from_y0x0y1x1for inverted x/y pairs
Added:
ocrd workspace list-pageto list all page IDs
Changed:
- Extended page with TextStyle for Page, , PRImA-Research-Lab/PAGE-XML#8
ocrd workspace set-idcase in argument error- fix DeprecationWarning for PyYAML 5.1+
- use headless opencv
First beta of 1.0.0
Changed:
- 🔥 Drop Python2 support
- 🔥 Refactored project into 5 modules with little dependencies each
- Implement 3.2.0 of the spec
Removed:
- 🔥 Move factory methods from OcrdPage and OcrdExif to new module
ocrd.model_factory - Factor out XML constants to
ocrd.constants.xml - 🔥 BaseProcessor.add_output_file removed
Added:
- workspace validator: make url tests (java, non-http) checks skippable
Fixed:
resolver: fall back to "mets.xml" as basename if not provided
Added:
- PageValidator: Check consistency of PAGE according to spec 3.0.0, #223
Changed:
- 🔥 Change validators to use a single static
validatemethod where applicable, #224
Changed:
- 🔥 Use mets:structMap[@TYPE="PHYSICAL"] instead of GROUPID to group by page, #221, #222, OCR-D/spec#81
- 🔥 Rename group_id -> page_id, throughout, OCR-D/spec#101
- 🔥 CLI: Rename --group-id -> --page-id (
-g)
Fixed:
ocrd workspace clonefixed to have the pre-0.13.1 behavior- Missing metsHdr made adding agents fail, #218
Changed:
- various fixes to workspace and OCRD-ZIP validation, #217
Fixed:
- Relative files in workspace were resolved to target, not source dir of METS, #215
Changed:
- Adapt bagit profile to spec v2.6.2: allow fetch.txt
- Adapt bagit profile to spec v2.6.3: Tag-Files-Allowed
Removed:
- Code related to generating Open API / Swagger definitions, #210
Changed:
- Depend on pillow >= 5.3.0 to mitigate python-pillow/Pillow#2926
Added:
- backup functionality for
ocrd workspace, #204
Changed:
ocrd processinterface change, #205
Fixed:
- Grayscale images can be handled by workspace correctly now, #211
Added:
- OCRD-ZIP implementation based on OCR-D/spec#70, #207
- CLI:
ocrd zipto bag, spill and validate OCRD-ZIP
Fixed:
- Adapted tests to work with bagit-based structure, OCR-D/assets#18
- Read
VERSIONconstant from setup.py, #209
Fixed:
- CLI:
ocrd process, #199
Changed:
- Implement changes from spec v2.5.0: ocrd-tool must have in/output groups
Fixed:
KeyErrorbecause ocrd_tool not saved on processor instance, #192- another
KeyErrorbecausepnginfoisn't set for all PNG by exiftool, #194 - support 1-bit bitonal images, #196
Changed:
- Calling
workspace.save_mets()will now save processor information in the header, #147, #191
Changed:
- Update ocrd-tool schema to spec v2.4.0
Fixed:
- Calls to
click.argumenthad too many arguments, #186
Changed:
- Logger setup according to v2.3.0 of the spec, #185
Removed:
- remove
workspace_from_folder, #180
Changed:
- Creating METS from scratch will set creator agent and creation date, #147
Fixed:
- Schema regression in 0.8.3 (description)
Changed:
- Make logging logic spec-compliant according to #173
Removed:
prefer_symlinkmechanism, #179
Fixed:
- Handle missing parameters in ocrd-tool.json like empty array #160
- cli:
ocrd workspace validate#175
Removed:
merge_ocr_txt.pyscript to be reborn as its own project, #170
Fixed:
- file://-URL will not be "downloaded" if already present, #165
Changed:
- Logging can be configured with a file
ocrd_logging.pyin either $PWD, $HOME or /etc, #164 Processor.add_output_filedeprecated, #166
Fixed:
- bashlib: invalid parsers caused cryptic error, #161
Fixed:
- Sort coordinates clockwise, #159, OCR-D/assets#11
Changed:
- Missing
descriptionfor parameters in schema, #155
Fixed
- Regression in XML pretty printing, #152
Changed:
- Remove dependency on
xmllintcommand line tool, #72, #151 - Remove dependency on
exiftool, #71, #150
Changed:
- Behavior of workspace generation from URL changes (#149)
- when cloning from a
file://URL and no directory is given do NOT create a temporary directory but reuse the existing directory - When not providing
mets_basename, assume the last URL path segment to be the METS basename instead of the fixed stringmets.xml
- when cloning from a
- incorporate changes to ocrd_tool schema from spec/v2.2.1
Changed:
- Harmonized URL handling according to https://ocr-d.github.io/cli#urlfile-convention / spec v2.2.0
Fixed:
- EXIF supports JFIF metadata, #141
- typo: repository -> workspace
Changed:
- sh wrapper: set
working_diralways, default to$PWD - Drop all caching, #132, #143, #126, #100, #92, #45, #85
Added:
- CLI:
--forceoption forworkspace addto replace existing ID, #134
Fixes:
- CLI:
-konworkspace findfor non-existent fields, #133 - CLI: Persist downloads in METS, #136
- CLI:
workspace find --downloadwill download to subdir of fileGrp, #137
Added:
OcrdFilehas getterfileGrpfor theUSEattribute of parentmets:fileGrp, #139
Fixed:
- bash 4.3 compat fixes, #131
ocrd workspace finddefault was wrong, #130
Added:
- CLI:
-konworkspace findrepeatable
Changed:
- Simplified bashlib
Changed:
- CLI: rename
workspace create->workspace initand align with clone syntax
Changed:
- Caching is disabled by default
Added:
- CLI:
ocrd ocrd-tool versionto show version - API:
OcrdMetsgetters/setters forunique_identifier - CLI:
ocrd workspace set-id MODS_IDENTIFIER_PURLto set mods:identifier - CLI:
ocrd workspace get-idto get mods:identifier - CLI:
ocrd workspace clonesyntax changed - CLI:
ocrd workspace clone/findsupport downloading files - CLI:
ocrd workspace find -Lfor local files - CLI:
ocrd workspace find -i IDto search by ID
Fixed:
- CLI:
cord ocrd-tool tool parse-paramsvalidate as well as merges with default - Parameter validation: Check whether parameter is
required: true
Added
- CLI support
--version
Fixed:
- CLI: validate of ocrd-tool.json didn't parse JSON, #115
Changed:
mets_file_idin utils is nowconcat_paddedand more flexible
Added
- find_files supports
ID
Changed
- Adding a file with an existing
IDwill raise an exception, #110
Fixed
- Wrapped tools support
-J/--dump-json GROUPIDwas not passed when adding files
Removed
--output-mets, spec v2.0.0
Added
- Bash library
- CLI command
ocrd-tool - CLI command
workspace find - CLI command
workspace list-group - CLI command
workspace create - CLI
workspaceflag --no-cache - bash library to build wrappers
- CLI:
--versionglobal flag Changed - Downloading a file will set the URL in the METS Fixed
- run_processor will save_mets after process
Fixed
GTis a valid category for metsfileGrp@USE
Changed:
- Adapted to spec v1.2.0
Fixed:
- Adapted to spec v1.1.5
- Ensure python 2.7 backwards compatibility
Changed:
- ocrd_tool must be passed to
Processorconstructor
Added:
- points_from_x0y0x1y1 util
Fixed:
- EXIF tags for PNG
Added
- CLI:
ocrd workspace {add,clone,pack,unpack,validate}, #75
Changed:
- Use 2018 PAGE namespace http://schema.primaresearch.org/PAGE/gts/pagecontent/2018-07-15, PRImA-Research-Lab/PAGE-XML#4
Changed:
- ocrd_page API based on XSD
- rename/fix coordinate code
Changed
- Adapted schemas to v1.1.1 of OCR-D/spec
Changed
- Support parameters in run_processor
Changed
- Adapted schemas to v1.1.0 of OCR-D/spec
Changed
- Adapted click wrapper in decorators to v1.0.0 of OCR-D/spec
Fixed
- setup.py install_requires mirrors requirements.txt
Initial Release
master [2.63.2]: ../../compare/v2.63.2..v2.63.1 [2.63.1]: ../../compare/v2.63.1..v2.63.0 [2.63.0]: ../../compare/v2.63.0..v2.62.0 [2.62.0]: ../../compare/v2.62.0..v2.61.2 [2.61.2]: ../../compare/v2.61.2..v2.61.1 [2.61.1]: ../../compare/v2.61.1..v2.61.1 [2.61.0]: ../../compare/v2.61.0..v2.60.3 [2.60.3]: ../../compare/v2.60.3..v2.60.2 [2.60.2]: ../../compare/v2.60.2..v2.60.1 [2.60.1]: ../../compare/v2.60.1..v2.60.0 [2.60.0]: ../../compare/v2.60.0..v2.59.1 [2.59.1]: ../../compare/v2.59.1..v2.59.0 [2.59.0]: ../../compare/v2.59.0..v2.58.1 [2.58.0]: ../../compare/v2.58.1..v2.58.0 [2.58.0]: ../../compare/v2.58.0..v2.57.2 [2.57.2]: ../../compare/v2.57.2..v2.57.1 [2.57.1]: ../../compare/v2.57.1..v2.57.0 [2.57.0]: ../../compare/v2.57.0..v2.56.0 [2.56.0]: ../../compare/v2.56.0..v2.55.2 [2.55.2]: ../../compare/v2.55.2..v2.55.1 [2.55.1]: ../../compare/v2.55.1..v2.55.0 [2.55.0]: ../../compare/v2.55.0..v2.54.0 [2.54.0]: ../../compare/v2.54.0..v2.53.0 [2.53.0]: ../../compare/v2.53.0..v2.52.0 [2.52.0]: ../../compare/v2.52.0..v2.51.0 [2.51.0]: ../../compare/v2.51.0..v2.50.0 [2.50.0]: ../../compare/v2.50.0..v2.49.0 [2.49.0]: ../../compare/v2.49.0..v2.48.1 [2.48.1]: ../../compare/v2.48.1..v2.48.0 [2.48.0]: ../../compare/v2.48.0..v2.47.4 [2.47.4]: ../../compare/v2.47.4..v2.47.3 [2.47.3]: ../../compare/v2.47.3..v2.47.2 [2.47.2]: ../../compare/v2.47.2..v2.47.1 [2.47.1]: ../../compare/v2.47.1..v2.47.0 [2.47.0]: ../../compare/v2.47.0..v2.46.0 [2.46.0]: ../../compare/v2.46.0..v2.45.1 [2.45.1]: ../../compare/v2.45.1..v2.45.0 [2.45.0]: ../../compare/v2.45.0..v2.44.0 [2.44.0]: ../../compare/v2.44.0..v2.43.0 [2.43.0]: ../../compare/v2.43.0..v2.42.1 [2.42.1]: ../../compare/v2.42.1..v2.42.0 [2.42.0]: ../../compare/v2.42.0..v2.41.0 [2.41.0]: ../../compare/v2.41.0..v2.40.0 [2.40.0]: ../../compare/v2.40.0..v2.39.0 [2.39.0]: ../../compare/v2.39.0..v2.38.0 [2.38.0]: ../../compare/v2.38.0..v2.37.0 [2.37.0]: ../../compare/v2.37.0..v2.36.0 [2.36.0]: ../../compare/v2.36.0..v2.35.0 [2.35.0]: ../../compare/v2.35.0..v2.34.0 [2.34.0]: ../../compare/v2.34.0..v2.33.0 [2.33.0]: ../../compare/v2.33.0..v2.32.0 [2.32.0]: ../../compare/v2.32.0..v2.31.0 [2.31.0]: ../../compare/v2.31.0..v2.30.0 [2.30.0]: ../../compare/v2.30.0..v2.29.0 [2.29.0]: ../../compare/v2.29.0..v2.28.0 [2.28.0]: ../../compare/v2.28.0..v2.27.0 [2.27.0]: ../../compare/v2.27.0..v2.26.1 [2.26.1]: ../../compare/v2.26.1..v2.26.0 [2.26.0]: ../../compare/v2.26.0..v2.25.1 [2.25.1]: ../../compare/v2.25.1..v2.25.0 [2.25.0]: ../../compare/v2.25.0..v2.24.0 [2.24.0]: ../../compare/v2.24.0..v2.23.2 [2.23.2]: ../../compare/v2.23.2..v2.23.1 [2.23.1]: ../../compare/v2.23.1..v2.23.0 [2.23.0]: ../../compare/v2.23.0..v2.22.4 [2.22.4]: ../../compare/v2.22.4..v2.22.3 [2.22.3]: ../../compare/v2.22.3..v2.22.2 [2.22.2]: ../../compare/v2.22.2..v2.22.1 [2.22.1]: ../../compare/v2.22.1..v2.22.0 [2.22.0]: ../../compare/v2.22.0..v2.22.0b4 [2.22.0b4]: ../../compare/v2.22.0b4..v2.22.0b3 [2.22.0b3]: ../../compare/v2.22.0b3..v2.22.0b2 [2.22.0b2]: ../../compare/v2.22.0b2..v2.22.0b1 [2.22.0b1]: ../../compare/v2.22.0b1..v2.21.0 [2.21.0]: ../../compare/v2.21.0..v2.20.2 [2.20.2]: ../../compare/v2.20.2..v2.20.1 [2.20.1]: ../../compare/v2.20.1..v2.20.0 [2.20.0]: ../../compare/v2.20.0..v2.19.0 [2.19.0]: ../../compare/v2.19.0..v2.18.1 [2.18.1]: ../../compare/v2.18.1..v2.18.0 [2.18.0]: ../../compare/v2.18.0..v2.17.2 [2.17.2]: ../../compare/v2.17.2..v2.17.1 [2.17.1]: ../../compare/v2.17.1..v2.17.0 [2.17.0]: ../../compare/v2.17.0..v2.16.3 [2.16.3]: ../../compare/v2.16.3..v2.16.2 [2.16.2]: ../../compare/v2.16.2..v2.16.1 [2.16.1]: ../../compare/v2.16.1..v2.16.0 [2.16.0]: ../../compare/v2.16.0..v2.15.0 [2.15.0]: ../../compare/v2.15.0..v2.14.0 [2.14.0]: ../../compare/v2.14.0..v2.13.2 [2.13.2]: ../../compare/v2.13.2..v2.13.1 [2.13.1]: ../../compare/v2.13.1..v2.13.0 [2.13.0]: ../../compare/v2.13.0..v2.12.7 [2.12.7]: ../../compare/v2.12.7..v2.12.6 [2.12.6]: ../../compare/v2.12.6..v2.12.5 [2.12.5]: ../../compare/v2.12.5..v2.12.4 [2.12.4]: ../../compare/v2.12.4..v2.12.3 [2.12.3]: ../../compare/v2.12.3..v2.12.2 [2.12.2]: ../../compare/v2.12.2..v2.12.1 [2.12.1]: ../../compare/v2.12.1..v2.12.0 [2.12.0]: ../../compare/v2.12.0..v2.11.0 [2.11.0]: ../../compare/v2.11.0..v2.10.5 [2.10.5]: ../../compare/v2.10.5..v2.10.4 [2.10.4]: ../../compare/v2.10.4..v2.10.3 [2.10.3]: ../../compare/v2.10.3..v2.10.2 [2.10.2]: ../../compare/v2.10.2..v2.10.1 [2.10.1]: ../../compare/v2.10.1..v2.10.0 [2.10.0]: ../../compare/v2.10.0..v2.9.0 [2.9.0]: ../../compare/v2.9.0..v2.8.3 [2.8.3]: ../../compare/v2.8.3...v2.8.2 [2.8.2]: ../../compare/v2.8.2...v2.8.1 [2.8.1]: ../../compare/v2.8.1...v2.8.0 [2.8.0]: ../../compare/v2.8.0...v2.7.1 [2.7.1]: ../../compare/v2.7.1...v2.7.0 [2.7.0]: ../../compare/v2.7.0...v2.6.1 [2.6.1]: ../../compare/v2.6.1...v2.6.0 [2.6.0]: ../../compare/v2.6.0...v2.5.3 [2.5.3]: ../../compare/v2.5.3...v2.5.2 [2.5.2]: ../../compare/v2.5.2...v2.5.1 [2.5.1]: ../../compare/v2.5.1...v2.5.0 [2.5.0]: ../../compare/v2.5.0...v2.4.4 [2.4.4]: ../../compare/v2.4.4...v2.4.3 [2.4.3]: ../../compare/v2.4.3...v2.4.2 [2.4.2]: ../../compare/v2.4.2...v2.4.1 [2.4.1]: ../../compare/v2.4.1...v2.4.0 [2.4.0]: ../../compare/v2.4.0...v2.3.1 [2.3.1]: ../../compare/v2.3.1...v2.3.0 [2.3.0]: ../../compare/v2.3.0...v2.2.2 [2.2.2]: ../../compare/v2.2.2...v2.2.1 [2.2.1]: ../../compare/v2.2.1...v2.2.0 [2.2.0]: ../../compare/v2.2.0...v2.1.3 [2.1.3]: ../../compare/v2.1.3...v2.1.2 [2.1.2]: ../../compare/v2.1.2...v2.1.1 [2.1.1]: ../../compare/v2.1.1...v2.1.0 [2.1.0]: ../../compare/v2.1.0...v2.0.2 [2.0.2]: ../../compare/v2.0.2...v2.0.1 [2.0.1]: ../../compare/v2.0.1...v2.0.0 [2.0.0]: ../../compare/v2.0.0...v1.0.1 [1.0.1]: ../../compare/v1.0.1...v1.0.0 [1.0.0]: ../../compare/v1.0.0...v1.0.0b19 [1.0.0b19]: ../../compare/v1.0.0b19...v1.0.0b18 [1.0.0b18]: ../../compare/v1.0.0b18...v1.0.0b17 [1.0.0b17]: ../../compare/v1.0.0b17...v1.0.0b16 [1.0.0b16]: ../../compare/v1.0.0b16...v1.0.0b15 [1.0.0b15]: ../../compare/v1.0.0b15...v1.0.0b14 [1.0.0b14]: ../../compare/v1.0.0b14...v1.0.0b13 [1.0.0b13]: ../../compare/v1.0.0b13...v1.0.0b12 [1.0.0b12]: ../../compare/v1.0.0b12...v1.0.0b11 [1.0.0b11]: ../../compare/v1.0.0b11...v1.0.0b10 [1.0.0b10]: ../../compare/v1.0.0b10...v1.0.0b9 [1.0.0b9]: ../../compare/v1.0.0b9...v1.0.0b6 [1.0.0b6]: ../../compare/v1.0.0b6...v1.0.0b1 [1.0.0b1]: ../../compare/v1.0.0b1...v0.15.2 [0.15.2]: ../../compare/v0.15.2...v0.15.1 [0.15.1]: ../../compare/v0.15.1...v0.15.0 [0.14.0]: ../../compare/v0.14.0...v0.13.3 [0.13.3]: ../../compare/v0.13.3...v0.13.2 [0.13.2]: ../../compare/v0.13.2...v0.13.1 [0.13.1]: ../../compare/v0.13.1...v0.13.0 [0.13.0]: ../../compare/v0.13.0...v0.12.0 [0.12.0]: ../../compare/v0.12.0...v0.11.0 [0.11.0]: ../../compare/v0.11.0...v0.10.0 [0.10.0]: ../../compare/v0.10.0...v0.9.0 [0.9.0]: ../../compare/v0.9.0...v0.8.8 [0.8.8]: ../../compare/v0.8.8...v0.8.7 [0.8.7]: ../../compare/v0.8.7...v0.8.6 [0.8.6]: ../../compare/v0.8.6...v0.8.5 [0.8.5]: ../../compare/v0.8.5...v0.8.4 [0.8.4]: ../../compare/v0.8.4...v0.8.3 [0.8.3]: ../../compare/v0.8.3...v0.8.2 [0.8.2]: ../../compare/v0.8.2...v0.8.1 [0.8.1]: ../../compare/v0.8.1...v0.8.0 [0.8.0]: ../../compare/v0.8.0...v0.7.5 [0.7.5]: ../../compare/v0.7.5...v0.7.4 [0.7.4]: ../../compare/v0.7.4...v0.7.3 [0.7.3]: ../../compare/v0.7.3...v0.7.2 [0.7.2]: ../../compare/v0.7.2...v0.7.1 [0.7.1]: ../../compare/v0.7.1...v0.7.0 [0.7.0]: ../../compare/v0.7.0...v0.6.0 [0.6.0]: ../../compare/v0.6.0...v0.5.0 [0.5.0]: ../../compare/v0.5.0...v0.4.4 [0.4.4]: ../../compare/v0.4.4...v0.4.3 [0.4.3]: ../../compare/v0.4.3...v0.4.2 [0.4.2]: ../../compare/v0.4.2...v0.4.1 [0.4.2]: ../../compare/v0.4.2...v0.4.1 [0.4.1]: ../../compare/v0.4.1...v0.4.0 [0.4.0]: ../../compare/v0.4.0...v0.3.2 [0.3.2]: ../../compare/v0.3.2...v0.3.1 [0.3.1]: ../../compare/v0.3.1...v0.3.0 [0.3.0]: ../../compare/v0.3.0...v0.2.5 [0.2.5]: ../../compare/v0.2.5...v0.2.4 [0.2.4]: ../../compare/v0.2.3...v0.2.4 [0.2.3]: ../../compare/v0.2.2...v0.2.3 [0.2.2]: ../../compare/v0.2.1...v0.2.2 [0.2.1]: ../../compare/v0.2.0...v0.2.1 [0.2.0]: ../../compare/v0.1.0...v0.2.0 [0.1.0]: ../../compare/v0.0.7...v0.1.0 [0.0.7]: ../../compare/v0.0.6...v0.0.7 [0.0.6]: ../../compare/v0.0.5...v0.0.6 [0.0.5]: ../../compare/v0.0.4...v0.0.5 [0.0.4]: ../../compare/v0.0.2...v0.0.4 [0.0.2]: ../../compare/v0.0.1...v0.0.2 [0.0.1]: ../../compare/HEAD...v0.0.1