glam4cm 0.1.1__py3-none-any.whl → 1.0.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.
- glam4cm/__init__.py +2 -1
- glam4cm/data_loading/data.py +90 -146
- glam4cm/data_loading/encoding.py +17 -6
- glam4cm/data_loading/graph_dataset.py +192 -57
- glam4cm/data_loading/metadata.py +1 -1
- glam4cm/data_loading/models_dataset.py +42 -18
- glam4cm/downstream_tasks/bert_edge_classification.py +49 -22
- glam4cm/downstream_tasks/bert_graph_classification.py +44 -14
- glam4cm/downstream_tasks/bert_graph_classification_comp.py +47 -24
- glam4cm/downstream_tasks/bert_link_prediction.py +46 -26
- glam4cm/downstream_tasks/bert_node_classification.py +127 -89
- glam4cm/downstream_tasks/cm_gpt_node_classification.py +61 -15
- glam4cm/downstream_tasks/common_args.py +32 -4
- glam4cm/downstream_tasks/gnn_edge_classification.py +24 -7
- glam4cm/downstream_tasks/gnn_graph_cls.py +19 -6
- glam4cm/downstream_tasks/gnn_link_prediction.py +25 -13
- glam4cm/downstream_tasks/gnn_node_classification.py +19 -7
- glam4cm/downstream_tasks/utils.py +16 -2
- glam4cm/embeddings/bert.py +1 -1
- glam4cm/embeddings/common.py +7 -4
- glam4cm/encoding/encoders.py +1 -1
- glam4cm/lang2graph/archimate.py +0 -5
- glam4cm/lang2graph/common.py +99 -41
- glam4cm/lang2graph/ecore.py +1 -2
- glam4cm/lang2graph/ontouml.py +8 -7
- glam4cm/models/gnn_layers.py +20 -6
- glam4cm/models/hf.py +2 -2
- glam4cm/run.py +12 -7
- glam4cm/run_conf_v2.py +405 -0
- glam4cm/run_configs.py +70 -106
- glam4cm/run_confs.py +41 -0
- glam4cm/settings.py +15 -2
- glam4cm/tokenization/special_tokens.py +23 -1
- glam4cm/tokenization/utils.py +23 -4
- glam4cm/trainers/cm_gpt_trainer.py +1 -1
- glam4cm/trainers/gnn_edge_classifier.py +12 -1
- glam4cm/trainers/gnn_graph_classifier.py +12 -5
- glam4cm/trainers/gnn_link_predictor.py +18 -3
- glam4cm/trainers/gnn_link_predictor_v2.py +146 -0
- glam4cm/trainers/gnn_trainer.py +8 -0
- glam4cm/trainers/metrics.py +1 -1
- glam4cm/utils.py +265 -2
- {glam4cm-0.1.1.dist-info → glam4cm-1.0.0.dist-info}/METADATA +3 -2
- glam4cm-1.0.0.dist-info/RECORD +75 -0
- {glam4cm-0.1.1.dist-info → glam4cm-1.0.0.dist-info}/WHEEL +1 -1
- glam4cm-0.1.1.dist-info/RECORD +0 -72
- {glam4cm-0.1.1.dist-info → glam4cm-1.0.0.dist-info}/entry_points.txt +0 -0
- {glam4cm-0.1.1.dist-info → glam4cm-1.0.0.dist-info/licenses}/LICENSE +0 -0
- {glam4cm-0.1.1.dist-info → glam4cm-1.0.0.dist-info}/top_level.txt +0 -0
glam4cm/utils.py
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
from argparse import ArgumentParser
|
2
|
+
from ast import Dict
|
2
3
|
import random
|
3
4
|
import numpy as np
|
4
5
|
import torch
|
5
6
|
import os
|
6
7
|
import fnmatch
|
7
8
|
import json
|
8
|
-
from typing import List
|
9
9
|
import xmltodict
|
10
10
|
from torch_geometric.data import Data
|
11
11
|
import hashlib
|
12
12
|
import networkx as nx
|
13
13
|
from collections import deque
|
14
|
+
import struct
|
15
|
+
from tensorboardX.proto import event_pb2
|
16
|
+
from collections import deque
|
17
|
+
from typing import Any, List, Tuple, Optional, Set
|
18
|
+
import networkx as nx
|
19
|
+
|
20
|
+
|
14
21
|
|
15
22
|
|
16
23
|
|
@@ -191,4 +198,260 @@ def count_total_lines_of_code(directory):
|
|
191
198
|
|
192
199
|
|
193
200
|
def snake_to_title(snake_str: str):
|
194
|
-
return snake_str.replace("_", " ").title()
|
201
|
+
return snake_str.replace("_", " ").title()
|
202
|
+
|
203
|
+
|
204
|
+
def parse_event_file(filepath):
|
205
|
+
"""
|
206
|
+
Generator that yields `Event` protocol buffer messages
|
207
|
+
from a single TensorBoard event file, using TFRecord-like
|
208
|
+
parsing without TensorFlow.
|
209
|
+
"""
|
210
|
+
with open(filepath, 'rb') as f:
|
211
|
+
while True:
|
212
|
+
# 1) Read the length of the next record (8 bytes, little-endian).
|
213
|
+
header = f.read(8)
|
214
|
+
if len(header) < 8:
|
215
|
+
break # no more data
|
216
|
+
|
217
|
+
record_length = struct.unpack('Q', header)[0]
|
218
|
+
|
219
|
+
# 2) Skip the 4-byte length CRC (unused here).
|
220
|
+
_ = f.read(4)
|
221
|
+
|
222
|
+
# 3) Read the actual record data.
|
223
|
+
record_data = f.read(record_length)
|
224
|
+
|
225
|
+
# 4) Skip the 4-byte data CRC.
|
226
|
+
_ = f.read(4)
|
227
|
+
|
228
|
+
if len(record_data) < record_length:
|
229
|
+
# Incomplete record at end of file
|
230
|
+
break
|
231
|
+
|
232
|
+
# Parse the record into an Event proto.
|
233
|
+
event = event_pb2.Event()
|
234
|
+
event.ParseFromString(record_data)
|
235
|
+
yield event
|
236
|
+
|
237
|
+
|
238
|
+
def get_max_scalars_with_step_epoch(logdir, epoch_tag="eval/epoch"):
|
239
|
+
"""
|
240
|
+
Scans all `events.out.tfevents.*` files in `logdir` and returns a dict:
|
241
|
+
{
|
242
|
+
scalar_tag: {
|
243
|
+
"max_value": float,
|
244
|
+
"step": int or None,
|
245
|
+
"epoch": int or float or None
|
246
|
+
},
|
247
|
+
...
|
248
|
+
}
|
249
|
+
By default, it looks for an 'eval/epoch' scalar to determine the epoch.
|
250
|
+
If that scalar isn't found, epoch will be None.
|
251
|
+
"""
|
252
|
+
max_scalars = {}
|
253
|
+
|
254
|
+
# Gather all event files in the directory
|
255
|
+
event_files = [
|
256
|
+
os.path.join(logdir, f)
|
257
|
+
for f in os.listdir(logdir)
|
258
|
+
if f.startswith("events.out.tfevents")
|
259
|
+
]
|
260
|
+
|
261
|
+
for filepath in event_files:
|
262
|
+
for event in parse_event_file(filepath):
|
263
|
+
# In proto3, "step" is always present as an int64.
|
264
|
+
# If it's not explicitly set, it'll be 0.
|
265
|
+
step = event.step
|
266
|
+
if step == 0:
|
267
|
+
step = None # treat zero as "no step logged"
|
268
|
+
|
269
|
+
# Try to find an epoch value in the same event (if you're logging it).
|
270
|
+
epoch_val = None
|
271
|
+
if event.summary and event.summary.value:
|
272
|
+
# First pass: see if there's a dedicated epoch tag in this event
|
273
|
+
for v in event.summary.value:
|
274
|
+
if v.tag == epoch_tag and v.HasField("simple_value"):
|
275
|
+
epoch_val = v.simple_value
|
276
|
+
break
|
277
|
+
|
278
|
+
# Second pass: for each scalar, update the max if we see a bigger value
|
279
|
+
for v in event.summary.value:
|
280
|
+
if v.HasField('simple_value'):
|
281
|
+
tag = v.tag
|
282
|
+
val = v.simple_value
|
283
|
+
|
284
|
+
# Ignore the epoch tag itself; we only want other scalar tags
|
285
|
+
if tag == epoch_tag:
|
286
|
+
continue
|
287
|
+
|
288
|
+
# Update if this tag is new or if we found a bigger value
|
289
|
+
if (tag not in max_scalars) or (val > max_scalars[tag]["max_value"]):
|
290
|
+
max_scalars[tag] = {
|
291
|
+
"max_value": val,
|
292
|
+
"step": step,
|
293
|
+
"epoch": epoch_val
|
294
|
+
}
|
295
|
+
|
296
|
+
return max_scalars
|
297
|
+
|
298
|
+
|
299
|
+
def update_config_results(logs_dir='logs'):
|
300
|
+
|
301
|
+
logs_dir = "logs"
|
302
|
+
|
303
|
+
def is_tf_dir(dir_path):
|
304
|
+
return any([f.startswith("events.out.tfevents") for f in os.listdir(dir_path)])
|
305
|
+
|
306
|
+
graph_data_dir = "datasets/graph_data"
|
307
|
+
dataset_config = dict()
|
308
|
+
|
309
|
+
for dataset_dir in os.listdir(graph_data_dir):
|
310
|
+
if dataset_dir not in ['ecore_555', 'eamodelset', 'modelset', 'ontouml']:
|
311
|
+
continue
|
312
|
+
with open(os.path.join(graph_data_dir, dataset_dir, 'configs.json')) as f:
|
313
|
+
dataset_config[dataset_dir] = json.load(f)
|
314
|
+
|
315
|
+
|
316
|
+
for dataset_dir in os.listdir(logs_dir):
|
317
|
+
if dataset_dir not in ['ecore_555', 'eamodelset', 'modelset', 'ontouml']:
|
318
|
+
continue
|
319
|
+
for task in os.listdir(os.path.join(logs_dir, dataset_dir)):
|
320
|
+
task_dir = os.path.join(logs_dir, dataset_dir, task)
|
321
|
+
if not os.path.isdir(task_dir) or "_comp_" in task:
|
322
|
+
continue
|
323
|
+
|
324
|
+
for root, dirs, _ in os.walk(task_dir):
|
325
|
+
for dir_name in dirs:
|
326
|
+
dir_path = os.path.join(root, dir_name)
|
327
|
+
if is_tf_dir(dir_path):
|
328
|
+
|
329
|
+
config_id = dir_name.split(os.sep)[-1]
|
330
|
+
|
331
|
+
if "_" in config_id:
|
332
|
+
config_id = config_id.split("_")[0]
|
333
|
+
|
334
|
+
|
335
|
+
assert config_id in dataset_config[dataset_dir], f"Config {config_id} not found in {dataset_dir}"
|
336
|
+
config = dataset_config[dataset_dir][config_id]
|
337
|
+
config_results = get_max_scalars_with_step_epoch(dir_path)
|
338
|
+
|
339
|
+
if 'results' not in config:
|
340
|
+
config['results'] = list()
|
341
|
+
|
342
|
+
config['results'].append(config_results)
|
343
|
+
config['task'] = task
|
344
|
+
|
345
|
+
|
346
|
+
for dataset_dir in os.listdir(graph_data_dir):
|
347
|
+
if dataset_dir not in ['ecore_555', 'eamodelset', 'modelset', 'ontouml']:
|
348
|
+
continue
|
349
|
+
with open(os.path.join(graph_data_dir, dataset_dir, 'configs.json'), 'w') as f:
|
350
|
+
json.dump(dataset_config[dataset_dir], f)
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
def set_encoded_labels(train_ds, test_ds):
|
355
|
+
train_labels = train_ds.inputs['labels']
|
356
|
+
test_labels = test_ds.inputs['labels']
|
357
|
+
all_labels = torch.cat([train_labels, test_labels])
|
358
|
+
unique_labels = torch.unique(all_labels)
|
359
|
+
label_to_encoded = dict()
|
360
|
+
encoded_to_label = dict()
|
361
|
+
for i, label in enumerate(unique_labels):
|
362
|
+
label_to_encoded[label.item()] = i
|
363
|
+
encoded_to_label[i] = label.item()
|
364
|
+
|
365
|
+
train_ds.inputs['labels'] = torch.tensor([label_to_encoded[label.item()] for label in train_labels])
|
366
|
+
test_ds.inputs['labels'] = torch.tensor([label_to_encoded[label.item()] for label in test_labels])
|
367
|
+
|
368
|
+
|
369
|
+
def set_torch_encoding_labels(dataset: list, cls_label, exclude_labels: List[str] = None):
|
370
|
+
print(f"Setting encoding labels for {cls_label}")
|
371
|
+
labels = [getattr(data, cls_label) for data in dataset]
|
372
|
+
all_labels = torch.cat(labels)
|
373
|
+
unique_labels = [label for label in torch.unique(all_labels) if label not in exclude_labels]
|
374
|
+
label_to_encoded = dict()
|
375
|
+
encoded_to_label = dict()
|
376
|
+
for i, label in enumerate(unique_labels):
|
377
|
+
label_to_encoded[label.item()] = i
|
378
|
+
encoded_to_label[i] = label.item()
|
379
|
+
|
380
|
+
for i, data in enumerate(dataset):
|
381
|
+
setattr(
|
382
|
+
data,
|
383
|
+
cls_label,
|
384
|
+
torch.tensor([label_to_encoded.get(label.item(), -1) for label in getattr(data, cls_label)])
|
385
|
+
)
|
386
|
+
|
387
|
+
print(f"Set encoding labels for {cls_label}")
|
388
|
+
|
389
|
+
|
390
|
+
def find_nodes_within_distance(
|
391
|
+
graph: nx.DiGraph,
|
392
|
+
start_node: Any,
|
393
|
+
distance: int,
|
394
|
+
exclude_edges: Optional[List[Tuple[Any, Any]]] = None
|
395
|
+
) -> List[Tuple[Any, int]]:
|
396
|
+
"""
|
397
|
+
Find all nodes reachable from start_node within a given distance,
|
398
|
+
optionally excluding specified edges.
|
399
|
+
|
400
|
+
Parameters
|
401
|
+
----------
|
402
|
+
graph : nx.DiGraph
|
403
|
+
Directed graph to traverse.
|
404
|
+
start_node : Any
|
405
|
+
Node from which to start the search.
|
406
|
+
distance : int
|
407
|
+
Maximum graph distance (number of edges) to traverse.
|
408
|
+
exclude_edges : Optional[List[Tuple[Any, Any]]]
|
409
|
+
List of directed edges to exclude, each as a (u, v) tuple.
|
410
|
+
|
411
|
+
Returns
|
412
|
+
-------
|
413
|
+
List[Tuple[Any, int]]
|
414
|
+
Sorted list of (node, distance) pairs.
|
415
|
+
"""
|
416
|
+
# Normalize exclude_edges to a set for fast lookups
|
417
|
+
excluded: Set[Tuple[Any, Any]] = set(exclude_edges or [])
|
418
|
+
|
419
|
+
# BFS initialization
|
420
|
+
queue = deque([(start_node, 0)])
|
421
|
+
visited: Dict[Any, int] = {}
|
422
|
+
|
423
|
+
while queue:
|
424
|
+
node, dist = queue.popleft()
|
425
|
+
# Only process within the allowed distance
|
426
|
+
if dist > distance:
|
427
|
+
continue
|
428
|
+
|
429
|
+
# Record the shortest distance to this node
|
430
|
+
if node not in visited or dist < visited[node]:
|
431
|
+
visited[node] = dist
|
432
|
+
|
433
|
+
# Explore neighbors if we haven't reached max distance yet
|
434
|
+
if dist < distance:
|
435
|
+
for nbr in graph.neighbors(node):
|
436
|
+
# Skip self-loops
|
437
|
+
if nbr == node:
|
438
|
+
continue
|
439
|
+
# Skip if edge is excluded
|
440
|
+
if (node, nbr) in excluded:
|
441
|
+
continue
|
442
|
+
# Skip already-visited nodes at shorter or equal distance
|
443
|
+
if nbr in visited and visited[nbr] <= dist + 1:
|
444
|
+
continue
|
445
|
+
queue.append((nbr, dist + 1))
|
446
|
+
|
447
|
+
# Return nodes sorted by distance
|
448
|
+
return sorted(visited.items(), key=lambda x: x[1])
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
def get_node_neighbours(graph, start_node, distance, exclude_edges: List[str] = None):
|
454
|
+
neighbours = find_nodes_within_distance(graph, start_node, distance, exclude_edges)
|
455
|
+
max_distance = max(distance for _, distance in neighbours)
|
456
|
+
distance = min(distance, max_distance)
|
457
|
+
return [node for node, d in neighbours if d == distance]
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: glam4cm
|
3
|
-
Version: 0.
|
3
|
+
Version: 1.0.0
|
4
4
|
Summary: Graph Neural Networks and Language Models Trainer (Separate or combined) for conceptual models
|
5
5
|
Author-email: Syed Juned Ali <syed.juned.ali@tuwien.ac.at>
|
6
6
|
License: MIT License
|
@@ -47,6 +47,7 @@ Requires-Dist: fasttext
|
|
47
47
|
Provides-Extra: dev
|
48
48
|
Requires-Dist: pytest; extra == "dev"
|
49
49
|
Requires-Dist: black; extra == "dev"
|
50
|
+
Dynamic: license-file
|
50
51
|
|
51
52
|
# glam4cm
|
52
53
|
|
@@ -0,0 +1,75 @@
|
|
1
|
+
glam4cm/__init__.py,sha256=tiiFpZvXNLMFGNr3Abo3SuW0Gfj2Wc7wBsf37zeMVbQ,180
|
2
|
+
glam4cm/run.py,sha256=vtOIbGWkUVzpZkeWzjW7N4ioCr1J_grjdNUZzQIhS0I,4259
|
3
|
+
glam4cm/run_conf_v2.py,sha256=ixs7xzoly4MGugYbs-HNY_Mizs3_Ejq8W-CXC6PTtAc,14779
|
4
|
+
glam4cm/run_configs.py,sha256=lGTrrk_3enri6geSRwMdwO7G7fIA2HNyD86Cl4BM92Y,2873
|
5
|
+
glam4cm/run_confs.py,sha256=EOI6JcJbqocpd8wkUpsvUJgPUpSrEv6C3txfprrFuW8,1327
|
6
|
+
glam4cm/settings.py,sha256=6G28EiL3S7mVdZ8ptQX5V0Oov6Ee2slbDfQZlbJEPmo,1364
|
7
|
+
glam4cm/utils.py,sha256=pciZSCsO0ae-73bLTXvIP0sfY_vOKzHZm-nus0NA7PA,15464
|
8
|
+
glam4cm/data_loading/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
+
glam4cm/data_loading/data.py,sha256=vYvALQMozAljrANdDTPutjN2C_augk8yhYVilEOv9bQ,20101
|
10
|
+
glam4cm/data_loading/encoding.py,sha256=wawEIy5e6iPPMad6t13fnE6xL7IfJE5rqEMJgGoOxRU,2798
|
11
|
+
glam4cm/data_loading/graph_dataset.py,sha256=V1Xk98LyZW-4K2ddFIWE0TozGlxJ-9YPFHMdqek1O5c,40510
|
12
|
+
glam4cm/data_loading/metadata.py,sha256=EihqDhu7pJjw8jwn7pZwTD5SVWw9Ete7XihsH8b2HIA,1793
|
13
|
+
glam4cm/data_loading/models_dataset.py,sha256=HEsMdsgp-YI15ZvNQYXYbT-G2xGmVUb-_l3IgBFeT3g,13636
|
14
|
+
glam4cm/data_loading/utils.py,sha256=GM8DRHxjeAXAZWX1ITq1QfWWVY7jwdXGhbPx8L8V_IQ,907
|
15
|
+
glam4cm/downstream_tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
|
+
glam4cm/downstream_tasks/bert_edge_classification.py,sha256=kv6eft9kY2cb0mnvZook8uyMWXEtfhJFmiWjQqQTNEU,4926
|
17
|
+
glam4cm/downstream_tasks/bert_graph_classification.py,sha256=q7Lz0eAmlVg6fNme9kNxqaWnJb_CVrwFrzTKGjfaz_A,5019
|
18
|
+
glam4cm/downstream_tasks/bert_graph_classification_comp.py,sha256=8pAM5OqHpEovh2kO6j6hGu3tScoWeUAXE9JGI_KmoW8,5956
|
19
|
+
glam4cm/downstream_tasks/bert_link_prediction.py,sha256=G5YxR41DG6VqJEM_M18u58T33VJpb-QiWdXJXF9dgpk,4554
|
20
|
+
glam4cm/downstream_tasks/bert_node_classification.py,sha256=x_MfirCakbXuhI5_KxzgOQtatL2xhb2W38FOR1G4EkQ,6214
|
21
|
+
glam4cm/downstream_tasks/cm_gpt_edge_classification.py,sha256=9VGjcFlsetndHoYrm03I1TDcw9PJin41oOBTwma6E5Y,2258
|
22
|
+
glam4cm/downstream_tasks/cm_gpt_node_classification.py,sha256=KuW92x5gVkfmYl6FnFzdO9-cKBdqm6YcHnyOf4l9oqQ,3780
|
23
|
+
glam4cm/downstream_tasks/cm_gpt_pretraining.py,sha256=qtsrvrE8t7HG9cbyiKI8bKRzzoWn-j-7Iq1UxzIf--Q,1685
|
24
|
+
glam4cm/downstream_tasks/common_args.py,sha256=3hzgzNim5cc2AdvTrcyXyQuZPYeX0h44D6y4EKa0ycY,6510
|
25
|
+
glam4cm/downstream_tasks/create_dataset.py,sha256=9ykTvvqX7f6j2zlhkU96fMrDgfLKvHQ5R9mH9pHxZ4c,1640
|
26
|
+
glam4cm/downstream_tasks/gnn_edge_classification.py,sha256=q_dwKv3KiT6NDlndNzc189hRZapH9J_46gILY6wgh58,3952
|
27
|
+
glam4cm/downstream_tasks/gnn_graph_cls.py,sha256=2hC6w2TXP_IOCNmFmljC0oq4I9ukIkn3nGMZah6XkC0,3988
|
28
|
+
glam4cm/downstream_tasks/gnn_link_prediction.py,sha256=E_MIhgJmwY0pUIhPNON25xMBQcMdMEZXJ6PNSLcrWGc,3686
|
29
|
+
glam4cm/downstream_tasks/gnn_node_classification.py,sha256=egg8Ngs9_C_p7WaTDZsMsBitrr4OWSYiSLIdc84eJuo,3658
|
30
|
+
glam4cm/downstream_tasks/tf_idf_text_classification.py,sha256=_GUYIw86YM4q417IAazMaxZDOwDI2CrZAbQp7k0MAMg,691
|
31
|
+
glam4cm/downstream_tasks/utils.py,sha256=b5L7UoGbuGu6HdpS72xp-FipXa07yjuhFdbeNszoSTA,1444
|
32
|
+
glam4cm/downstream_tasks/word2vec_text_classification.py,sha256=tQMaSo9PVJlpqEnRBG7OEikUtOHckzA8FilnGk1N0zY,3531
|
33
|
+
glam4cm/embeddings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
|
+
glam4cm/embeddings/bert.py,sha256=4injUWPZO6DH_OSoSblSGO9q4FyEOoKF-KMPVvbdRck,2788
|
35
|
+
glam4cm/embeddings/common.py,sha256=C-4aW1ynZUHOxvkAZFjV9klKkbbHao2hSFvNqr_lTvo,1226
|
36
|
+
glam4cm/embeddings/fasttext.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
+
glam4cm/embeddings/tfidf.py,sha256=-R10-053tm9mjgXSNgIzRGIDeL0AJKgVx7UtoHoaGgw,737
|
38
|
+
glam4cm/embeddings/w2v.py,sha256=acQX9wvtNRF8ghkniR2xikQj_KLBOYRYqQgvg3qD8l4,1384
|
39
|
+
glam4cm/encoding/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
+
glam4cm/encoding/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
+
glam4cm/encoding/encoders.py,sha256=wBAhlgcXpIBhdYPH_WNDe7pD3kaaODGOSMIhpUmkRiE,2743
|
42
|
+
glam4cm/graph2str/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
43
|
+
glam4cm/graph2str/common.py,sha256=vYNkLUM3rfmj0c-BsYfBQnUJGXyIC7B68HlYZrz8auY,1121
|
44
|
+
glam4cm/graph2str/constants.py,sha256=LwWXWTwlS_Q4Blbi9vHgqNh8OjWM5X_z-prEkPtnOJI,239
|
45
|
+
glam4cm/graph2str/ontouml.py,sha256=ZGDFTxSMTf2p4q0QbVXmY8jMSzZSpkvREt9VBuN--eg,5499
|
46
|
+
glam4cm/graph2str/uml.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
+
glam4cm/lang2graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
+
glam4cm/lang2graph/archimate.py,sha256=jRA8zXOMb3gO5WvfNvP_R8-CYiQsdo9FmDyf8fDIcn4,678
|
49
|
+
glam4cm/lang2graph/bpmn.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
|
+
glam4cm/lang2graph/common.py,sha256=2vE9dUmdnQ79YlFQXQV91rCWmF254yRQYnNsiyMuRTo,15232
|
51
|
+
glam4cm/lang2graph/ecore.py,sha256=Mcy3muODODCRtM5Q-8F2f4-CZcGE2a33qzlwMjWq3Ws,8071
|
52
|
+
glam4cm/lang2graph/ontouml.py,sha256=TiLHyFHj6aVsYJsItAD_n5IPWw7FM5X2ZtcZAbBq0Y4,7517
|
53
|
+
glam4cm/lang2graph/utils.py,sha256=d0b6k4MNwnA9GWewaIwr9uS7YzgRuhSAWaXu-GE-JMg,2089
|
54
|
+
glam4cm/models/cmgpt.py,sha256=2vnsYO73XZCKwHm0XTKgK8bQiVssF5tRIFr67E2NrCE,13038
|
55
|
+
glam4cm/models/gnn_layers.py,sha256=3-ZLqoWSaTabmSIOKCqhQvyrpgPuv3TsHQRrKMnQ_kY,8664
|
56
|
+
glam4cm/models/hf.py,sha256=1r0y9wYvIj0XOkNnwAD6XLgWQ90SICLyTAwAZaDDTMo,570
|
57
|
+
glam4cm/tokenization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
|
+
glam4cm/tokenization/special_tokens.py,sha256=63FJAKOw2nTmFu_VypFOiylZ1U2cItsdgXxpPIFrp-Q,445
|
59
|
+
glam4cm/tokenization/utils.py,sha256=NTNPlJT7wHYdn3hFIFqqcs23N8bhzEhOpugRMR1mya0,1732
|
60
|
+
glam4cm/trainers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
|
+
glam4cm/trainers/bert_classifier.py,sha256=4yGMX1bkYsvBaTwyP3CV7U05uIYqQdDeUa84N8_uc3I,3599
|
62
|
+
glam4cm/trainers/cm_gpt_trainer.py,sha256=6OpKyO7nTnUlTKnWR62JL-LOebdSuBpe8QwZ8SKaw80,5586
|
63
|
+
glam4cm/trainers/gnn_edge_classifier.py,sha256=s7P_8CpuqOwU9ZbeC7P7wGQ_4uoc7XubsuiiDDz-oA8,4754
|
64
|
+
glam4cm/trainers/gnn_graph_classifier.py,sha256=5Xb8GPkJSZInNMZs3tLFJyY-dcr_h3L8x89zOJnlw-c,4030
|
65
|
+
glam4cm/trainers/gnn_link_predictor.py,sha256=1HguE_JZGyxOKu3_jrkyYkDqEqxMDBvgsBtr4sJZBSU,5821
|
66
|
+
glam4cm/trainers/gnn_link_predictor_v2.py,sha256=9NZKVq66FxiMSSdfFOySRnHFYU3TqOywPZG9ViFTIYE,4930
|
67
|
+
glam4cm/trainers/gnn_node_classifier.py,sha256=I4Rrx7m8oxevtBgelXuJbWUx33TBp1k12Y1to7oq3G8,4508
|
68
|
+
glam4cm/trainers/gnn_trainer.py,sha256=Xdmk2yniIP2HYF59fjEDiy8hvJrvs1mqHM_R-cy8cZg,4259
|
69
|
+
glam4cm/trainers/metrics.py,sha256=eSQdaJB-K-C4ipNsK18Jgf-9WTQmQBlSQL4c0sk8S0M,1859
|
70
|
+
glam4cm-1.0.0.dist-info/licenses/LICENSE,sha256=NzIgfG9Z6TaC4HlY6ownebjdGY0DKUXSgF5sM7bmxZI,1071
|
71
|
+
glam4cm-1.0.0.dist-info/METADATA,sha256=pxKwXMLuouZE_0J_LEHtvsKKHJJjEE-v--q2i_06gi0,3282
|
72
|
+
glam4cm-1.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
73
|
+
glam4cm-1.0.0.dist-info/entry_points.txt,sha256=sZ-zOIJOyDP-vpTyVTTbdDyNando8uRVQmaFuAo_nuM,45
|
74
|
+
glam4cm-1.0.0.dist-info/top_level.txt,sha256=6V4mFMBo1sE2bowD9n2sxYv_ao8IsS8rR1ArAhfpQ4w,8
|
75
|
+
glam4cm-1.0.0.dist-info/RECORD,,
|
glam4cm-0.1.1.dist-info/RECORD
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
glam4cm/__init__.py,sha256=7D0ayfMYZjOum3A9g2zP2FGabJTO4JUPQifMg9ALcWY,178
|
2
|
-
glam4cm/run.py,sha256=fSd5oBpHxWLwskMfT6mohiROX9BdIGwmUT8BGxGV2fc,4188
|
3
|
-
glam4cm/run_configs.py,sha256=100hGJm7tx2enEhSckNE-nxBdDtm8kZyu498WEnqhAU,10122
|
4
|
-
glam4cm/settings.py,sha256=9PG4ZAqxCNg2Rt3JZ3ghl1_mzAw6vIVswC4JGY2Z2YE,1115
|
5
|
-
glam4cm/utils.py,sha256=1qUTS2r0QB38y4UdcScAEMYEpyUohDqpgwoHJvCGbZY,5918
|
6
|
-
glam4cm/data_loading/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
glam4cm/data_loading/data.py,sha256=rsH5vewA47km3I_pDS-MZoChK5Y7RSD7zQgtP8QhKhY,22088
|
8
|
-
glam4cm/data_loading/encoding.py,sha256=3duFeOShibiG9WL2JGLMKTkBS9nvrAQV9dhk0GWbdaE,2396
|
9
|
-
glam4cm/data_loading/graph_dataset.py,sha256=dSCCG8QXexpsVfpseLGxMEbs5qcYFYfVCsjnPTsUlYA,35061
|
10
|
-
glam4cm/data_loading/metadata.py,sha256=LpWp7JU7NEIUbwHJ_-OIjJN8il3MvDT66gjJN7EQJXY,1799
|
11
|
-
glam4cm/data_loading/models_dataset.py,sha256=mDfE15gDcEACD-rDIMM2Eltw5-xLXD55nvQ4Gws-9pM,12477
|
12
|
-
glam4cm/data_loading/utils.py,sha256=GM8DRHxjeAXAZWX1ITq1QfWWVY7jwdXGhbPx8L8V_IQ,907
|
13
|
-
glam4cm/downstream_tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
-
glam4cm/downstream_tasks/bert_edge_classification.py,sha256=xV0lgUcdyVVe82MMkESH8iYATwcvktK3uH7TNJZOY70,4280
|
15
|
-
glam4cm/downstream_tasks/bert_graph_classification.py,sha256=FfWwRQAXKDPkKsMNaJUcvcpO4D4IjuXE-3byjycwLRc,4177
|
16
|
-
glam4cm/downstream_tasks/bert_graph_classification_comp.py,sha256=JUyi9zjbyo6we7mFKLg1DVXKW-W95JPwaONcNOjZ-aA,4613
|
17
|
-
glam4cm/downstream_tasks/bert_link_prediction.py,sha256=QogzTERQFNjhYJaB1JT2_0817fWyYJUiodvszXFOGPI,3976
|
18
|
-
glam4cm/downstream_tasks/bert_node_classification.py,sha256=706fRltkgn7ucu7Xft1HSksGZY5vQuMqmXWthRLE8tc,4754
|
19
|
-
glam4cm/downstream_tasks/cm_gpt_edge_classification.py,sha256=9VGjcFlsetndHoYrm03I1TDcw9PJin41oOBTwma6E5Y,2258
|
20
|
-
glam4cm/downstream_tasks/cm_gpt_node_classification.py,sha256=JS0ntdro_WsIAxpL_nR71W8_IAG4enLeFH2Ak7kKQkA,2358
|
21
|
-
glam4cm/downstream_tasks/cm_gpt_pretraining.py,sha256=qtsrvrE8t7HG9cbyiKI8bKRzzoWn-j-7Iq1UxzIf--Q,1685
|
22
|
-
glam4cm/downstream_tasks/common_args.py,sha256=zj-rxPprn_V3R7nxqNFTw-vIiIqD5FNKixNdkhj-Y2s,5667
|
23
|
-
glam4cm/downstream_tasks/create_dataset.py,sha256=9ykTvvqX7f6j2zlhkU96fMrDgfLKvHQ5R9mH9pHxZ4c,1640
|
24
|
-
glam4cm/downstream_tasks/gnn_edge_classification.py,sha256=hnncLte0fGIWyyxCvWMEPKguVikqseyIGfd-4eQMYCc,3280
|
25
|
-
glam4cm/downstream_tasks/gnn_graph_cls.py,sha256=Fv5tyt0sK_FaHDaB_l5D6FBXdl5v5pbL2fuHB9yX7ns,3179
|
26
|
-
glam4cm/downstream_tasks/gnn_link_prediction.py,sha256=zbflVSQSck41XAbUkLRDANFvRTrbUE9E3Kl47mATTGY,3196
|
27
|
-
glam4cm/downstream_tasks/gnn_node_classification.py,sha256=qsz-ed26GY5MHbscu6UVnRBX-KeQcGmU76sMUfOf2Ps,3191
|
28
|
-
glam4cm/downstream_tasks/tf_idf_text_classification.py,sha256=_GUYIw86YM4q417IAazMaxZDOwDI2CrZAbQp7k0MAMg,691
|
29
|
-
glam4cm/downstream_tasks/utils.py,sha256=Hk-M_REZwwc4s0S2agj81hIFXOVqwEKBVcSkUM8ZLbw,989
|
30
|
-
glam4cm/downstream_tasks/word2vec_text_classification.py,sha256=tQMaSo9PVJlpqEnRBG7OEikUtOHckzA8FilnGk1N0zY,3531
|
31
|
-
glam4cm/embeddings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
|
-
glam4cm/embeddings/bert.py,sha256=hKitE9zwuUJdpC_VjyI1Ub3SWzV1TI24MQOkhaFlyAM,2789
|
33
|
-
glam4cm/embeddings/common.py,sha256=7NVe8Jlyg3jaBrM3pKxHUh8IBlLaXKl0SLebsHTUMY8,1126
|
34
|
-
glam4cm/embeddings/fasttext.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
35
|
-
glam4cm/embeddings/tfidf.py,sha256=-R10-053tm9mjgXSNgIzRGIDeL0AJKgVx7UtoHoaGgw,737
|
36
|
-
glam4cm/embeddings/w2v.py,sha256=acQX9wvtNRF8ghkniR2xikQj_KLBOYRYqQgvg3qD8l4,1384
|
37
|
-
glam4cm/encoding/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
-
glam4cm/encoding/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
|
-
glam4cm/encoding/encoders.py,sha256=-qIMGiyljB8hukyVJf3D89gpkKkQNgHlluSeESmzzog,2735
|
40
|
-
glam4cm/graph2str/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
-
glam4cm/graph2str/common.py,sha256=vYNkLUM3rfmj0c-BsYfBQnUJGXyIC7B68HlYZrz8auY,1121
|
42
|
-
glam4cm/graph2str/constants.py,sha256=LwWXWTwlS_Q4Blbi9vHgqNh8OjWM5X_z-prEkPtnOJI,239
|
43
|
-
glam4cm/graph2str/ontouml.py,sha256=ZGDFTxSMTf2p4q0QbVXmY8jMSzZSpkvREt9VBuN--eg,5499
|
44
|
-
glam4cm/graph2str/uml.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
-
glam4cm/lang2graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
|
-
glam4cm/lang2graph/archimate.py,sha256=mg63U9OQB8LgDobW4ChRti8ya4UzfBVUbm-d8ljBhMw,839
|
47
|
-
glam4cm/lang2graph/bpmn.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
-
glam4cm/lang2graph/common.py,sha256=snea2JOIt5xvy1wvn6rSCOMCefNTmjO0Ni3hf4-2d50,13148
|
49
|
-
glam4cm/lang2graph/ecore.py,sha256=xzms1Bi3Wj6qsz960w_IK0X2dsNhRDBMPkDsaKEnT1M,8145
|
50
|
-
glam4cm/lang2graph/ontouml.py,sha256=DAODrTZnEWTWWR_CB2j_KfRk4G0Sw6lovpAd1jInbRk,7485
|
51
|
-
glam4cm/lang2graph/utils.py,sha256=d0b6k4MNwnA9GWewaIwr9uS7YzgRuhSAWaXu-GE-JMg,2089
|
52
|
-
glam4cm/models/cmgpt.py,sha256=2vnsYO73XZCKwHm0XTKgK8bQiVssF5tRIFr67E2NrCE,13038
|
53
|
-
glam4cm/models/gnn_layers.py,sha256=4hKiJTTartoXjS29hZEQxRWTFZ96FtDijUKT6dwe9lU,8127
|
54
|
-
glam4cm/models/hf.py,sha256=BE5cnCdSnpUzq_3ww43AqkZCjG67r1ckPDPdF8yfOoQ,508
|
55
|
-
glam4cm/tokenization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
|
-
glam4cm/tokenization/special_tokens.py,sha256=tM2WJDSheURKXm7-5QDczMdHuomPEx6HLTW8BFO0EWs,107
|
57
|
-
glam4cm/tokenization/utils.py,sha256=rrM2Owd2IQZAmErOHL5vTVDyVQoPZ-j8ztGt5VXK1fE,1206
|
58
|
-
glam4cm/trainers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
59
|
-
glam4cm/trainers/bert_classifier.py,sha256=4yGMX1bkYsvBaTwyP3CV7U05uIYqQdDeUa84N8_uc3I,3599
|
60
|
-
glam4cm/trainers/cm_gpt_trainer.py,sha256=au3hXa9F8uEe-QBA139-Aw7IJ6GQEcjcfNcRgPF2TE8,5547
|
61
|
-
glam4cm/trainers/gnn_edge_classifier.py,sha256=81SE7dzKeJG60fuOQMn7A4ydpDCVXwdEp-qgfpE40Ok,4249
|
62
|
-
glam4cm/trainers/gnn_graph_classifier.py,sha256=vDfGzaklYrM-pXrj-9QrAJtuZWu3_xcKd0aQlwz7qRs,3873
|
63
|
-
glam4cm/trainers/gnn_link_predictor.py,sha256=WMomOdmk7H2aBwDBugPPN5yLcjzgdlade0OKlNvYxEo,5093
|
64
|
-
glam4cm/trainers/gnn_node_classifier.py,sha256=I4Rrx7m8oxevtBgelXuJbWUx33TBp1k12Y1to7oq3G8,4508
|
65
|
-
glam4cm/trainers/gnn_trainer.py,sha256=r06rR1bsmuiIZhzVcuAx3X_R5u0lZKt1B3shgSdLbxA,3871
|
66
|
-
glam4cm/trainers/metrics.py,sha256=LPFyRSAT50bPhQtI8yLK3VHuubxiIw6fTXkLUGTL3Ns,1823
|
67
|
-
glam4cm-0.1.1.dist-info/LICENSE,sha256=NzIgfG9Z6TaC4HlY6ownebjdGY0DKUXSgF5sM7bmxZI,1071
|
68
|
-
glam4cm-0.1.1.dist-info/METADATA,sha256=v9BrBomTVyTejdhYXvijkLpDjew2YgaHsTFf3tWdeZE,3260
|
69
|
-
glam4cm-0.1.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
70
|
-
glam4cm-0.1.1.dist-info/entry_points.txt,sha256=sZ-zOIJOyDP-vpTyVTTbdDyNando8uRVQmaFuAo_nuM,45
|
71
|
-
glam4cm-0.1.1.dist-info/top_level.txt,sha256=6V4mFMBo1sE2bowD9n2sxYv_ao8IsS8rR1ArAhfpQ4w,8
|
72
|
-
glam4cm-0.1.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|