ocrd 3.5.1__py3-none-any.whl → 3.7.0__py3-none-any.whl
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.
- ocrd/cli/__init__.py +8 -6
- ocrd/cli/bashlib.py +8 -114
- ocrd/cli/network.py +0 -2
- ocrd/cli/ocrd_tool.py +26 -4
- ocrd/cli/process.py +1 -0
- ocrd/cli/resmgr.py +0 -1
- ocrd/cli/validate.py +32 -13
- ocrd/cli/workspace.py +125 -52
- ocrd/cli/zip.py +13 -4
- ocrd/decorators/__init__.py +28 -52
- ocrd/decorators/loglevel_option.py +4 -0
- ocrd/decorators/mets_find_options.py +2 -1
- ocrd/decorators/ocrd_cli_options.py +3 -7
- ocrd/decorators/parameter_option.py +12 -11
- ocrd/mets_server.py +11 -15
- ocrd/processor/base.py +88 -71
- ocrd/processor/builtin/dummy_processor.py +7 -4
- ocrd/processor/builtin/filter_processor.py +3 -2
- ocrd/processor/helpers.py +5 -6
- ocrd/processor/ocrd_page_result.py +7 -5
- ocrd/resolver.py +42 -32
- ocrd/task_sequence.py +11 -4
- ocrd/workspace.py +64 -54
- ocrd/workspace_backup.py +3 -0
- ocrd/workspace_bagger.py +15 -8
- {ocrd-3.5.1.dist-info → ocrd-3.7.0.dist-info}/METADATA +2 -8
- ocrd-3.7.0.dist-info/RECORD +123 -0
- ocrd_modelfactory/__init__.py +4 -2
- ocrd_models/constants.py +18 -1
- ocrd_models/ocrd_agent.py +1 -1
- ocrd_models/ocrd_exif.py +7 -3
- ocrd_models/ocrd_file.py +24 -19
- ocrd_models/ocrd_mets.py +90 -67
- ocrd_models/ocrd_page.py +17 -13
- ocrd_models/ocrd_xml_base.py +1 -0
- ocrd_models/report.py +2 -1
- ocrd_models/utils.py +4 -3
- ocrd_models/xpath_functions.py +3 -1
- ocrd_network/__init__.py +1 -2
- ocrd_network/cli/__init__.py +0 -2
- ocrd_network/cli/client.py +122 -50
- ocrd_network/cli/processing_server.py +1 -2
- ocrd_network/client.py +2 -2
- ocrd_network/client_utils.py +30 -13
- ocrd_network/constants.py +1 -6
- ocrd_network/database.py +3 -3
- ocrd_network/logging_utils.py +2 -7
- ocrd_network/models/__init__.py +0 -2
- ocrd_network/models/job.py +31 -33
- ocrd_network/models/messages.py +3 -2
- ocrd_network/models/workspace.py +5 -5
- ocrd_network/process_helpers.py +54 -17
- ocrd_network/processing_server.py +63 -114
- ocrd_network/processing_worker.py +6 -5
- ocrd_network/rabbitmq_utils/__init__.py +2 -0
- ocrd_network/rabbitmq_utils/helpers.py +24 -7
- ocrd_network/runtime_data/__init__.py +1 -2
- ocrd_network/runtime_data/deployer.py +12 -85
- ocrd_network/runtime_data/hosts.py +61 -130
- ocrd_network/runtime_data/network_agents.py +7 -31
- ocrd_network/runtime_data/network_services.py +1 -1
- ocrd_network/server_cache.py +1 -1
- ocrd_network/server_utils.py +13 -52
- ocrd_network/utils.py +1 -0
- ocrd_utils/__init__.py +4 -4
- ocrd_utils/config.py +86 -76
- ocrd_utils/deprecate.py +3 -0
- ocrd_utils/image.py +51 -23
- ocrd_utils/introspect.py +8 -3
- ocrd_utils/logging.py +15 -7
- ocrd_utils/os.py +17 -4
- ocrd_utils/str.py +32 -16
- ocrd_validators/json_validator.py +4 -1
- ocrd_validators/ocrd_tool_validator.py +2 -1
- ocrd_validators/ocrd_zip_validator.py +5 -4
- ocrd_validators/page_validator.py +21 -9
- ocrd_validators/parameter_validator.py +3 -2
- ocrd_validators/processing_server_config.schema.yml +1 -33
- ocrd_validators/resource_list_validator.py +3 -1
- ocrd_validators/workspace_validator.py +30 -20
- ocrd_validators/xsd_mets_validator.py +2 -1
- ocrd_validators/xsd_page_validator.py +2 -1
- ocrd_validators/xsd_validator.py +4 -2
- ocrd/cli/log.py +0 -51
- ocrd/lib.bash +0 -317
- ocrd-3.5.1.dist-info/RECORD +0 -128
- ocrd_network/cli/processor_server.py +0 -31
- ocrd_network/models/ocrd_tool.py +0 -12
- ocrd_network/processor_server.py +0 -255
- {ocrd-3.5.1.dist-info → ocrd-3.7.0.dist-info}/LICENSE +0 -0
- {ocrd-3.5.1.dist-info → ocrd-3.7.0.dist-info}/WHEEL +0 -0
- {ocrd-3.5.1.dist-info → ocrd-3.7.0.dist-info}/entry_points.txt +0 -0
- {ocrd-3.5.1.dist-info → ocrd-3.7.0.dist-info}/top_level.txt +0 -0
ocrd_validators/xsd_validator.py
CHANGED
|
@@ -9,6 +9,7 @@ from ocrd_models import ValidationReport
|
|
|
9
9
|
|
|
10
10
|
from .constants import XSD_PATHS
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
#
|
|
13
14
|
# -------------------------------------------------
|
|
14
15
|
#
|
|
@@ -35,7 +36,7 @@ class XsdValidator():
|
|
|
35
36
|
doc (etree.ElementTree|str|bytes):
|
|
36
37
|
schema_url (str): URI of XML schema to validate against.
|
|
37
38
|
"""
|
|
38
|
-
return cls.instance(schema_url)._validate(doc)
|
|
39
|
+
return cls.instance(schema_url)._validate(doc) # pylint: disable=protected-access
|
|
39
40
|
|
|
40
41
|
def __init__(self, schema_url):
|
|
41
42
|
"""
|
|
@@ -55,7 +56,8 @@ class XsdValidator():
|
|
|
55
56
|
Do the actual validation.
|
|
56
57
|
|
|
57
58
|
Arguments:
|
|
58
|
-
doc (etree.ElementTree|str|bytes|pathlib.Path): the document.
|
|
59
|
+
doc (etree.ElementTree|str|bytes|pathlib.Path): the document.
|
|
60
|
+
(If etree: us as-is. If str/bytes: parse as XML string. If Path: read_text on it.)
|
|
59
61
|
|
|
60
62
|
Returns: ValidationReport
|
|
61
63
|
"""
|
ocrd/cli/log.py
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
OCR-D CLI: Logging
|
|
3
|
-
|
|
4
|
-
.. click:: ocrd.cli.log:log_cli
|
|
5
|
-
:prog: ocrd log
|
|
6
|
-
:nested: full
|
|
7
|
-
"""
|
|
8
|
-
import click
|
|
9
|
-
from ocrd_utils import initLogging, getLogger, getLevelName
|
|
10
|
-
import logging
|
|
11
|
-
|
|
12
|
-
class LogCtx():
|
|
13
|
-
|
|
14
|
-
def __init__(self, name):
|
|
15
|
-
self.name = name
|
|
16
|
-
|
|
17
|
-
def log(self, lvl, *args, **kwargs):
|
|
18
|
-
logger = getLogger(self.name)
|
|
19
|
-
logger.log(getLevelName(lvl), *args, **kwargs)
|
|
20
|
-
|
|
21
|
-
pass_log = click.make_pass_decorator(LogCtx)
|
|
22
|
-
|
|
23
|
-
@click.group("log")
|
|
24
|
-
@click.option('-n', '--name', envvar='OCRD_TOOL_NAME', default='log_cli', metavar='LOGGER_NAME', help='Name of the logger', show_default=True)
|
|
25
|
-
@click.pass_context
|
|
26
|
-
def log_cli(ctx, name, *args, **kwargs):
|
|
27
|
-
"""
|
|
28
|
-
Logging
|
|
29
|
-
|
|
30
|
-
Logger name will be ocrd.OCRD_TOOL_NAME where OCRD_TOOL_NAME is normally
|
|
31
|
-
(when using bashlib) the name of the processor.
|
|
32
|
-
"""
|
|
33
|
-
initLogging()
|
|
34
|
-
ctx.obj = LogCtx('ocrd.' + name)
|
|
35
|
-
|
|
36
|
-
def _bind_log_command(lvl):
|
|
37
|
-
@click.argument('msgs', nargs=-1)
|
|
38
|
-
@pass_log
|
|
39
|
-
def _log_wrapper(ctx, msgs):
|
|
40
|
-
if not msgs:
|
|
41
|
-
ctx.log(lvl.upper(), '')
|
|
42
|
-
elif len(msgs) == 1 and msgs[0] == '-':
|
|
43
|
-
for stdin_line in click.get_text_stream('stdin'):
|
|
44
|
-
ctx.log(lvl.upper(), stdin_line.rstrip('\n'))
|
|
45
|
-
else:
|
|
46
|
-
msg = list(msgs) if '%s' in msgs[0] else ' '.join([x.replace('%', '%%') for x in msgs])
|
|
47
|
-
ctx.log(lvl.upper(), msg)
|
|
48
|
-
return _log_wrapper
|
|
49
|
-
|
|
50
|
-
for _lvl in ['trace', 'debug', 'info', 'warning', 'error', 'critical']:
|
|
51
|
-
log_cli.command(_lvl, help="Log a %s message" % _lvl.upper())(_bind_log_command(_lvl))
|
ocrd/lib.bash
DELETED
|
@@ -1,317 +0,0 @@
|
|
|
1
|
-
((BASH_VERSINFO<4 || BASH_VERSINFO==4 && BASH_VERSINFO[1]<4)) && \
|
|
2
|
-
echo >&2 "bash $BASH_VERSION is too old. Please install bash 4.4 or newer." && \
|
|
3
|
-
exit 1
|
|
4
|
-
|
|
5
|
-
## ### `ocrd__raise`
|
|
6
|
-
##
|
|
7
|
-
## Raise an error and exit.
|
|
8
|
-
ocrd__raise () {
|
|
9
|
-
echo >&2 "ERROR: $1"; exit 127
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
## ### `ocrd__log`
|
|
13
|
-
##
|
|
14
|
-
## Delegate logging to `ocrd log`
|
|
15
|
-
ocrd__log () {
|
|
16
|
-
local log_level="${ocrd__argv[log_level]:-}"
|
|
17
|
-
if [[ -n "$log_level" ]];then
|
|
18
|
-
ocrd -l "$log_level" log "$@"
|
|
19
|
-
else
|
|
20
|
-
ocrd log "$@"
|
|
21
|
-
fi
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## ### `ocrd__minversion`
|
|
26
|
-
##
|
|
27
|
-
## Ensure minimum version
|
|
28
|
-
# ht https://stackoverflow.com/posts/4025065
|
|
29
|
-
ocrd__minversion () {
|
|
30
|
-
set -e
|
|
31
|
-
local minversion_raw="$1"
|
|
32
|
-
local version_raw=$(ocrd --version|sed 's/ocrd, version //')
|
|
33
|
-
local version_mmp=$(echo "$version_raw" | grep -Eo '([0-9]+\.?){3}')
|
|
34
|
-
local version_prerelease_suffix="${version_raw#$version_mmp}"
|
|
35
|
-
if [[ -z $version_prerelease_suffix ]];then
|
|
36
|
-
version_prerelease_suffix=0
|
|
37
|
-
fi
|
|
38
|
-
local minversion_mmp=$(echo "$minversion_raw" | grep -Eo '([0-9]+\.?){3}')
|
|
39
|
-
local minversion_prerelease_suffix="${minversion_raw#$minversion_mmp}"
|
|
40
|
-
if [[ -z $minversion_prerelease_suffix ]];then
|
|
41
|
-
minversion_prerelease_suffix=0
|
|
42
|
-
fi
|
|
43
|
-
local IFS='.'
|
|
44
|
-
version=($version_mmp)
|
|
45
|
-
minversion=($minversion_mmp)
|
|
46
|
-
# MAJOR > MAJOR
|
|
47
|
-
if (( ${version[0]} > ${minversion[0]} ));then
|
|
48
|
-
return
|
|
49
|
-
# MAJOR == MAJOR
|
|
50
|
-
elif (( ${version[0]} == ${minversion[0]} ));then
|
|
51
|
-
# MINOR > MINOR
|
|
52
|
-
if (( ${version[1]} > ${minversion[1]} ));then
|
|
53
|
-
return
|
|
54
|
-
# MINOR == MINOR
|
|
55
|
-
elif (( ${version[1]} == ${minversion[1]} ));then
|
|
56
|
-
# PATCH > PATCH
|
|
57
|
-
if (( ${version[2]} > ${minversion[2]} ));then
|
|
58
|
-
return
|
|
59
|
-
elif (( ${version[2]} == ${minversion[2]}));then
|
|
60
|
-
# Match prerelease suffix like a1, b1 alphabetically
|
|
61
|
-
if [ "$version_prerelease_suffix" = "$minversion_prerelease_suffix" -o "$version_prerelease_suffix" \> "$minversion_prerelease_suffix" ]; then
|
|
62
|
-
return
|
|
63
|
-
fi
|
|
64
|
-
fi
|
|
65
|
-
fi
|
|
66
|
-
fi
|
|
67
|
-
ocrd__raise "ocrd/core is too old ($version_raw < $minversion_raw). Please update OCR-D/core"
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
## ### `ocrd__dumpjson`
|
|
71
|
-
##
|
|
72
|
-
## Output ocrd-tool.json.
|
|
73
|
-
##
|
|
74
|
-
## Requires `$OCRD_TOOL_JSON` and `$OCRD_TOOL_NAME` to be set:
|
|
75
|
-
##
|
|
76
|
-
## ```sh
|
|
77
|
-
## export OCRD_TOOL_JSON=/path/to/ocrd-tool.json
|
|
78
|
-
## export OCRD_TOOL_NAME=ocrd-foo-bar
|
|
79
|
-
## ```
|
|
80
|
-
##
|
|
81
|
-
ocrd__dumpjson () {
|
|
82
|
-
ocrd ocrd-tool "$OCRD_TOOL_JSON" tool "$OCRD_TOOL_NAME" dump
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
##
|
|
86
|
-
## Output file resource path.
|
|
87
|
-
##
|
|
88
|
-
ocrd__resolve_resource () {
|
|
89
|
-
ocrd ocrd-tool "$OCRD_TOOL_JSON" tool "$OCRD_TOOL_NAME" resolve-resource "$1"
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
##
|
|
93
|
-
## Output file resource content.
|
|
94
|
-
##
|
|
95
|
-
ocrd__show_resource () {
|
|
96
|
-
ocrd ocrd-tool "$OCRD_TOOL_JSON" tool "$OCRD_TOOL_NAME" show-resource "$1"
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
##
|
|
100
|
-
## Output file resources names.
|
|
101
|
-
##
|
|
102
|
-
ocrd__list_resources () {
|
|
103
|
-
ocrd ocrd-tool "$OCRD_TOOL_JSON" tool "$OCRD_TOOL_NAME" list-resources
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
## ### `ocrd__usage`
|
|
107
|
-
##
|
|
108
|
-
## Print usage
|
|
109
|
-
##
|
|
110
|
-
ocrd__usage () {
|
|
111
|
-
declare -a _args=(ocrd-tool "$OCRD_TOOL_JSON" tool "$OCRD_TOOL_NAME" help)
|
|
112
|
-
if [ -v ocrd__subcommand ];then
|
|
113
|
-
_args+=($ocrd__subcommand)
|
|
114
|
-
fi
|
|
115
|
-
ocrd ${_args[@]}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
## ### `ocrd__parse_argv`
|
|
119
|
-
##
|
|
120
|
-
## Expects an associative array ("hash"/"dict") `ocrd__argv` to be defined:
|
|
121
|
-
##
|
|
122
|
-
## ```sh
|
|
123
|
-
## declare -A ocrd__argv=()
|
|
124
|
-
## ```
|
|
125
|
-
ocrd__parse_argv () {
|
|
126
|
-
set -e
|
|
127
|
-
|
|
128
|
-
# if [[ -n "$ZSH_VERSION" ]];then
|
|
129
|
-
# print -r -- ${+ocrd__argv} ${(t)ocrd__argv}
|
|
130
|
-
# fi
|
|
131
|
-
if ! declare -p "ocrd__argv" >/dev/null 2>/dev/null ;then
|
|
132
|
-
ocrd__raise "Must set \$ocrd__argv (declare -A ocrd__argv)"
|
|
133
|
-
fi
|
|
134
|
-
|
|
135
|
-
if ! declare -p "params" >/dev/null 2>/dev/null ;then
|
|
136
|
-
ocrd__raise "Must set \$params (declare -A params)"
|
|
137
|
-
fi
|
|
138
|
-
|
|
139
|
-
if ! declare -p "params_json" >/dev/null 2>/dev/null ;then
|
|
140
|
-
ocrd__raise "Must set \$params_json (declare params_json)"
|
|
141
|
-
fi
|
|
142
|
-
|
|
143
|
-
if [[ $# = 0 ]];then
|
|
144
|
-
ocrd__usage
|
|
145
|
-
exit 1
|
|
146
|
-
fi
|
|
147
|
-
|
|
148
|
-
ocrd__argv[debug]=false
|
|
149
|
-
ocrd__argv[overwrite]=false
|
|
150
|
-
ocrd__argv[profile]=false
|
|
151
|
-
ocrd__argv[profile_file]=
|
|
152
|
-
ocrd__argv[mets_server_url]=
|
|
153
|
-
ocrd__argv[mets_file]="$PWD/mets.xml"
|
|
154
|
-
|
|
155
|
-
local __parameters=()
|
|
156
|
-
local __parameter_overrides=()
|
|
157
|
-
|
|
158
|
-
if [[ $1 == 'worker' || $1 == 'server' ]];then
|
|
159
|
-
ocrd__subcommand="$1" ; shift ;
|
|
160
|
-
fi
|
|
161
|
-
|
|
162
|
-
while [[ "${1:-}" = -* ]];do
|
|
163
|
-
case "$1" in
|
|
164
|
-
-l|--log-level) ocrd__argv[log_level]=$2 ; shift ;;
|
|
165
|
-
--log-filename) exec 2> "$2" ; shift ;;
|
|
166
|
-
-h|--help|--usage) ocrd__usage; exit ;;
|
|
167
|
-
-J|--dump-json) ocrd__dumpjson; exit ;;
|
|
168
|
-
-D|--dump-module-dir) echo $(dirname "$OCRD_TOOL_JSON"); exit ;;
|
|
169
|
-
-C|--show-resource) ocrd__show_resource "$2"; exit ;;
|
|
170
|
-
-L|--list-resources) ocrd__list_resources; exit ;;
|
|
171
|
-
-p|--parameter) __parameters+=(-p "$(ocrd__resolve_resource "$2" 2>/dev/null || echo "$2")") ; shift ;;
|
|
172
|
-
-P|--parameter-override) __parameter_overrides+=(-P "$2" "$3") ; shift ; shift ;;
|
|
173
|
-
-g|--page-id) ocrd__argv[page_id]=$2 ; shift ;;
|
|
174
|
-
-O|--output-file-grp) ocrd__argv[output_file_grp]=$2 ; shift ;;
|
|
175
|
-
-I|--input-file-grp) ocrd__argv[input_file_grp]=$2 ; shift ;;
|
|
176
|
-
-w|--working-dir) ocrd__argv[working_dir]=$(realpath "$2") ; shift ;;
|
|
177
|
-
-m|--mets) ocrd__argv[mets_file]=$(realpath "$2") ; shift ;;
|
|
178
|
-
-U|--mets-server-url) ocrd__argv[mets_server_url]="$2" ; shift ;;
|
|
179
|
-
--debug) ocrd__argv[debug]=true ;;
|
|
180
|
-
--overwrite) ocrd__argv[overwrite]=true ;;
|
|
181
|
-
--profile) ocrd__argv[profile]=true ;;
|
|
182
|
-
--profile-file) ocrd__argv[profile_file]=$(realpath "$2") ; shift ;;
|
|
183
|
-
-V|--version) ocrd ocrd-tool "$OCRD_TOOL_JSON" version; exit ;;
|
|
184
|
-
--queue) ocrd__worker_queue="$2" ; shift ;;
|
|
185
|
-
--database) ocrd__worker_database="$2" ; shift ;;
|
|
186
|
-
--address) ocrd__worker_address="$2" ; shift ;;
|
|
187
|
-
*) ocrd__raise "Unknown option '$1'" ;;
|
|
188
|
-
esac
|
|
189
|
-
shift
|
|
190
|
-
done
|
|
191
|
-
|
|
192
|
-
if [ -v ocrd__worker_queue -o -v ocrd__worker_database -o -v ocrd__subcommand -o -v ocrd__worker_address ]; then
|
|
193
|
-
if ! [ -v ocrd__subcommand ] ; then
|
|
194
|
-
ocrd__raise "Provide subcommand 'worker' or 'server' for Processing Worker / Processor Server"
|
|
195
|
-
elif ! [ -v ocrd__worker_database ]; then
|
|
196
|
-
ocrd__raise "For the Processing Worker / Processor Server --database is required"
|
|
197
|
-
fi
|
|
198
|
-
if [ ${ocrd__subcommand} = "worker" ]; then
|
|
199
|
-
if ! [ -v ocrd__worker_queue ]; then
|
|
200
|
-
ocrd__raise "For the Processing Worker --queue is required"
|
|
201
|
-
fi
|
|
202
|
-
ocrd network processing-worker $OCRD_TOOL_NAME --queue "${ocrd__worker_queue}" --database "${ocrd__worker_database}"
|
|
203
|
-
elif [ ${ocrd__subcommand} = "server" ]; then
|
|
204
|
-
if ! [ -v ocrd__worker_address ]; then
|
|
205
|
-
ocrd__raise "For the Processor Server --address is required"
|
|
206
|
-
fi
|
|
207
|
-
ocrd network processor-server $OCRD_TOOL_NAME --database "${ocrd__worker_database}" --address "${ocrd__worker_address}"
|
|
208
|
-
else
|
|
209
|
-
ocrd__raise "subcommand must be either 'worker' or 'server' not '${ocrd__subcommand}'"
|
|
210
|
-
fi
|
|
211
|
-
exit
|
|
212
|
-
fi
|
|
213
|
-
|
|
214
|
-
if [[ ! -e "${ocrd__argv[mets_file]}" ]]; then
|
|
215
|
-
ocrd__raise "METS file '${ocrd__argv[mets_file]}' not found"
|
|
216
|
-
fi
|
|
217
|
-
|
|
218
|
-
if [[ ! -d "${ocrd__argv[working_dir]:=$(dirname "${ocrd__argv[mets_file]}")}" ]]; then
|
|
219
|
-
ocrd__raise "workdir '${ocrd__argv[working_dir]}' not a directory. Use -w/--working-dir to set correctly"
|
|
220
|
-
fi
|
|
221
|
-
|
|
222
|
-
if [[ ! "${ocrd__argv[log_level]:=INFO}" =~ OFF|ERROR|WARN|INFO|DEBUG|TRACE ]]; then
|
|
223
|
-
ocrd__raise "log level '${ocrd__argv[log_level]}' is invalid"
|
|
224
|
-
fi
|
|
225
|
-
|
|
226
|
-
if [[ -z "${ocrd__argv[input_file_grp]:=}" ]]; then
|
|
227
|
-
ocrd__raise "Provide --input-file-grp/-I explicitly!"
|
|
228
|
-
fi
|
|
229
|
-
|
|
230
|
-
if [[ -z "${ocrd__argv[output_file_grp]:=}" ]]; then
|
|
231
|
-
ocrd__raise "Provide --output-file-grp/-O explicitly!"
|
|
232
|
-
fi
|
|
233
|
-
|
|
234
|
-
# enable profiling (to be extended/acted upon by caller)
|
|
235
|
-
if [[ ${ocrd__argv[profile]} = true ]]; then
|
|
236
|
-
if [[ -n "${ocrd__argv[profile_file]}" ]]; then
|
|
237
|
-
exec 3> "${ocrd__argv[profile_file]}"
|
|
238
|
-
else
|
|
239
|
-
exec 3>&2
|
|
240
|
-
fi
|
|
241
|
-
BASH_XTRACEFD=3
|
|
242
|
-
# just the builtin tracer (without timing):
|
|
243
|
-
#set -x
|
|
244
|
-
# our own (including timing):
|
|
245
|
-
DEPTH=+++++++++++
|
|
246
|
-
shopt -s extdebug
|
|
247
|
-
showtime() { date "+${DEPTH:0:$BASH_SUBSHELL+1} %H:%M:%S $BASH_COMMAND" >&3; }
|
|
248
|
-
declare +t showtime # no trace here
|
|
249
|
-
trap showtime DEBUG
|
|
250
|
-
fi
|
|
251
|
-
|
|
252
|
-
# check parameters
|
|
253
|
-
local params_parsed retval
|
|
254
|
-
params_parsed="$(ocrd ocrd-tool "$OCRD_TOOL_JSON" tool $OCRD_TOOL_NAME parse-params "${__parameters[@]}" "${__parameter_overrides[@]}")" || {
|
|
255
|
-
retval=$?
|
|
256
|
-
ocrd__raise "Failed to parse parameters (retval $retval):
|
|
257
|
-
$params_parsed"
|
|
258
|
-
}
|
|
259
|
-
eval "$params_parsed"
|
|
260
|
-
params_json="$(ocrd ocrd-tool "$OCRD_TOOL_JSON" tool $OCRD_TOOL_NAME parse-params --json "${__parameters[@]}" "${__parameter_overrides[@]}")"
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
ocrd__wrap () {
|
|
265
|
-
set -e
|
|
266
|
-
|
|
267
|
-
declare -gx OCRD_TOOL_JSON="$1"
|
|
268
|
-
declare -gx OCRD_TOOL_NAME="$2"
|
|
269
|
-
shift
|
|
270
|
-
shift
|
|
271
|
-
declare -Agx params
|
|
272
|
-
params=()
|
|
273
|
-
declare -g params_json
|
|
274
|
-
declare -Agx ocrd__argv
|
|
275
|
-
ocrd__argv=()
|
|
276
|
-
|
|
277
|
-
if ! which "ocrd" >/dev/null 2>/dev/null;then
|
|
278
|
-
ocrd__raise "ocrd not in \$PATH"
|
|
279
|
-
fi
|
|
280
|
-
|
|
281
|
-
if ! declare -p "OCRD_TOOL_JSON" >/dev/null 2>/dev/null;then
|
|
282
|
-
ocrd__raise "Must set \$OCRD_TOOL_JSON"
|
|
283
|
-
elif [[ ! -r "$OCRD_TOOL_JSON" ]];then
|
|
284
|
-
ocrd__raise "Cannot read \$OCRD_TOOL_JSON: '$OCRD_TOOL_JSON'"
|
|
285
|
-
fi
|
|
286
|
-
|
|
287
|
-
if [[ -z "$OCRD_TOOL_NAME" ]];then
|
|
288
|
-
ocrd__raise "Must set \$OCRD_TOOL_NAME"
|
|
289
|
-
elif ! ocrd ocrd-tool "$OCRD_TOOL_JSON" list-tools|grep -q "$OCRD_TOOL_NAME";then
|
|
290
|
-
ocrd__raise "No such command \$OCRD_TOOL_NAME: $OCRD_TOOL_NAME"
|
|
291
|
-
fi
|
|
292
|
-
|
|
293
|
-
ocrd__parse_argv "$@"
|
|
294
|
-
|
|
295
|
-
declare -ag ocrd__files
|
|
296
|
-
IFS=$'\n'
|
|
297
|
-
ocrd__files=( $(ocrd bashlib input-files \
|
|
298
|
-
--ocrd-tool $OCRD_TOOL_JSON \
|
|
299
|
-
--executable $OCRD_TOOL_NAME \
|
|
300
|
-
$(if [[ ${ocrd__argv[debug]} = true ]]; then echo --debug; fi) \
|
|
301
|
-
$(if [[ ${ocrd__argv[overwrite]} = true ]]; then echo --overwrite; fi) \
|
|
302
|
-
-m "${ocrd__argv[mets_file]}" \
|
|
303
|
-
-d "${ocrd__argv[working_dir]}" \
|
|
304
|
-
${ocrd__argv[mets_server_url]:+-U} ${ocrd__argv[mets_server_url]:-} \
|
|
305
|
-
-p "$params_json" \
|
|
306
|
-
-I "${ocrd__argv[input_file_grp]}" \
|
|
307
|
-
-O "${ocrd__argv[output_file_grp]}" \
|
|
308
|
-
${ocrd__argv[page_id]:+-g} ${ocrd__argv[page_id]:-}) )
|
|
309
|
-
IFS=$' \t\n'
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
## usage: pageId=$(ocrd__input_file 3 pageId)
|
|
313
|
-
ocrd__input_file() {
|
|
314
|
-
declare -A input_file
|
|
315
|
-
eval input_file=( "${ocrd__files[$1]}" )
|
|
316
|
-
eval echo "${input_file[$2]}"
|
|
317
|
-
}
|
ocrd-3.5.1.dist-info/RECORD
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
ocrd/__init__.py,sha256=ZswMVmlqFhAEIzMR3my6IKPq9XLH21aDPC_m_8Jh4dA,1076
|
|
2
|
-
ocrd/constants.py,sha256=6dn3mG54WqHsKInmLZp4kJjNqqPtBoFoSuLUuRbOps0,740
|
|
3
|
-
ocrd/lib.bash,sha256=le6XqAOEacdjP3JNSlPkxwRH1y0oVjNQM2tX5d6QFO4,10901
|
|
4
|
-
ocrd/mets_server.py,sha256=o01N5vAdPeu-xCgngcMRQm0bzBOhn_IFMV0AbeXDu9g,22491
|
|
5
|
-
ocrd/ocrd-all-tool.json,sha256=EYXmMzP68p3KzL8nUZ16TCX2chQzKkAeISvuXqI_yIw,2094
|
|
6
|
-
ocrd/resolver.py,sha256=A7BrZlUGrfJye-etaEuT-fdJFgvQcCxWovjufT-WmRY,15119
|
|
7
|
-
ocrd/resource_list.yml,sha256=82-PiqkZnka1kTj3MQqNn4wXWKHHtoFchsQuetWuqFs,2633
|
|
8
|
-
ocrd/resource_manager.py,sha256=kIWDoKxWH4IJE1gcoTcCRQjYjieCqiQclyuyF6Y9b8A,16813
|
|
9
|
-
ocrd/task_sequence.py,sha256=spiaUQaMM7M8WdBDoQGmLuTPm7tOugYXD6rcJ2UXzxw,6991
|
|
10
|
-
ocrd/workspace.py,sha256=eLuGSJtOh3y2miKgcF8219YH1RkAaEi-qwXHarz8O8k,64916
|
|
11
|
-
ocrd/workspace_backup.py,sha256=iab_JjZ_mMP-G8NIUk4PZmfpNlQuGRoqc3NbTSSew1w,3621
|
|
12
|
-
ocrd/workspace_bagger.py,sha256=yU8H3xR5WmQKvgQewac71ie-DUWcfLnMS01D55zsEHQ,11971
|
|
13
|
-
ocrd/cli/__init__.py,sha256=LpQb8ne1nzAq2j52lGWDTZlBCmrLwUsz17PTwJkWNcU,2884
|
|
14
|
-
ocrd/cli/bashlib.py,sha256=ypFBM3-IULz_IEBx0Y04eGt9VbQWwEWm4ujm9g_hPWY,6009
|
|
15
|
-
ocrd/cli/log.py,sha256=6_FrVmTKIIVNUaNLkuOJx8pvPhensHMuayJ0PA7T-XA,1562
|
|
16
|
-
ocrd/cli/network.py,sha256=oWBHFEURxfUdb_t-F4svP_ri7o5mqBoNQnLZLbsZLTA,602
|
|
17
|
-
ocrd/cli/ocrd_tool.py,sha256=MLTqbtBCw8wBSScv2S4_xp5Jyz5fwD7BzUJxI9R4TBw,7653
|
|
18
|
-
ocrd/cli/process.py,sha256=8KD0i7LT01H9u5CC1vktYMEVpS67da_rp_09_EOECmw,1233
|
|
19
|
-
ocrd/cli/resmgr.py,sha256=mk8KZweC_7ENAFnC6FvFf7Zv_W1wqJTmk0EMd9XSvf4,10132
|
|
20
|
-
ocrd/cli/validate.py,sha256=nvageDaHCETcE71X5lu7i_4JKpgo9MrvJKinVPLYUTI,5727
|
|
21
|
-
ocrd/cli/workspace.py,sha256=t40r3tnzz0VivhmT0HSeA5-2xdvUleRYvniqLIBGoWs,40501
|
|
22
|
-
ocrd/cli/zip.py,sha256=MMJLw3OXWiJVfVtrdJcBkbB8vA1IzSautluazZRuCQ0,5910
|
|
23
|
-
ocrd/decorators/__init__.py,sha256=n2Lb1WLXGlvPrhNTSGZYRqugpa__MZSWV546EmQnTtc,7678
|
|
24
|
-
ocrd/decorators/loglevel_option.py,sha256=tgipROEu3t4hkwWvFssd80k2SbTBwBIC4WNE6Gc-XAg,798
|
|
25
|
-
ocrd/decorators/mets_find_options.py,sha256=d4oATKMP6bFQHNqOK6nLqgUiWF2FYdkPvzkTVRMYpKo,635
|
|
26
|
-
ocrd/decorators/ocrd_cli_options.py,sha256=psS7u42mXTOWIXQd9kcrgW7kDnFURHbmZ0946aqBz3A,2659
|
|
27
|
-
ocrd/decorators/parameter_option.py,sha256=n8hYw7XVTd3i3tvpK8F1Jx_CqRp6EGF9qJVH95yj92Q,1076
|
|
28
|
-
ocrd/processor/__init__.py,sha256=39ymNwYRdc-b_OJzzKmWCvo2ga3KdsGSYDHE1Hzkn_w,274
|
|
29
|
-
ocrd/processor/base.py,sha256=_h0V5FevEPLb1q0zGtShuKXRj_tOWhD0M7_ufn34MPc,60476
|
|
30
|
-
ocrd/processor/helpers.py,sha256=WFdC5zeB8F7T0FkpJwfTqWsSPNRtBCBUmFLgixw-rYs,10999
|
|
31
|
-
ocrd/processor/ocrd_page_result.py,sha256=eDkpyVHcpaBzTHXiGrcNk9PP9Xr-XZru2w_uoX_ZeNA,510
|
|
32
|
-
ocrd/processor/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
-
ocrd/processor/builtin/dummy_processor.py,sha256=a-4kKJ1JeXQuBIyyN8w2R3s7ov-wAfyEdEz3nxrf0sU,3479
|
|
34
|
-
ocrd/processor/builtin/filter_processor.py,sha256=nDnXjo2tDCjodURb8VlB4VJtRwWGx261jH7AG91edSk,4317
|
|
35
|
-
ocrd/processor/builtin/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
-
ocrd/processor/builtin/dummy/ocrd-tool.json,sha256=NgMAXN1AQpGk4Ss73ThDY4QyFPKhj54qcrdeCGwTb10,2339
|
|
37
|
-
ocrd_modelfactory/__init__.py,sha256=NyJT1uSvmeEwibRFOkh0AEoVnYfP0mzxU--pP23B-TQ,4404
|
|
38
|
-
ocrd_models/__init__.py,sha256=A0aj0mOraNb-xfiUueACdoaqISnp0qH-F49nTJg2vCs,380
|
|
39
|
-
ocrd_models/constants.py,sha256=z5XAFMgz3pttMJOHVzTWNZr3ZqMjonVIDmXk3GQTJ30,6954
|
|
40
|
-
ocrd_models/mets-empty.xml,sha256=dFixfbxSXrgjZx9BfdIKWHX-khNmp7dNYaFe2qQSwCY,1203
|
|
41
|
-
ocrd_models/ocrd_agent.py,sha256=E9OtDhz9UfKb6ou2qvsuCL9NlO1V6zMb0s8nVq8dVos,5609
|
|
42
|
-
ocrd_models/ocrd_exif.py,sha256=wRSprHxCy9LCXw41Fi9kp-CbFc5NFX9ZFIFNszB41qk,4585
|
|
43
|
-
ocrd_models/ocrd_file.py,sha256=7lyHezuNnl2FEYV1lV35-QTCrgYAL-3wO2ulFUNq2Ak,9717
|
|
44
|
-
ocrd_models/ocrd_mets.py,sha256=FHZnztf1cfWim_sAtTVFXt2ZuQx2HVDTQ1xIobIVIeQ,50540
|
|
45
|
-
ocrd_models/ocrd_page.py,sha256=TTCnvpKGyZx1dqH8LnDiVVVPjU6emWGVLO_4o9rQHtw,6233
|
|
46
|
-
ocrd_models/ocrd_page_generateds.py,sha256=IWoN3V-v3C4JgyPaFh9OQC87ob__wUP1Q6ELBxhLA1w,841794
|
|
47
|
-
ocrd_models/ocrd_xml_base.py,sha256=OW57mXLlwm1nH8CNefvXmwLRws9KL9zSrb-3vH--mX8,1641
|
|
48
|
-
ocrd_models/report.py,sha256=luZxvzAAQyGYOlRNSJQUIUIANG81iGmBW5ag-uXxKCA,2026
|
|
49
|
-
ocrd_models/utils.py,sha256=0_WHf5NEn1WC8MKJc6X_RK8gW-70Z09_mslkKOj7uF8,2369
|
|
50
|
-
ocrd_models/xpath_functions.py,sha256=AwR8tHf56-mmIksnw_GeOQ760sxNHqK92T7z9OfsEEs,1437
|
|
51
|
-
ocrd_network/__init__.py,sha256=gMejC614J5PPGgXDKBiQS0jt-Jx8qOrLbWH7zt8x8Gs,374
|
|
52
|
-
ocrd_network/client.py,sha256=rzqtamZ8krRRy-QTO-AeWH8Lr3HhRiQe2R1-Lovd40g,3020
|
|
53
|
-
ocrd_network/client_utils.py,sha256=VVZMNBgGznh41exZ78S48X3DDwHcWTuOq-LNdxjRvak,5002
|
|
54
|
-
ocrd_network/constants.py,sha256=AAcE6zZQNcNp2oqPD6oIgoVLSs4IHTkg8AS92WCQ6Xo,1968
|
|
55
|
-
ocrd_network/database.py,sha256=fcft7vdRDoR7vmPL1xNYTIeOg5DwRPcggwYDYxLy5ik,10706
|
|
56
|
-
ocrd_network/logging_utils.py,sha256=ijWpM8B943Jx6F0NeK3ggni0198UYjM5NCkYpARLk_E,2472
|
|
57
|
-
ocrd_network/param_validators.py,sha256=Jl1VwiPPKJ50k-xEHLdvW-1QDOkJHCiMz4k9Ipqm-Uc,1489
|
|
58
|
-
ocrd_network/process_helpers.py,sha256=KpkInXsa5bgrxvTOouyMJ0NgJhaz0J9Gjs5sZHBcH64,2373
|
|
59
|
-
ocrd_network/processing_server.py,sha256=qBiYk4wgTLqhHvbmDWu_F626BfSfyvkoCD-i0ZwsBSE,42109
|
|
60
|
-
ocrd_network/processing_worker.py,sha256=fhIvmDQAYOkHYtUs5IB8Jk2lOKUTIBk3DskAsFloijA,12591
|
|
61
|
-
ocrd_network/processor_server.py,sha256=2CD9TlinXk6x1jFjP5VWOXgJe8lAQdxc9zjZuVy3EOw,9931
|
|
62
|
-
ocrd_network/server_cache.py,sha256=LpvJ-_Lbaeo4M3t8rZDdm9DAErZr8lDlma6pYc0m7aQ,13149
|
|
63
|
-
ocrd_network/server_utils.py,sha256=Uge5F2VagPAEpcyU_Qf8AiecObIGXE0ilD8DaK7bTdE,12222
|
|
64
|
-
ocrd_network/tcp_to_uds_mets_proxy.py,sha256=yRW-O6ihd31gf7xqQBIBb_ZQQgqisMyOdRI216ehq_A,3160
|
|
65
|
-
ocrd_network/utils.py,sha256=XzPXeSPCVjWLQM540PCpxfJ5hqjJ85_OQBjnf9HlDtE,6759
|
|
66
|
-
ocrd_network/cli/__init__.py,sha256=F7YVqxw-9glz6-ghG0Kp5XXeV1-rL1emVSXLCWxdTF0,306
|
|
67
|
-
ocrd_network/cli/client.py,sha256=gFEXjz-d074CpvimqaM4kJRbJVNYRAOK-jsUl2EAUVs,8424
|
|
68
|
-
ocrd_network/cli/processing_server.py,sha256=rAci6RsHlZ0c87GuLdfdCQCiGNcDEu4NEEQiwKJqVUo,796
|
|
69
|
-
ocrd_network/cli/processing_worker.py,sha256=ZuaCkbKV_WKJV7cGOjZ6RLrjjppymnwNCiznFMlclAg,1897
|
|
70
|
-
ocrd_network/cli/processor_server.py,sha256=Vto7UekFo_g83aHqwDmhge9bhPzk0b7O-L46dSfIpJc,1259
|
|
71
|
-
ocrd_network/models/__init__.py,sha256=AcpZrenygOudMi47Wfr1UCrpbghq2gP8aMAKodgEIFM,527
|
|
72
|
-
ocrd_network/models/job.py,sha256=2-E1cKfdTC3Y5AUemCLz1a_t7BlT8BNF6teAC0f8J5o,4442
|
|
73
|
-
ocrd_network/models/messages.py,sha256=XnyLMX77NchgmtKJRtqtBFsk_sCR4OGEuWm_d3uDkj8,657
|
|
74
|
-
ocrd_network/models/ocrd_tool.py,sha256=WhxSwDyEXtF03Cu8u2tLZcYM0tCacL4PX1GveAxnWEc,293
|
|
75
|
-
ocrd_network/models/workflow.py,sha256=GL8q7RX9fGdXG3iVyJpCeLXbWa-2qI_SIxqhzxs9VK8,189
|
|
76
|
-
ocrd_network/models/workspace.py,sha256=42G8RoS0wJ902LHyM09NIaqHoRdmP-Oib3d5I07sTBQ,1579
|
|
77
|
-
ocrd_network/rabbitmq_utils/__init__.py,sha256=8MRawAiSpZ9IQUBcLAS7sYOzNC9sI11eZOLk7k92_ZQ,691
|
|
78
|
-
ocrd_network/rabbitmq_utils/connector.py,sha256=N6mzjIf5FkVIno3FI1AksZY4F5jMUAm8baay0nXZx8w,11343
|
|
79
|
-
ocrd_network/rabbitmq_utils/constants.py,sha256=Zu_dKJASfrgnIvEZZlFX9uDR9y6w7zy0KhW7gP7wHDE,1063
|
|
80
|
-
ocrd_network/rabbitmq_utils/consumer.py,sha256=3WeryDmo0dSD9U0eLODbDElscvhEYjNeCBIewQHYfws,2488
|
|
81
|
-
ocrd_network/rabbitmq_utils/helpers.py,sha256=y8FTC1ml_IBNcFo14GgCNtNRxYDotQn7U14HmTkv6h0,4874
|
|
82
|
-
ocrd_network/rabbitmq_utils/ocrd_messages.py,sha256=wwzfMWbXmOFo_nd32_XySCso91_Ul-aGm_GhGncNxD4,4419
|
|
83
|
-
ocrd_network/rabbitmq_utils/publisher.py,sha256=mw4XQQhRE1xUQVgEUseyG845iIgVO-9GdGwNH6nUFms,2433
|
|
84
|
-
ocrd_network/runtime_data/__init__.py,sha256=3jYkmT4mxMUcpbDaSw7Ld0KTedGEx_5vUQPDjwUyJZc,367
|
|
85
|
-
ocrd_network/runtime_data/config_parser.py,sha256=Vr0FbsqmsoiuhDgZ7KFdeFZj9JvUulcOS2PCRFQQNHY,2364
|
|
86
|
-
ocrd_network/runtime_data/connection_clients.py,sha256=DZyAvkNyMaIddGJs56s2pMP_fK-XWAtICxk1cjvkWYM,4207
|
|
87
|
-
ocrd_network/runtime_data/deployer.py,sha256=LkDUG0uJf_V4SteiOM3EWwhKtdANCjmAOEAJJDshN30,9111
|
|
88
|
-
ocrd_network/runtime_data/hosts.py,sha256=ml19ptzH4TFofyJR-Qp_Mn3sZUFbWoNe__rRXZSj_WE,12185
|
|
89
|
-
ocrd_network/runtime_data/network_agents.py,sha256=5p_zKLqECBIHLw-Ya6eKcKSZcUM4ESiipEIphVxHBEA,5192
|
|
90
|
-
ocrd_network/runtime_data/network_services.py,sha256=xrPpFUU_Pa-XzGe2FEt5RmO17xqykIUmTr_9g6S7XSs,7892
|
|
91
|
-
ocrd_utils/__init__.py,sha256=U_zAQJwxg_aJ4CR84CKMNAUP6Cob8Er8Ikj42JmnUKo,5977
|
|
92
|
-
ocrd_utils/config.py,sha256=PGRnqrDT7lWJCd9ezoAEBJ5CyVJfFnvCEPTLjtKduOQ,12143
|
|
93
|
-
ocrd_utils/constants.py,sha256=ImbG1d8t2MW3uuFi-mN6aY90Zn74liAKZBKlfuKN86w,3278
|
|
94
|
-
ocrd_utils/deprecate.py,sha256=4i50sZsA3Eevqn5D-SL5yGf9KEZfGCV4A5Anzn1GRMs,1026
|
|
95
|
-
ocrd_utils/image.py,sha256=zNNX1cnRy6yvrxx8mnYQiqWraAh5-i4a1AOfCCg4SmI,24781
|
|
96
|
-
ocrd_utils/introspect.py,sha256=gfBlmeEFuRmRUSgdSK0jOxRpYqDRXl2IAE6gv2MZ6as,1977
|
|
97
|
-
ocrd_utils/logging.py,sha256=XYTL7DxUvdX4V56jhAYH6PkhjMFOmaa0kf_XkhSTTe0,7816
|
|
98
|
-
ocrd_utils/ocrd_logging.conf,sha256=JlWmA_5vg6HnjPGjTC4mA5vFHqmnEinwllSTiOw5CCo,3473
|
|
99
|
-
ocrd_utils/os.py,sha256=tMjikpVXJ8sCgYBOrgjgT3vlR2Pok39nSKysYc6mUQ4,9863
|
|
100
|
-
ocrd_utils/str.py,sha256=cRgqYILDGOAqWr0qrCrV52I3y4wvpwDVtnBGEUjXNS4,10116
|
|
101
|
-
ocrd_validators/__init__.py,sha256=ZFc-UqRVBk9o1YesZFmr9lOepttNJ_NKx1Zdb7g_YsU,972
|
|
102
|
-
ocrd_validators/bagit-profile.yml,sha256=sdQJlSi7TOn1E9WYMOZ1shewJ-i_nPaKmsAFkh28TGY,1011
|
|
103
|
-
ocrd_validators/constants.py,sha256=FLP57T3F39weka_XovG40RgVMW1GunnbK04QRQ9tmlE,1802
|
|
104
|
-
ocrd_validators/json_validator.py,sha256=jkVYwBtXwoubcNbLFWy8kC-DRqdf-9ryoqEf5HHi3Ds,2651
|
|
105
|
-
ocrd_validators/message_processing.schema.yml,sha256=HL7o96-7ejslVMXcp16sbo5IjfUcW0wH8rPXHXdTyyA,1947
|
|
106
|
-
ocrd_validators/message_result.schema.yml,sha256=G6vt_JgIU7OGSaHj-2Jna6KWQ3bFWol5tnBArWEiVjM,681
|
|
107
|
-
ocrd_validators/mets.xsd,sha256=0Wrs9bObn0n-yEEIWyguIcUUuuP6KMEjD4I_p1_UlwY,138290
|
|
108
|
-
ocrd_validators/ocrd_network_message_validator.py,sha256=oafNWOjieBmTHFfYeCtyFFpW1gI0lDT6ycRr5Kvmfq0,561
|
|
109
|
-
ocrd_validators/ocrd_tool.schema.yml,sha256=BQkRIRDbn9B8gFeVxz_EpNdleh_x2dCtIpJEC4HqFHw,10125
|
|
110
|
-
ocrd_validators/ocrd_tool_validator.py,sha256=CvfUHC0vJsPnmFBNf4ndQMXX6pcERCjJMAWk2L-T_ww,747
|
|
111
|
-
ocrd_validators/ocrd_zip_validator.py,sha256=udAImFFliJY3y1FcKwZ52rhpjYB2Iv491hWDxdet8w0,3685
|
|
112
|
-
ocrd_validators/page.xsd,sha256=abQ8C3gRLPMFm8lH62aTCfvTIWI23TpgEDcaW9YCt7I,85770
|
|
113
|
-
ocrd_validators/page_validator.py,sha256=0fI278TLTsrw6htcwk7d9WkTFcbHNip87VMS2uw4Bzc,21765
|
|
114
|
-
ocrd_validators/parameter_validator.py,sha256=_5Y3IS24Sf_xHBkB3TE3jB9VTCbbjWO8bSwcQDP0ewI,1365
|
|
115
|
-
ocrd_validators/processing_server_config.schema.yml,sha256=8NQbhSshm1exTvbdYiu694rZZ-Xe70_vQtsJ0nd7ZCM,5432
|
|
116
|
-
ocrd_validators/processing_server_config_validator.py,sha256=lQ2-ZxsvbFki_SvE_N4_1ptBnBHcwOTJ5grtL2G9F8A,810
|
|
117
|
-
ocrd_validators/resource_list_validator.py,sha256=cFMj0n_x-tjhuNUpjgEvPP8iPVm7lme9TWAaqATasV0,776
|
|
118
|
-
ocrd_validators/workspace_validator.py,sha256=JNPsRVPgQI0vsaxcs_c3qj22GagdZcgO3v9u3sbBbBI,20340
|
|
119
|
-
ocrd_validators/xlink.xsd,sha256=8fW7YAMWXN2PbB_MMvj9H5ZeFoEBDzuYBtlGC8_6ijw,3180
|
|
120
|
-
ocrd_validators/xsd_mets_validator.py,sha256=4GWfLyqkmca0x7osDuXuExYuM0HWVrKoqn0S35sFhHU,467
|
|
121
|
-
ocrd_validators/xsd_page_validator.py,sha256=BNz_9u-Ek4UCeyZu3KxSQoolfW9lvuaSR9nIu1XXxeE,467
|
|
122
|
-
ocrd_validators/xsd_validator.py,sha256=6HrVAf6SzCvfUIuQdIzz9bOq4V-zhyii9yrUPoK2Uvo,2094
|
|
123
|
-
ocrd-3.5.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
124
|
-
ocrd-3.5.1.dist-info/METADATA,sha256=C1ZDvXXY6GXMDEhQlxejMBUdG0rXAmupfX2cTMs9Mp0,10523
|
|
125
|
-
ocrd-3.5.1.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
|
|
126
|
-
ocrd-3.5.1.dist-info/entry_points.txt,sha256=4hcJ2LkK_OlIabHnKgFit35Ap7b5Lz1Gb4hzkxV0Kiw,152
|
|
127
|
-
ocrd-3.5.1.dist-info/top_level.txt,sha256=pUgiN42t4KXC5rvpi6V8atza31XP4SCznXpXlVlvomM,75
|
|
128
|
-
ocrd-3.5.1.dist-info/RECORD,,
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import click
|
|
2
|
-
from ocrd_network import DatabaseParamType, ProcessorServer, ServerAddressParamType
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
@click.command('processor-server')
|
|
6
|
-
@click.argument('processor_name', required=True, type=click.STRING)
|
|
7
|
-
@click.option('-a', '--address',
|
|
8
|
-
help='The URL of the processor server, format: host:port',
|
|
9
|
-
type=ServerAddressParamType(),
|
|
10
|
-
required=True)
|
|
11
|
-
@click.option('-d', '--database',
|
|
12
|
-
default="mongodb://localhost:27018",
|
|
13
|
-
help='The URL of the MongoDB, format: mongodb://host:port',
|
|
14
|
-
type=DatabaseParamType(),
|
|
15
|
-
required=True)
|
|
16
|
-
def processor_server_cli(processor_name: str, address: str, database: str):
|
|
17
|
-
"""
|
|
18
|
-
Start Processor Server
|
|
19
|
-
(standalone REST API OCR-D processor)
|
|
20
|
-
"""
|
|
21
|
-
try:
|
|
22
|
-
# Note, the address is already validated with the type field
|
|
23
|
-
host, port = address.split(':')
|
|
24
|
-
processor_server = ProcessorServer(
|
|
25
|
-
mongodb_addr=database,
|
|
26
|
-
processor_name=processor_name,
|
|
27
|
-
processor_class=None # For readability purposes assigned here
|
|
28
|
-
)
|
|
29
|
-
processor_server.run_server(host=host, port=int(port))
|
|
30
|
-
except Exception as e:
|
|
31
|
-
raise Exception("Processor server has failed with error") from e
|
ocrd_network/models/ocrd_tool.py
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
from pydantic import BaseModel
|
|
2
|
-
from typing import List, Optional
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class PYOcrdTool(BaseModel):
|
|
6
|
-
executable: str
|
|
7
|
-
categories: List[str]
|
|
8
|
-
description: str
|
|
9
|
-
input_file_grp: List[str]
|
|
10
|
-
output_file_grp: Optional[List[str]]
|
|
11
|
-
steps: List[str]
|
|
12
|
-
parameters: Optional[dict] = None
|