trustgraph-cli 2.1.0__tar.gz → 2.1.1__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.
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/PKG-INFO +1 -1
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/pyproject.toml +0 -2
- trustgraph_cli-2.1.1/trustgraph/cli_version.py +1 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph_cli.egg-info/PKG-INFO +1 -1
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph_cli.egg-info/SOURCES.txt +0 -2
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph_cli.egg-info/entry_points.txt +0 -2
- trustgraph_cli-2.1.0/trustgraph/cli/load_pdf.py +0 -200
- trustgraph_cli-2.1.0/trustgraph/cli/load_text.py +0 -205
- trustgraph_cli-2.1.0/trustgraph/cli_version.py +0 -1
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/README.md +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/setup.cfg +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/__init__.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/add_library_document.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/delete_collection.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/delete_config_item.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/delete_flow_blueprint.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/delete_kg_core.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/delete_mcp_tool.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/delete_tool.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/dump_msgpack.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/dump_queues.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/get_config_item.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/get_flow_blueprint.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/get_kg_core.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/graph_to_turtle.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/init_pulsar_manager.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/init_trustgraph.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_agent.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_document_embeddings.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_document_rag.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_embeddings.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_graph_embeddings.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_graph_rag.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_llm.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_mcp_tool.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_nlp_query.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_prompt.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_row_embeddings.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_rows_query.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/invoke_structured_query.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/list_collections.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/list_config_items.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/load_doc_embeds.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/load_kg_core.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/load_knowledge.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/load_sample_documents.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/load_structured_data.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/load_turtle.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/put_config_item.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/put_flow_blueprint.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/put_kg_core.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/remove_library_document.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/save_doc_embeds.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/set_collection.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/set_mcp_tool.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/set_prompt.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/set_token_costs.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/set_tool.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_config.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_flow_blueprints.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_flow_state.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_flows.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_graph.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_kg_cores.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_library_documents.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_library_processing.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_mcp_tools.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_parameter_types.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_processor_state.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_prompts.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_token_costs.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_token_rate.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/show_tools.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/start_flow.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/start_library_processing.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/stop_flow.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/stop_library_processing.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/unload_kg_core.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph/cli/verify_system_status.py +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph_cli.egg-info/dependency_links.txt +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph_cli.egg-info/requires.txt +0 -0
- {trustgraph_cli-2.1.0 → trustgraph_cli-2.1.1}/trustgraph_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trustgraph-cli
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
|
|
5
5
|
Author-email: "trustgraph.ai" <security@trustgraph.ai>
|
|
6
6
|
Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
|
|
@@ -54,9 +54,7 @@ tg-invoke-prompt = "trustgraph.cli.invoke_prompt:main"
|
|
|
54
54
|
tg-invoke-structured-query = "trustgraph.cli.invoke_structured_query:main"
|
|
55
55
|
tg-load-doc-embeds = "trustgraph.cli.load_doc_embeds:main"
|
|
56
56
|
tg-load-kg-core = "trustgraph.cli.load_kg_core:main"
|
|
57
|
-
tg-load-pdf = "trustgraph.cli.load_pdf:main"
|
|
58
57
|
tg-load-sample-documents = "trustgraph.cli.load_sample_documents:main"
|
|
59
|
-
tg-load-text = "trustgraph.cli.load_text:main"
|
|
60
58
|
tg-load-turtle = "trustgraph.cli.load_turtle:main"
|
|
61
59
|
tg-load-knowledge = "trustgraph.cli.load_knowledge:main"
|
|
62
60
|
tg-load-structured-data = "trustgraph.cli.load_structured_data:main"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.1.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trustgraph-cli
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
|
|
5
5
|
Author-email: "trustgraph.ai" <security@trustgraph.ai>
|
|
6
6
|
Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
|
|
@@ -35,10 +35,8 @@ trustgraph/cli/list_config_items.py
|
|
|
35
35
|
trustgraph/cli/load_doc_embeds.py
|
|
36
36
|
trustgraph/cli/load_kg_core.py
|
|
37
37
|
trustgraph/cli/load_knowledge.py
|
|
38
|
-
trustgraph/cli/load_pdf.py
|
|
39
38
|
trustgraph/cli/load_sample_documents.py
|
|
40
39
|
trustgraph/cli/load_structured_data.py
|
|
41
|
-
trustgraph/cli/load_text.py
|
|
42
40
|
trustgraph/cli/load_turtle.py
|
|
43
41
|
trustgraph/cli/put_config_item.py
|
|
44
42
|
trustgraph/cli/put_flow_blueprint.py
|
|
@@ -31,10 +31,8 @@ tg-list-config-items = trustgraph.cli.list_config_items:main
|
|
|
31
31
|
tg-load-doc-embeds = trustgraph.cli.load_doc_embeds:main
|
|
32
32
|
tg-load-kg-core = trustgraph.cli.load_kg_core:main
|
|
33
33
|
tg-load-knowledge = trustgraph.cli.load_knowledge:main
|
|
34
|
-
tg-load-pdf = trustgraph.cli.load_pdf:main
|
|
35
34
|
tg-load-sample-documents = trustgraph.cli.load_sample_documents:main
|
|
36
35
|
tg-load-structured-data = trustgraph.cli.load_structured_data:main
|
|
37
|
-
tg-load-text = trustgraph.cli.load_text:main
|
|
38
36
|
tg-load-turtle = trustgraph.cli.load_turtle:main
|
|
39
37
|
tg-put-config-item = trustgraph.cli.put_config_item:main
|
|
40
38
|
tg-put-flow-blueprint = trustgraph.cli.put_flow_blueprint:main
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Loads a PDF document into TrustGraph processing by directing to
|
|
3
|
-
the pdf-decoder queue.
|
|
4
|
-
Consider using tg-add-library-document to load
|
|
5
|
-
a document, followed by tg-start-library-processing to initiate processing.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
import hashlib
|
|
9
|
-
import argparse
|
|
10
|
-
import os
|
|
11
|
-
import time
|
|
12
|
-
import uuid
|
|
13
|
-
|
|
14
|
-
from trustgraph.api import Api
|
|
15
|
-
from trustgraph.knowledge import hash, to_uri
|
|
16
|
-
from trustgraph.knowledge import PREF_PUBEV, PREF_DOC, PREF_ORG
|
|
17
|
-
from trustgraph.knowledge import Organization, PublicationEvent
|
|
18
|
-
from trustgraph.knowledge import DigitalDocument
|
|
19
|
-
|
|
20
|
-
default_url = os.getenv("TRUSTGRAPH_URL", 'http://localhost:8088/')
|
|
21
|
-
default_user = 'trustgraph'
|
|
22
|
-
default_collection = 'default'
|
|
23
|
-
|
|
24
|
-
class Loader:
|
|
25
|
-
|
|
26
|
-
def __init__(
|
|
27
|
-
self,
|
|
28
|
-
url,
|
|
29
|
-
flow_id,
|
|
30
|
-
user,
|
|
31
|
-
collection,
|
|
32
|
-
metadata,
|
|
33
|
-
):
|
|
34
|
-
|
|
35
|
-
self.api = Api(url).flow().id(flow_id)
|
|
36
|
-
|
|
37
|
-
self.user = user
|
|
38
|
-
self.collection = collection
|
|
39
|
-
self.metadata = metadata
|
|
40
|
-
|
|
41
|
-
def load(self, files):
|
|
42
|
-
|
|
43
|
-
for file in files:
|
|
44
|
-
self.load_file(file)
|
|
45
|
-
|
|
46
|
-
def load_file(self, file):
|
|
47
|
-
|
|
48
|
-
try:
|
|
49
|
-
|
|
50
|
-
path = file
|
|
51
|
-
data = open(path, "rb").read()
|
|
52
|
-
|
|
53
|
-
# Create a SHA256 hash from the data
|
|
54
|
-
id = hash(data)
|
|
55
|
-
|
|
56
|
-
id = to_uri(PREF_DOC, id)
|
|
57
|
-
|
|
58
|
-
self.metadata.id = id
|
|
59
|
-
|
|
60
|
-
self.api.load_document(
|
|
61
|
-
document=data, id=id, metadata=self.metadata,
|
|
62
|
-
user=self.user,
|
|
63
|
-
collection=self.collection,
|
|
64
|
-
)
|
|
65
|
-
|
|
66
|
-
print(f"{file}: Loaded successfully.")
|
|
67
|
-
|
|
68
|
-
except Exception as e:
|
|
69
|
-
print(f"{file}: Failed: {str(e)}", flush=True)
|
|
70
|
-
raise e
|
|
71
|
-
|
|
72
|
-
def main():
|
|
73
|
-
|
|
74
|
-
parser = argparse.ArgumentParser(
|
|
75
|
-
prog='tg-load-pdf',
|
|
76
|
-
description=__doc__,
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
parser.add_argument(
|
|
80
|
-
'-u', '--url',
|
|
81
|
-
default=default_url,
|
|
82
|
-
help=f'API URL (default: {default_url})',
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
parser.add_argument(
|
|
86
|
-
'-f', '--flow-id',
|
|
87
|
-
default="default",
|
|
88
|
-
help=f'Flow ID (default: default)'
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
parser.add_argument(
|
|
92
|
-
'-U', '--user',
|
|
93
|
-
default=default_user,
|
|
94
|
-
help=f'User ID (default: {default_user})'
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
parser.add_argument(
|
|
98
|
-
'-C', '--collection',
|
|
99
|
-
default=default_collection,
|
|
100
|
-
help=f'Collection ID (default: {default_collection})'
|
|
101
|
-
)
|
|
102
|
-
|
|
103
|
-
parser.add_argument(
|
|
104
|
-
'--name', help=f'Document name'
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
parser.add_argument(
|
|
108
|
-
'--description', help=f'Document description'
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
parser.add_argument(
|
|
112
|
-
'--copyright-notice', help=f'Copyright notice'
|
|
113
|
-
)
|
|
114
|
-
|
|
115
|
-
parser.add_argument(
|
|
116
|
-
'--copyright-holder', help=f'Copyright holder'
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
parser.add_argument(
|
|
120
|
-
'--copyright-year', help=f'Copyright year'
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
parser.add_argument(
|
|
124
|
-
'--license', help=f'Copyright license'
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
parser.add_argument(
|
|
128
|
-
'--publication-organization', help=f'Publication organization'
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
parser.add_argument(
|
|
132
|
-
'--publication-description', help=f'Publication description'
|
|
133
|
-
)
|
|
134
|
-
|
|
135
|
-
parser.add_argument(
|
|
136
|
-
'--publication-date', help=f'Publication date'
|
|
137
|
-
)
|
|
138
|
-
|
|
139
|
-
parser.add_argument(
|
|
140
|
-
'--document-url', help=f'Document URL'
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
parser.add_argument(
|
|
144
|
-
'--keyword', nargs='+', help=f'Keyword'
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
parser.add_argument(
|
|
148
|
-
'--identifier', '--id', help=f'Document ID'
|
|
149
|
-
)
|
|
150
|
-
|
|
151
|
-
parser.add_argument(
|
|
152
|
-
'files', nargs='+',
|
|
153
|
-
help=f'File to load'
|
|
154
|
-
)
|
|
155
|
-
|
|
156
|
-
args = parser.parse_args()
|
|
157
|
-
|
|
158
|
-
try:
|
|
159
|
-
|
|
160
|
-
document = DigitalDocument(
|
|
161
|
-
id,
|
|
162
|
-
name=args.name,
|
|
163
|
-
description=args.description,
|
|
164
|
-
copyright_notice=args.copyright_notice,
|
|
165
|
-
copyright_holder=args.copyright_holder,
|
|
166
|
-
copyright_year=args.copyright_year,
|
|
167
|
-
license=args.license,
|
|
168
|
-
url=args.document_url,
|
|
169
|
-
keywords=args.keyword,
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
if args.publication_organization:
|
|
173
|
-
org = Organization(
|
|
174
|
-
id=to_uri(PREF_ORG, hash(args.publication_organization)),
|
|
175
|
-
name=args.publication_organization,
|
|
176
|
-
)
|
|
177
|
-
document.publication = PublicationEvent(
|
|
178
|
-
id = to_uri(PREF_PUBEV, str(uuid.uuid4())),
|
|
179
|
-
organization=org,
|
|
180
|
-
description=args.publication_description,
|
|
181
|
-
start_date=args.publication_date,
|
|
182
|
-
end_date=args.publication_date,
|
|
183
|
-
)
|
|
184
|
-
|
|
185
|
-
p = Loader(
|
|
186
|
-
url=args.url,
|
|
187
|
-
flow_id = args.flow_id,
|
|
188
|
-
user=args.user,
|
|
189
|
-
collection=args.collection,
|
|
190
|
-
metadata=document,
|
|
191
|
-
)
|
|
192
|
-
|
|
193
|
-
p.load(args.files)
|
|
194
|
-
|
|
195
|
-
except Exception as e:
|
|
196
|
-
|
|
197
|
-
print("Exception:", e, flush=True)
|
|
198
|
-
|
|
199
|
-
if __name__ == "__main__":
|
|
200
|
-
main()
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Loads a text document into TrustGraph processing by directing to a text
|
|
3
|
-
loader queue.
|
|
4
|
-
Consider using tg-add-library-document to load
|
|
5
|
-
a document, followed by tg-start-library-processing to initiate processing.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
import pulsar
|
|
9
|
-
from pulsar.schema import JsonSchema
|
|
10
|
-
import hashlib
|
|
11
|
-
import argparse
|
|
12
|
-
import os
|
|
13
|
-
import time
|
|
14
|
-
import uuid
|
|
15
|
-
|
|
16
|
-
from trustgraph.api import Api
|
|
17
|
-
from trustgraph.knowledge import hash, to_uri
|
|
18
|
-
from trustgraph.knowledge import PREF_PUBEV, PREF_DOC, PREF_ORG
|
|
19
|
-
from trustgraph.knowledge import Organization, PublicationEvent
|
|
20
|
-
from trustgraph.knowledge import DigitalDocument
|
|
21
|
-
|
|
22
|
-
default_url = os.getenv("TRUSTGRAPH_URL", 'http://localhost:8088/')
|
|
23
|
-
default_user = 'trustgraph'
|
|
24
|
-
default_collection = 'default'
|
|
25
|
-
|
|
26
|
-
class Loader:
|
|
27
|
-
|
|
28
|
-
def __init__(
|
|
29
|
-
self,
|
|
30
|
-
url,
|
|
31
|
-
flow_id,
|
|
32
|
-
user,
|
|
33
|
-
collection,
|
|
34
|
-
metadata,
|
|
35
|
-
):
|
|
36
|
-
|
|
37
|
-
self.api = Api(url).flow().id(flow_id)
|
|
38
|
-
|
|
39
|
-
self.user = user
|
|
40
|
-
self.collection = collection
|
|
41
|
-
self.metadata = metadata
|
|
42
|
-
|
|
43
|
-
def load(self, files):
|
|
44
|
-
|
|
45
|
-
for file in files:
|
|
46
|
-
self.load_file(file)
|
|
47
|
-
|
|
48
|
-
def load_file(self, file):
|
|
49
|
-
|
|
50
|
-
try:
|
|
51
|
-
|
|
52
|
-
path = file
|
|
53
|
-
data = open(path, "rb").read()
|
|
54
|
-
|
|
55
|
-
# Create a SHA256 hash from the data
|
|
56
|
-
id = hash(data)
|
|
57
|
-
|
|
58
|
-
id = to_uri(PREF_DOC, id)
|
|
59
|
-
|
|
60
|
-
self.metadata.id = id
|
|
61
|
-
|
|
62
|
-
self.api.load_text(
|
|
63
|
-
text=data, id=id, metadata=self.metadata,
|
|
64
|
-
user=self.user,
|
|
65
|
-
collection=self.collection,
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
print(f"{file}: Loaded successfully.")
|
|
69
|
-
|
|
70
|
-
except Exception as e:
|
|
71
|
-
print(f"{file}: Failed: {str(e)}", flush=True)
|
|
72
|
-
raise e
|
|
73
|
-
|
|
74
|
-
def main():
|
|
75
|
-
|
|
76
|
-
parser = argparse.ArgumentParser(
|
|
77
|
-
prog='tg-load-text',
|
|
78
|
-
description=__doc__,
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
parser.add_argument(
|
|
82
|
-
'-u', '--url',
|
|
83
|
-
default=default_url,
|
|
84
|
-
help=f'API URL (default: {default_url})',
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
parser.add_argument(
|
|
88
|
-
'-f', '--flow-id',
|
|
89
|
-
default="default",
|
|
90
|
-
help=f'Flow ID (default: default)'
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
parser.add_argument(
|
|
94
|
-
'-U', '--user',
|
|
95
|
-
default=default_user,
|
|
96
|
-
help=f'User ID (default: {default_user})'
|
|
97
|
-
)
|
|
98
|
-
|
|
99
|
-
parser.add_argument(
|
|
100
|
-
'-C', '--collection',
|
|
101
|
-
default=default_collection,
|
|
102
|
-
help=f'Collection ID (default: {default_collection})'
|
|
103
|
-
)
|
|
104
|
-
|
|
105
|
-
parser.add_argument(
|
|
106
|
-
'--name', help=f'Document name'
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
parser.add_argument(
|
|
110
|
-
'--description', help=f'Document description'
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
parser.add_argument(
|
|
114
|
-
'--copyright-notice', help=f'Copyright notice'
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
parser.add_argument(
|
|
118
|
-
'--copyright-holder', help=f'Copyright holder'
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
parser.add_argument(
|
|
122
|
-
'--copyright-year', help=f'Copyright year'
|
|
123
|
-
)
|
|
124
|
-
|
|
125
|
-
parser.add_argument(
|
|
126
|
-
'--license', help=f'Copyright license'
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
parser.add_argument(
|
|
130
|
-
'--publication-organization', help=f'Publication organization'
|
|
131
|
-
)
|
|
132
|
-
|
|
133
|
-
parser.add_argument(
|
|
134
|
-
'--publication-description', help=f'Publication description'
|
|
135
|
-
)
|
|
136
|
-
|
|
137
|
-
parser.add_argument(
|
|
138
|
-
'--publication-date', help=f'Publication date'
|
|
139
|
-
)
|
|
140
|
-
|
|
141
|
-
parser.add_argument(
|
|
142
|
-
'--document-url', help=f'Document URL'
|
|
143
|
-
)
|
|
144
|
-
|
|
145
|
-
parser.add_argument(
|
|
146
|
-
'--keyword', nargs='+', help=f'Keyword'
|
|
147
|
-
)
|
|
148
|
-
|
|
149
|
-
parser.add_argument(
|
|
150
|
-
'--identifier', '--id', help=f'Document ID'
|
|
151
|
-
)
|
|
152
|
-
|
|
153
|
-
parser.add_argument(
|
|
154
|
-
'files', nargs='+',
|
|
155
|
-
help=f'File to load'
|
|
156
|
-
)
|
|
157
|
-
|
|
158
|
-
args = parser.parse_args()
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
try:
|
|
162
|
-
|
|
163
|
-
document = DigitalDocument(
|
|
164
|
-
id,
|
|
165
|
-
name=args.name,
|
|
166
|
-
description=args.description,
|
|
167
|
-
copyright_notice=args.copyright_notice,
|
|
168
|
-
copyright_holder=args.copyright_holder,
|
|
169
|
-
copyright_year=args.copyright_year,
|
|
170
|
-
license=args.license,
|
|
171
|
-
url=args.document_url,
|
|
172
|
-
keywords=args.keyword,
|
|
173
|
-
)
|
|
174
|
-
|
|
175
|
-
if args.publication_organization:
|
|
176
|
-
org = Organization(
|
|
177
|
-
id=to_uri(PREF_ORG, hash(args.publication_organization)),
|
|
178
|
-
name=args.publication_organization,
|
|
179
|
-
)
|
|
180
|
-
document.publication = PublicationEvent(
|
|
181
|
-
id = to_uri(PREF_PUBEV, str(uuid.uuid4())),
|
|
182
|
-
organization=org,
|
|
183
|
-
description=args.publication_description,
|
|
184
|
-
start_date=args.publication_date,
|
|
185
|
-
end_date=args.publication_date,
|
|
186
|
-
)
|
|
187
|
-
|
|
188
|
-
p = Loader(
|
|
189
|
-
url = args.url,
|
|
190
|
-
flow_id = args.flow_id,
|
|
191
|
-
user = args.user,
|
|
192
|
-
collection = args.collection,
|
|
193
|
-
metadata = document,
|
|
194
|
-
)
|
|
195
|
-
|
|
196
|
-
p.load(args.files)
|
|
197
|
-
|
|
198
|
-
print("All done.")
|
|
199
|
-
|
|
200
|
-
except Exception as e:
|
|
201
|
-
|
|
202
|
-
print("Exception:", e, flush=True)
|
|
203
|
-
|
|
204
|
-
if __name__ == "__main__":
|
|
205
|
-
main()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.1.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|