kodexa 6.0.180__tar.gz → 6.0.184__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kodexa-6.0.180 → kodexa-6.0.184}/PKG-INFO +1 -1
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/model/model.py +0 -10
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/pipeline/pipeline.py +0 -4
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/spatial/azure_models.py +18 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/pyproject.toml +1 -1
- {kodexa-6.0.180 → kodexa-6.0.184}/setup.py +1 -1
- {kodexa-6.0.180 → kodexa-6.0.184}/LICENSE +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/README.md +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/assistant/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/assistant/assistant.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/connectors/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/connectors/connectors.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/model/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/model/base.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/model/objects.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/model/persistence.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/pipeline/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/platform/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/platform/client.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/platform/kodexa.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/ast.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/core.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/lexrules.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/lextab.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/lextab.pyi +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/parserules.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/parserules.pyi +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/parsetab.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/selectors/parsetab.pyi +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/spatial/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/spatial/bbox_common.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/spatial/table_form_common.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/steps/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/steps/common.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/testing/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/testing/test_components.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/testing/test_utils.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/training/__init__.py +0 -0
- {kodexa-6.0.180 → kodexa-6.0.184}/kodexa/training/train_utils.py +0 -0
@@ -2016,10 +2016,7 @@ class Document(object):
|
|
2016
2016
|
'content_node': self.content_node.to_dict() if self.content_node else None,
|
2017
2017
|
'source': clean_none_values(dataclasses.asdict(self.source)),
|
2018
2018
|
'mixins': self._mixins,
|
2019
|
-
'taxonomies': self.taxonomies,
|
2020
2019
|
'classes': [content_class.to_dict() for content_class in self.classes],
|
2021
|
-
'exceptions': self.exceptions,
|
2022
|
-
'log': self.log,
|
2023
2020
|
'labels': self.labels,
|
2024
2021
|
'uuid': self.uuid}
|
2025
2022
|
|
@@ -2039,8 +2036,6 @@ class Document(object):
|
|
2039
2036
|
new_document = Document(DocumentMetadata(doc_dict['metadata']))
|
2040
2037
|
new_document.version = doc_dict['version'] if 'version' in doc_dict and doc_dict[
|
2041
2038
|
'version'] else Document.PREVIOUS_VERSION # some older docs don't have a version or it's None
|
2042
|
-
new_document.log = doc_dict['log'] if 'log' in doc_dict else []
|
2043
|
-
new_document.exceptions = doc_dict['exceptions'] if 'exceptions' in doc_dict else []
|
2044
2039
|
new_document.uuid = doc_dict['uuid'] if 'uuid' in doc_dict else str(
|
2045
2040
|
uuid.uuid5(uuid.NAMESPACE_DNS, 'kodexa.com'))
|
2046
2041
|
|
@@ -2051,11 +2046,6 @@ class Document(object):
|
|
2051
2046
|
new_document.source = SourceMetadata.from_dict(doc_dict['source'])
|
2052
2047
|
if 'labels' in doc_dict and doc_dict['labels']:
|
2053
2048
|
new_document.labels = doc_dict['labels']
|
2054
|
-
if 'taxomomies' in doc_dict and doc_dict['taxomomies']:
|
2055
|
-
new_document.labels = doc_dict['taxomomies']
|
2056
|
-
if 'classes' in doc_dict and doc_dict['classes']:
|
2057
|
-
new_document.classes = [ContentClassification.from_dict(content_class) for content_class in
|
2058
|
-
doc_dict['classes']]
|
2059
2049
|
|
2060
2050
|
new_document.get_persistence().update_metadata()
|
2061
2051
|
return new_document
|
@@ -603,7 +603,6 @@ class PipelineStatistics:
|
|
603
603
|
|
604
604
|
def __init__(self):
|
605
605
|
self.documents_processed = 0
|
606
|
-
self.document_exceptions = 0
|
607
606
|
|
608
607
|
def processed_document(self, document):
|
609
608
|
"""Update statistics based on this document completing processing
|
@@ -615,6 +614,3 @@ class PipelineStatistics:
|
|
615
614
|
|
616
615
|
"""
|
617
616
|
self.documents_processed += 1
|
618
|
-
|
619
|
-
if document and document.exceptions:
|
620
|
-
self.document_exceptions += 1
|
@@ -68,6 +68,8 @@ def create_kddb_from_azure(azure_data, keep_azure_lines=True, overlap_percentage
|
|
68
68
|
if issue_found:
|
69
69
|
return None
|
70
70
|
|
71
|
+
|
72
|
+
|
71
73
|
document.content_node = root_node
|
72
74
|
document.add_mixin('spatial')
|
73
75
|
|
@@ -231,6 +233,22 @@ def get_azure_next_line(document_lines, ref_line, direction='right', overlap_per
|
|
231
233
|
|
232
234
|
return sorted_next_up_lines[0]
|
233
235
|
|
236
|
+
elif direction == 'up_left':
|
237
|
+
# Get all the lines above of the cell, where the x is to the left of the cell
|
238
|
+
up_left_lines = [up_line for up_line in possible_lines if
|
239
|
+
up_line.get_bbox()[1] >= ref_bbox[3] and
|
240
|
+
ref_bbox[2] > up_line.get_x() and ref_bbox[0] - up_line.get_bbox()[2] <= 0.75]
|
241
|
+
|
242
|
+
if not up_left_lines:
|
243
|
+
return None
|
244
|
+
|
245
|
+
# Sort by y (decreasing since 0 is at the bottom of the page)
|
246
|
+
sorted_next_up_left_lines = [up_left_lines[0]]
|
247
|
+
[sorted_next_up_left_lines.insert(0, up_left_line) for up_left_line in up_left_lines
|
248
|
+
if up_left_line.get_bbox()[1] < sorted_next_up_left_lines[0].get_bbox()[1]]
|
249
|
+
|
250
|
+
return sorted_next_up_left_lines[0]
|
251
|
+
|
234
252
|
return None
|
235
253
|
|
236
254
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "kodexa"
|
3
|
-
version = "6.0.
|
3
|
+
version = "6.0.184"
|
4
4
|
description = "Python SDK for the Kodexa Platform"
|
5
5
|
authors = ["Austin Redenbaugh <austin@kodexa.com>", "Philip Dodds <philip@kodexa.com>", "Romar Cablao <rcablao@kodexa.com>", "Amadea Paula Dodds <amadeapaula@kodexa.com>"]
|
6
6
|
readme = "README.md"
|
@@ -37,7 +37,7 @@ install_requires = \
|
|
37
37
|
|
38
38
|
setup_kwargs = {
|
39
39
|
'name': 'kodexa',
|
40
|
-
'version': '6.0.
|
40
|
+
'version': '6.0.184',
|
41
41
|
'description': 'Python SDK for the Kodexa Platform',
|
42
42
|
'long_description': '# Kodexa\n\n[](https://github.com/kodexa-ai/kodexa/actions/workflows/main.yml)\n\n\n\nKodexa is a platform for building intelligent document processing pipelines. It is a set of tools and services that\nallow you to build a pipeline that can take a document, extract the content, and then process it to extract the\ninformation you need.\n\nIt is built on a set of core principles:\n\n* **Document Centric** - Kodexa is built around the idea of a document. A document is a collection of content\n nodes that are connected together. This is a powerful model that allows you to build pipelines that can\n extract content from a wide range of sources.\n\n* **Pipeline Oriented** - Kodexa is built around the idea of a pipeline. A pipeline is a series of steps that\n can be executed on a document. This allows you to build a pipeline that can extract content from a wide range\n of sources.\n\n* **Extensible** - Kodexa is built around the idea of a pipeline. A pipeline is a series of steps that can be executed\n on a document. This allows you to build a pipeline that can extract content from a wide range of sources.\n\n* **Label Driven** - Kodexa focuses on the idea of labels. Labels are a way to identify content within a document\n and then use that content to drive the processing of the document.\n\n# Python SDK\n\nThis repository contains the Python SDK for Kodexa. The SDK is the primary way to interact with Kodexa. It allows you to\ndefine actions, models, and pipelines that can be executed on Kodexa. It also includes a complete SDK client for\nworking with a Kodexa platform instance.\n\n## Documentation & Examples\n\nDocumentation is available at the [Kodexa Documentation Portal](https://docs.kodexa.com)\n\n## Current Development\n\nThe main branch is 6.0 which is a production release.\n\n## Set-up\n\nWe use poetry to manage our dependencies, so you can install them with:\n\n poetry install\n\nYou can then run the tests with:\n\n poetry run pytest\n\n# Contributing\n\nWe welcome contributions to the Kodexa platform. Please see our [contributing guide](CONTRIBUTING.md) for more details.\n\n# License\n\nApache 2.0\n',
|
43
43
|
'author': 'Austin Redenbaugh',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|