pyg-nightly 2.6.0.dev20240406__tar.gz → 2.7.0.dev20250114__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/PKG-INFO +31 -47
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/README.md +24 -39
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/pyproject.toml +18 -11
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/__init__.py +28 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/_compile.py +8 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/_onnx.py +14 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/config_mixin.py +113 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/config_store.py +28 -19
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/__init__.py +24 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/batch.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/collate.py +8 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/data.py +16 -8
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/database.py +58 -12
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/dataset.py +14 -6
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/feature_store.py +13 -22
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/graph_store.py +1 -5
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/hetero_data.py +18 -9
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/in_memory_dataset.py +2 -4
- pyg_nightly-2.7.0.dev20250114/torch_geometric/data/large_graph_indexer.py +677 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/lightning/datamodule.py +4 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/separate.py +6 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/storage.py +17 -7
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/summary.py +14 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/temporal.py +1 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/__init__.py +11 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/actor.py +9 -11
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/airfrans.py +15 -18
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/airports.py +10 -12
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/amazon.py +8 -11
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/amazon_book.py +9 -10
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/amazon_products.py +9 -10
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/aminer.py +8 -9
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/aqsol.py +10 -13
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/attributed_graph_dataset.py +10 -12
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/ba_multi_shapes.py +10 -12
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/ba_shapes.py +5 -6
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/bitcoin_otc.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/brca_tgca.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/dblp.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/dbp15k.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/fake.py +1 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/flickr.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/freebase.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/gdelt_lite.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/ged_dataset.py +3 -2
- pyg_nightly-2.7.0.dev20250114/torch_geometric/datasets/git_mol_dataset.py +263 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/gnn_benchmark_dataset.py +6 -5
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/hgb_dataset.py +8 -8
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/imdb.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/karate.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/last_fm.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/linkx_dataset.py +4 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/lrgb.py +3 -5
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/malnet_tiny.py +4 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/mnist_superpixels.py +2 -3
- pyg_nightly-2.7.0.dev20250114/torch_geometric/datasets/molecule_gpt_dataset.py +485 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/molecule_net.py +7 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/motif_generator/base.py +0 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/neurograph.py +1 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/ogb_mag.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/datasets/opf.py +239 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/ose_gvcs.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/pascal_pf.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/pcpnet_dataset.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/pcqm4m.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/ppi.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/qm9.py +8 -7
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/rcdd.py +4 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/reddit.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/reddit2.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/rel_link_pred_dataset.py +3 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/s3dis.py +5 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/shapenet.py +3 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/shrec2016.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/snap_dataset.py +7 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/datasets/tag_dataset.py +350 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/upfd.py +2 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/datasets/web_qsp_dataset.py +246 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/webkb.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/wikics.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/wikidata.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/wikipedia_network.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/word_net.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/yelp.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/zinc.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/device.py +42 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/local_feature_store.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/local_graph_store.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/partition.py +9 -8
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/edge_index.py +616 -438
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/base.py +0 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/graphmask_explainer.py +1 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/pg_explainer.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/explanation.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/checkpoint.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/logger.py +4 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/loss.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/agg_runs.py +6 -6
- pyg_nightly-2.7.0.dev20250114/torch_geometric/index.py +826 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/inspector.py +8 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/fs.py +28 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/npz.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/off.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/sdf.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/tu.py +4 -5
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/__init__.py +4 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/cluster.py +10 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/graph_saint.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/ibmb_loader.py +12 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/mixin.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/neighbor_loader.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/neighbor_sampler.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/prefetch.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/loader/rag_loader.py +107 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/utils.py +8 -7
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/zip_loader.py +10 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/metrics/__init__.py +23 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/metrics/link_pred.py +159 -34
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/__init__.py +2 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/attention.py +0 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/base.py +2 -4
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/aggr/patch_transformer.py +143 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/set_transformer.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/attention/__init__.py +7 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/attention/qformer.py +71 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/collect.jinja +7 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cugraph/base.py +8 -12
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/edge_conv.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/fused_gat_conv.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gat_conv.py +35 -7
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gatv2_conv.py +36 -6
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/general_conv.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/graph_conv.py +21 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gravnet_conv.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/hetero_conv.py +3 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/hgt_conv.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/message_passing.py +125 -85
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/mixhop_conv.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/propagate.jinja +9 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/rgcn_conv.py +5 -5
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/spline_conv.py +4 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/x_conv.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/linear.py +11 -6
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/fx.py +3 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/model_hub.py +3 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/__init__.py +10 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/deep_graph_infomax.py +1 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/dimenet_utils.py +5 -7
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/models/g_retriever.py +230 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/models/git_mol.py +336 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/models/glem.py +385 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/gnnff.py +0 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/graph_unet.py +12 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/jumping_knowledge.py +63 -4
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/lightgcn.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/metapath2vec.py +4 -5
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/models/molecule_gpt.py +222 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/node2vec.py +2 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/schnet.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/signed_gcn.py +3 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/module_dict.py +2 -2
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/nlp/__init__.py +9 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/nlp/llm.py +322 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/nlp/sentence_transformer.py +134 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/nlp/vision_transformer.py +33 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/batch_norm.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/parameter_dict.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/__init__.py +7 -5
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/pool/cluster_pool.py +145 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/connect/base.py +0 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/edge_pool.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/graclus.py +4 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/select/base.py +0 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/voxel_grid.py +3 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/resolver.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/sequential.jinja +22 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/nn/sequential.py +273 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/summary.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/to_hetero_with_bases_transformer.py +19 -19
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/profile/__init__.py +2 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/profile/nvtx.py +66 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/profile/profiler.py +30 -19
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/resolver.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/sampler/base.py +34 -13
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/sampler/neighbor_sampler.py +11 -10
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/sampler/utils.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/testing/__init__.py +4 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/testing/decorators.py +40 -26
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/__init__.py +2 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/add_metapaths.py +5 -5
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/add_positional_encoding.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/transforms/delaunay.py +84 -0
- pyg_nightly-2.7.0.dev20250114/torch_geometric/transforms/face_to_edge.py +61 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/gdc.py +7 -6
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/laplacian_lambda_max.py +3 -3
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/mask.py +5 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/node_property_split.py +1 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/pad.py +7 -6
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/random_link_split.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/transforms/remove_self_loops.py +36 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/svd_feature_reduction.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/to_sparse_tensor.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/two_hop.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/virtual_node.py +2 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/typing.py +43 -6
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/__init__.py +5 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_negative_sampling.py +1 -1
- pyg_nightly-2.7.0.dev20250114/torch_geometric/utils/_normalize_edge_index.py +46 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_scatter.py +37 -12
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_subgraph.py +4 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_tree_decomposition.py +2 -2
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/augmentation.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/convert.py +11 -7
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/geodesic.py +24 -22
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/hetero.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/map.py +1 -1
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/smiles.py +65 -27
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/sparse.py +26 -23
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/visualization/graph.py +3 -4
- pyg_nightly-2.6.0.dev20240406/torch_geometric/metrics/__init__.py +0 -14
- pyg_nightly-2.6.0.dev20240406/torch_geometric/nn/attention/__init__.py +0 -3
- pyg_nightly-2.6.0.dev20240406/torch_geometric/nn/sequential.jinja +0 -35
- pyg_nightly-2.6.0.dev20240406/torch_geometric/nn/sequential.py +0 -147
- pyg_nightly-2.6.0.dev20240406/torch_geometric/transforms/delaunay.py +0 -33
- pyg_nightly-2.6.0.dev20240406/torch_geometric/transforms/face_to_edge.py +0 -32
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/backend.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/datasets/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/explain/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/explain/pgm_explainer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/nn/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/nn/conv/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/nn/models/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/nn/models/rbcd_attack.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/contrib/transforms/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/datapipes.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/download.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/extract.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/hypergraph_data.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/lightning/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/makedirs.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/on_disk_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/remote_backend_utils.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/data/view.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/ba2motif_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/citation_full.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/coauthor.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/coma.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/cornell.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/deezer_europe.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/dgraph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/dynamic_faust.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/elliptic.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/elliptic_temporal.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/email_eu_core.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/entities.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/explainer_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/facebook.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/faust.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/gdelt.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/gemsec.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/geometry.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/github.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/graph_generator/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/graph_generator/ba_graph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/graph_generator/base.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/graph_generator/er_graph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/graph_generator/grid_graph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/graph_generator/tree_graph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/heterophilous_graph_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/hm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/hydro_net.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/icews.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/igmc_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/infection_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/jodie.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/lastfm_asia.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/md17.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/mixhop_synthetic_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/modelnet.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/motif_generator/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/motif_generator/custom.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/motif_generator/cycle.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/motif_generator/grid.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/motif_generator/house.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/movie_lens.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/movie_lens_100k.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/movie_lens_1m.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/myket.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/nell.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/omdb.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/particle.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/pascal.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/planetoid.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/polblogs.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/qm7.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/sbm_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/suite_sparse.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/taobao.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/tosca.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/tu_dataset.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/twitch.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/utils/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/utils/cheatsheet.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/datasets/willow_object_class.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/debug.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/deprecation.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/dist_context.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/dist_link_neighbor_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/dist_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/dist_neighbor_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/dist_neighbor_sampler.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/event_loop.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/rpc.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/distributed/utils.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/experimental.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/attention_explainer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/captum.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/captum_explainer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/dummy_explainer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/gnn_explainer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/algorithm/utils.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/config.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/explainer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/metric/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/metric/basic.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/metric/faithfulness.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/explain/metric/fidelity.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/benchmark.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/cmd_args.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/config.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/act/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/config/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/encoder/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/head/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/layer/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/layer/generalconv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/loader/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/loss/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/network/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/optimizer/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/pooling/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/stage/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/train/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/contrib/transform/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/imports.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/init.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/model_builder.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/act.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/encoder.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/gnn.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/head.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/layer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/pooling.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/models/transform.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/optim.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/register.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/train.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/LICENSE +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/comp_budget.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/device.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/epoch.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/io.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/plot.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/graphgym/utils/tools.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/home.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/obj.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/planetoid.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/ply.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/io/txt_array.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/isinstance.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/lazy_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/base.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/cache.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/data_list_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/dataloader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/dense_data_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/dynamic_batch_sampler.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/hgt_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/imbalanced_sampler.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/link_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/link_neighbor_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/node_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/random_node_loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/shadow.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/loader/temporal_dataloader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/logging.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/basic.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/deep_sets.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/equilibrium.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/fused.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/gmt.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/gru.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/lcm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/lstm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/mlp.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/multi.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/quantile.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/scaler.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/set2set.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/sort.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/utils.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/aggr/variance_preserving.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/attention/performer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/agnn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/antisymmetric_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/appnp.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/arma_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cg_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cheb_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cluster_gcn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cugraph/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cugraph/gat_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cugraph/rgcn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/cugraph/sage_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/dir_gnn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/dna_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/edge_updater.jinja +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/eg_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/fa_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/feast_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/film_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gated_graph_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gcn2_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gcn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gen_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gin_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gmm_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/gps_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/han_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/heat_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/hypergraph_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/le_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/lg_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/mf_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/nn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/pan_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/pdn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/pna_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/point_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/point_gnn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/point_transformer_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/ppf_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/res_gated_graph_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/rgat_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/sage_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/sg_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/signed_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/simple_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/ssg_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/supergat_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/tag_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/transformer_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/utils/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/utils/cheatsheet.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/wl_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/conv/wl_conv_continuous.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/data_parallel.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/dense_gat_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/dense_gcn_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/dense_gin_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/dense_graph_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/dense_sage_conv.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/diff_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/dmon_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/dense/mincut_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/encoding.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/functional/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/functional/bro.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/functional/gini.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/glob.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/inits.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/kge/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/kge/base.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/kge/complex.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/kge/distmult.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/kge/loader.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/kge/rotate.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/kge/transe.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/lr_scheduler.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/attentive_fp.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/autoencoder.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/basic_gnn.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/captum.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/correct_and_smooth.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/deepgcn.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/dimenet.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/graph_mixer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/label_prop.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/linkx.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/mask_label.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/meta.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/mlp.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/neural_fingerprint.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/pmlp.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/re_net.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/rect.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/rev_gnn.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/tgn.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/models/visnet.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/diff_group_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/graph_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/graph_size_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/instance_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/layer_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/mean_subtraction_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/msg_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/norm/pair_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/approx_knn.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/asap.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/avg_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/connect/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/connect/filter_edges.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/consecutive.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/decimation.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/glob.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/knn.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/max_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/mem_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/pan_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/sag_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/select/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/select/topk.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/pool/topk_pool.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/reshape.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/to_fixed_size_transformer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/to_hetero_module.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/to_hetero_transformer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/unpool/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/nn/unpool/knn_interpolate.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/profile/benchmark.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/profile/profile.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/profile/utils.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/sampler/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/sampler/hgt_sampler.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/seed.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/template.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/testing/asserts.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/testing/data.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/testing/distributed.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/testing/feature_store.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/testing/graph_store.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/add_remaining_self_loops.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/add_self_loops.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/base_transform.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/cartesian.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/center.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/compose.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/constant.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/distance.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/feature_propagation.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/fixed_points.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/gcn_norm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/generate_mesh_normals.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/grid_sampling.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/half_hop.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/knn_graph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/largest_connected_components.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/line_graph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/linear_transformation.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/local_cartesian.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/local_degree_profile.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/normalize_features.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/normalize_rotation.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/normalize_scale.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/one_hot_degree.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/point_pair_features.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/polar.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/radius_graph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/random_flip.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/random_jitter.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/random_node_split.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/random_rotate.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/random_scale.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/random_shear.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/remove_duplicated_edges.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/remove_isolated_nodes.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/remove_training_classes.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/rooted_subgraph.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/sample_points.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/sign.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/spherical.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/target_indegree.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/to_dense.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/to_device.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/to_superpixels.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/transforms/to_undirected.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_assortativity.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_coalesce.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_degree.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_grid.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_homophily.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_index_sort.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_lexsort.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_normalized_cut.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_one_hot.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_segment.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_select.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_softmax.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_sort_edge_index.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_spmm.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_to_dense_adj.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_to_dense_batch.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_train_test_split_edges.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_trim_to_layer.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/_unbatch.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/cross_entropy.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/dropout.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/embedding.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/functions.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/isolated.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/laplacian.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/loop.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/mask.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/mesh_laplacian.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/mixin.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/nested.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/noise_scheduler.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/num_nodes.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/ppr.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/random.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/repeat.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/utils/undirected.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/visualization/__init__.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/visualization/influence.py +0 -0
- {pyg_nightly-2.6.0.dev20240406 → pyg_nightly-2.7.0.dev20250114}/torch_geometric/warnings.py +0 -0
@@ -1,15 +1,14 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: pyg-nightly
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.7.0.dev20250114
|
4
4
|
Summary: Graph Neural Network Library for PyTorch
|
5
5
|
Keywords: deep-learning,pytorch,geometric-deep-learning,graph-neural-networks,graph-convolutional-networks
|
6
6
|
Author-email: Matthias Fey <matthias@pyg.org>
|
7
|
-
Requires-Python: >=3.
|
7
|
+
Requires-Python: >=3.9
|
8
8
|
Description-Content-Type: text/markdown
|
9
9
|
Classifier: Development Status :: 5 - Production/Stable
|
10
10
|
Classifier: License :: OSI Approved :: MIT License
|
11
11
|
Classifier: Programming Language :: Python
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
13
12
|
Classifier: Programming Language :: Python :: 3.9
|
14
13
|
Classifier: Programming Language :: Python :: 3.10
|
15
14
|
Classifier: Programming Language :: Python :: 3.11
|
@@ -22,8 +21,6 @@ Requires-Dist: numpy
|
|
22
21
|
Requires-Dist: psutil>=5.8.0
|
23
22
|
Requires-Dist: pyparsing
|
24
23
|
Requires-Dist: requests
|
25
|
-
Requires-Dist: scikit-learn
|
26
|
-
Requires-Dist: scipy
|
27
24
|
Requires-Dist: tqdm
|
28
25
|
Requires-Dist: matplotlib ; extra == "benchmark"
|
29
26
|
Requires-Dist: networkx ; extra == "benchmark"
|
@@ -34,13 +31,15 @@ Requires-Dist: ipython ; extra == "dev"
|
|
34
31
|
Requires-Dist: matplotlib-inline ; extra == "dev"
|
35
32
|
Requires-Dist: pre-commit ; extra == "dev"
|
36
33
|
Requires-Dist: torch_geometric[test] ; extra == "dev"
|
34
|
+
Requires-Dist: scipy ; extra == "full"
|
35
|
+
Requires-Dist: scikit-learn ; extra == "full"
|
37
36
|
Requires-Dist: ase ; extra == "full"
|
38
37
|
Requires-Dist: captum<0.7.0 ; extra == "full"
|
39
38
|
Requires-Dist: graphviz ; extra == "full"
|
40
39
|
Requires-Dist: h5py ; extra == "full"
|
41
40
|
Requires-Dist: matplotlib ; extra == "full"
|
42
41
|
Requires-Dist: networkx ; extra == "full"
|
43
|
-
Requires-Dist: numba ; extra == "full"
|
42
|
+
Requires-Dist: numba<0.60.0 ; extra == "full"
|
44
43
|
Requires-Dist: opt_einsum ; extra == "full"
|
45
44
|
Requires-Dist: pandas ; extra == "full"
|
46
45
|
Requires-Dist: pgmpy ; extra == "full"
|
@@ -56,7 +55,7 @@ Requires-Dist: torch_geometric[graphgym, modelhub] ; extra == "full"
|
|
56
55
|
Requires-Dist: torchmetrics ; extra == "full"
|
57
56
|
Requires-Dist: trimesh ; extra == "full"
|
58
57
|
Requires-Dist: protobuf<4.21 ; extra == "graphgym"
|
59
|
-
Requires-Dist: pytorch-lightning ; extra == "graphgym"
|
58
|
+
Requires-Dist: pytorch-lightning<2.3.0 ; extra == "graphgym"
|
60
59
|
Requires-Dist: yacs ; extra == "graphgym"
|
61
60
|
Requires-Dist: huggingface_hub ; extra == "modelhub"
|
62
61
|
Requires-Dist: onnx ; extra == "test"
|
@@ -92,7 +91,7 @@ ______________________________________________________________________
|
|
92
91
|
**PyG** *(PyTorch Geometric)* is a library built upon [PyTorch](https://pytorch.org/) to easily write and train Graph Neural Networks (GNNs) for a wide range of applications related to structured data.
|
93
92
|
|
94
93
|
It consists of various methods for deep learning on graphs and other irregular structures, also known as *[geometric deep learning](http://geometricdeeplearning.com/)*, from a variety of published papers.
|
95
|
-
In addition, it consists of easy-to-use mini-batch loaders for operating on many small and single giant graphs, [multi GPU-support](https://github.com/pyg-team/pytorch_geometric/tree/master/examples/multi_gpu), [`torch.compile`](https://pytorch-geometric.readthedocs.io/en/latest/advanced/compile.html) support, [`DataPipe`](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/datapipe.py) support, a large number of common benchmark datasets (based on simple interfaces to create your own),
|
94
|
+
In addition, it consists of easy-to-use mini-batch loaders for operating on many small and single giant graphs, [multi GPU-support](https://github.com/pyg-team/pytorch_geometric/tree/master/examples/multi_gpu), [`torch.compile`](https://pytorch-geometric.readthedocs.io/en/latest/advanced/compile.html) support, [`DataPipe`](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/datapipe.py) support, a large number of common benchmark datasets (based on simple interfaces to create your own), and helpful transforms, both for learning on arbitrary graphs as well as on 3D meshes or point clouds.
|
96
95
|
|
97
96
|
**[Click here to join our Slack community!][slack-url]**
|
98
97
|
|
@@ -123,7 +122,6 @@ Whether you are a machine learning researcher or first-time user of machine lear
|
|
123
122
|
Making modifications to existing models or creating new architectures is simple, thanks to its easy-to-use message passing API, and a variety of operators and utility functions.
|
124
123
|
- **Large-scale real-world GNN models**:
|
125
124
|
We focus on the need of GNN applications in challenging real-world scenarios, and support learning on diverse types of graphs, including but not limited to: scalable GNNs for graphs with millions of nodes; dynamic GNNs for node predictions over time; heterogeneous GNNs with multiple node types and edge types.
|
126
|
-
- **GraphGym integration**: GraphGym lets users easily reproduce GNN experiments, is able to launch and analyze thousands of different GNN configurations, and is customizable by registering new modules to a GNN learning pipeline.
|
127
125
|
|
128
126
|
## Quick Tour for New Users
|
129
127
|
|
@@ -186,7 +184,7 @@ More information about evaluating final model performance can be found in the co
|
|
186
184
|
In addition to the easy application of existing GNNs, PyG makes it simple to implement custom Graph Neural Networks (see [here](https://pytorch-geometric.readthedocs.io/en/latest/tutorial/create_gnn.html) for the accompanying tutorial).
|
187
185
|
For example, this is all it takes to implement the [edge convolutional layer](https://arxiv.org/abs/1801.07829) from Wang *et al.*:
|
188
186
|
|
189
|
-
$$x_i^{\\prime} ~ = ~ \\max\_{j \\in \\mathcal{N}(i)} ~ \\textrm{MLP}\_{\\theta} \\left(
|
187
|
+
$$x_i^{\\prime} ~ = ~ \\max\_{j \\in \\mathcal{N}(i)} ~ \\textrm{MLP}\_{\\theta} \\left( [ ~ x_i, ~ x_j - x_i ~ ] \\right)$$
|
190
188
|
|
191
189
|
```python
|
192
190
|
import torch
|
@@ -215,20 +213,6 @@ class EdgeConv(MessagePassing):
|
|
215
213
|
return self.mlp(edge_features) # shape [num_edges, out_channels]
|
216
214
|
```
|
217
215
|
|
218
|
-
### Manage experiments with GraphGym
|
219
|
-
|
220
|
-
GraphGym allows you to manage and launch GNN experiments, using a highly modularized pipeline (see [here](https://pytorch-geometric.readthedocs.io/en/latest/advanced/graphgym.html) for the accompanying tutorial).
|
221
|
-
|
222
|
-
```
|
223
|
-
git clone https://github.com/pyg-team/pytorch_geometric.git
|
224
|
-
cd pytorch_geometric/graphgym
|
225
|
-
bash run_single.sh # run a single GNN experiment (node/edge/graph-level)
|
226
|
-
bash run_batch.sh # run a batch of GNN experiments, using differnt GNN designs/datasets/tasks
|
227
|
-
```
|
228
|
-
|
229
|
-
Users are highly encouraged to check out the [documentation](https://pytorch-geometric.readthedocs.io/en/latest), which contains additional tutorials on the essential functionalities of PyG, including data handling, creation of datasets and a full list of implemented methods, transforms, and datasets.
|
230
|
-
For a quick start, check out our [examples](https://github.com/pyg-team/pytorch_geometric/tree/master/examples) in `examples/`.
|
231
|
-
|
232
216
|
## Architecture Overview
|
233
217
|
|
234
218
|
PyG provides a multi-layer framework that enables users to build Graph Neural Network solutions on both low and high levels.
|
@@ -267,7 +251,7 @@ These GNN layers can be stacked together to create Graph Neural Network models.
|
|
267
251
|
- **[EGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.EGConv.html)** from Tailor *et al.*: [Adaptive Filters and Aggregator Fusion for Efficient Graph Convolutions](https://arxiv.org/abs/2104.01481) (GNNSys 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/egc.py)\]
|
268
252
|
- **[GATv2Conv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GATv2Conv.html)** from Brody *et al.*: [How Attentive are Graph Attention Networks?](https://arxiv.org/abs/2105.14491) (ICLR 2022)
|
269
253
|
- **[TransformerConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.TransformerConv.html)** from Shi *et al.*: [Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification](https://arxiv.org/abs/2009.03509) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/unimp_arxiv.py)\]
|
270
|
-
- **[SAGEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SAGEConv.html)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/
|
254
|
+
- **[SAGEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SAGEConv.html)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup.py), [**Example4**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup_ppi.py)\]
|
271
255
|
- **[GraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GraphConv.html)** from, *e.g.*, Morris *et al.*: [Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks](https://arxiv.org/abs/1810.02244) (AAAI 2019)
|
272
256
|
- **[GatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GatedGraphConv.html)** from Li *et al.*: [Gated Graph Sequence Neural Networks](https://arxiv.org/abs/1511.05493) (ICLR 2016)
|
273
257
|
- **[ResGatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.ResGatedGraphConv.html)** from Bresson and Laurent: [Residual Gated Graph ConvNets](https://arxiv.org/abs/1711.07553) (CoRR 2017)
|
@@ -410,7 +394,7 @@ Such application is challenging since the entire graph, its associated features
|
|
410
394
|
Many state-of-the-art scalability approaches tackle this challenge by sampling neighborhoods for mini-batch training, graph clustering and partitioning, or by using simplified GNN models.
|
411
395
|
These approaches have been implemented in PyG, and can benefit from the above GNN layers, operators and models.
|
412
396
|
|
413
|
-
- **[NeighborLoader](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.NeighborLoader)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/
|
397
|
+
- **[NeighborLoader](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.NeighborLoader)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/to_hetero_mag.py)\]
|
414
398
|
- **[ClusterGCN](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.ClusterLoader)** from Chiang *et al.*: [Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks](https://arxiv.org/abs/1905.07953) (KDD 2019) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_ppi.py)\]
|
415
399
|
- **[GraphSAINT](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.GraphSAINTSampler)** from Zeng *et al.*: [GraphSAINT: Graph Sampling Based Inductive Learning Method](https://arxiv.org/abs/1907.04931) (ICLR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_saint.py)\]
|
416
400
|
|
@@ -425,7 +409,7 @@ These approaches have been implemented in PyG, and can benefit from the above GN
|
|
425
409
|
|
426
410
|
## Installation
|
427
411
|
|
428
|
-
PyG is available for Python 3.
|
412
|
+
PyG is available for Python 3.9 to Python 3.12.
|
429
413
|
|
430
414
|
### Anaconda
|
431
415
|
|
@@ -462,39 +446,39 @@ We recommend to start with a minimal installation, and install additional depend
|
|
462
446
|
|
463
447
|
For ease of installation of these extensions, we provide `pip` wheels for all major OS/PyTorch/CUDA combinations, see [here](https://data.pyg.org/whl).
|
464
448
|
|
465
|
-
#### PyTorch 2.
|
449
|
+
#### PyTorch 2.5
|
466
450
|
|
467
|
-
To install the binaries for PyTorch 2.
|
451
|
+
To install the binaries for PyTorch 2.5.0, simply run
|
468
452
|
|
469
453
|
```
|
470
|
-
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.
|
454
|
+
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
|
471
455
|
```
|
472
456
|
|
473
|
-
where `${CUDA}` should be replaced by either `cpu`, `cu118`, or `
|
457
|
+
where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu121`, or `cu124` depending on your PyTorch installation.
|
474
458
|
|
475
|
-
| | `cpu` | `cu118` | `cu121` |
|
476
|
-
| ----------- | ----- | ------- | ------- |
|
477
|
-
| **Linux** | ✅
|
478
|
-
| **Windows** | ✅
|
479
|
-
| **macOS** | ✅
|
459
|
+
| | `cpu` | `cu118` | `cu121` | `cu124` |
|
460
|
+
| ----------- | ----- | ------- | ------- | ------- |
|
461
|
+
| **Linux** | ✅ | ✅ | ✅ | ✅ |
|
462
|
+
| **Windows** | ✅ | ✅ | ✅ | ✅ |
|
463
|
+
| **macOS** | ✅ | | | |
|
480
464
|
|
481
|
-
#### PyTorch 2.
|
465
|
+
#### PyTorch 2.4
|
482
466
|
|
483
|
-
To install the binaries for PyTorch 2.
|
467
|
+
To install the binaries for PyTorch 2.4.0, simply run
|
484
468
|
|
485
469
|
```
|
486
|
-
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.
|
470
|
+
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
|
487
471
|
```
|
488
472
|
|
489
|
-
where `${CUDA}` should be replaced by either `cpu`, `cu118`, or `
|
473
|
+
where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu121`, or `cu124` depending on your PyTorch installation.
|
490
474
|
|
491
|
-
| | `cpu` | `cu118` | `cu121` |
|
492
|
-
| ----------- | ----- | ------- | ------- |
|
493
|
-
| **Linux** | ✅
|
494
|
-
| **Windows** | ✅
|
495
|
-
| **macOS** | ✅
|
475
|
+
| | `cpu` | `cu118` | `cu121` | `cu124` |
|
476
|
+
| ----------- | ----- | ------- | ------- | ------- |
|
477
|
+
| **Linux** | ✅ | ✅ | ✅ | ✅ |
|
478
|
+
| **Windows** | ✅ | ✅ | ✅ | ✅ |
|
479
|
+
| **macOS** | ✅ | | | |
|
496
480
|
|
497
|
-
**Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1, PyTorch 1.9.0, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 1.12.0/1.12.1, PyTorch 1.13.0/1.13.1,
|
481
|
+
**Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1, PyTorch 1.9.0, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 1.12.0/1.12.1, PyTorch 1.13.0/1.13.1, PyTorch 2.0.0/2.0.1, PyTorch 2.1.0/2.1.1/2.1.2, PyTorch 2.2.0/2.2.1/2.2.2, and PyTorch 2.3.0/2.3.1 (following the same procedure).
|
498
482
|
**For older versions, you might need to explicitly specify the latest supported version number** or install via `pip install --no-index` in order to prevent a manual installation from source.
|
499
483
|
You can look up the latest supported version number [here](https://data.pyg.org/whl).
|
500
484
|
|
@@ -16,7 +16,7 @@ ______________________________________________________________________
|
|
16
16
|
**PyG** *(PyTorch Geometric)* is a library built upon [PyTorch](https://pytorch.org/) to easily write and train Graph Neural Networks (GNNs) for a wide range of applications related to structured data.
|
17
17
|
|
18
18
|
It consists of various methods for deep learning on graphs and other irregular structures, also known as *[geometric deep learning](http://geometricdeeplearning.com/)*, from a variety of published papers.
|
19
|
-
In addition, it consists of easy-to-use mini-batch loaders for operating on many small and single giant graphs, [multi GPU-support](https://github.com/pyg-team/pytorch_geometric/tree/master/examples/multi_gpu), [`torch.compile`](https://pytorch-geometric.readthedocs.io/en/latest/advanced/compile.html) support, [`DataPipe`](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/datapipe.py) support, a large number of common benchmark datasets (based on simple interfaces to create your own),
|
19
|
+
In addition, it consists of easy-to-use mini-batch loaders for operating on many small and single giant graphs, [multi GPU-support](https://github.com/pyg-team/pytorch_geometric/tree/master/examples/multi_gpu), [`torch.compile`](https://pytorch-geometric.readthedocs.io/en/latest/advanced/compile.html) support, [`DataPipe`](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/datapipe.py) support, a large number of common benchmark datasets (based on simple interfaces to create your own), and helpful transforms, both for learning on arbitrary graphs as well as on 3D meshes or point clouds.
|
20
20
|
|
21
21
|
**[Click here to join our Slack community!][slack-url]**
|
22
22
|
|
@@ -47,7 +47,6 @@ Whether you are a machine learning researcher or first-time user of machine lear
|
|
47
47
|
Making modifications to existing models or creating new architectures is simple, thanks to its easy-to-use message passing API, and a variety of operators and utility functions.
|
48
48
|
- **Large-scale real-world GNN models**:
|
49
49
|
We focus on the need of GNN applications in challenging real-world scenarios, and support learning on diverse types of graphs, including but not limited to: scalable GNNs for graphs with millions of nodes; dynamic GNNs for node predictions over time; heterogeneous GNNs with multiple node types and edge types.
|
50
|
-
- **GraphGym integration**: GraphGym lets users easily reproduce GNN experiments, is able to launch and analyze thousands of different GNN configurations, and is customizable by registering new modules to a GNN learning pipeline.
|
51
50
|
|
52
51
|
## Quick Tour for New Users
|
53
52
|
|
@@ -110,7 +109,7 @@ More information about evaluating final model performance can be found in the co
|
|
110
109
|
In addition to the easy application of existing GNNs, PyG makes it simple to implement custom Graph Neural Networks (see [here](https://pytorch-geometric.readthedocs.io/en/latest/tutorial/create_gnn.html) for the accompanying tutorial).
|
111
110
|
For example, this is all it takes to implement the [edge convolutional layer](https://arxiv.org/abs/1801.07829) from Wang *et al.*:
|
112
111
|
|
113
|
-
$$x_i^{\\prime} ~ = ~ \\max\_{j \\in \\mathcal{N}(i)} ~ \\textrm{MLP}\_{\\theta} \\left(
|
112
|
+
$$x_i^{\\prime} ~ = ~ \\max\_{j \\in \\mathcal{N}(i)} ~ \\textrm{MLP}\_{\\theta} \\left( [ ~ x_i, ~ x_j - x_i ~ ] \\right)$$
|
114
113
|
|
115
114
|
```python
|
116
115
|
import torch
|
@@ -139,20 +138,6 @@ class EdgeConv(MessagePassing):
|
|
139
138
|
return self.mlp(edge_features) # shape [num_edges, out_channels]
|
140
139
|
```
|
141
140
|
|
142
|
-
### Manage experiments with GraphGym
|
143
|
-
|
144
|
-
GraphGym allows you to manage and launch GNN experiments, using a highly modularized pipeline (see [here](https://pytorch-geometric.readthedocs.io/en/latest/advanced/graphgym.html) for the accompanying tutorial).
|
145
|
-
|
146
|
-
```
|
147
|
-
git clone https://github.com/pyg-team/pytorch_geometric.git
|
148
|
-
cd pytorch_geometric/graphgym
|
149
|
-
bash run_single.sh # run a single GNN experiment (node/edge/graph-level)
|
150
|
-
bash run_batch.sh # run a batch of GNN experiments, using differnt GNN designs/datasets/tasks
|
151
|
-
```
|
152
|
-
|
153
|
-
Users are highly encouraged to check out the [documentation](https://pytorch-geometric.readthedocs.io/en/latest), which contains additional tutorials on the essential functionalities of PyG, including data handling, creation of datasets and a full list of implemented methods, transforms, and datasets.
|
154
|
-
For a quick start, check out our [examples](https://github.com/pyg-team/pytorch_geometric/tree/master/examples) in `examples/`.
|
155
|
-
|
156
141
|
## Architecture Overview
|
157
142
|
|
158
143
|
PyG provides a multi-layer framework that enables users to build Graph Neural Network solutions on both low and high levels.
|
@@ -191,7 +176,7 @@ These GNN layers can be stacked together to create Graph Neural Network models.
|
|
191
176
|
- **[EGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.EGConv.html)** from Tailor *et al.*: [Adaptive Filters and Aggregator Fusion for Efficient Graph Convolutions](https://arxiv.org/abs/2104.01481) (GNNSys 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/egc.py)\]
|
192
177
|
- **[GATv2Conv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GATv2Conv.html)** from Brody *et al.*: [How Attentive are Graph Attention Networks?](https://arxiv.org/abs/2105.14491) (ICLR 2022)
|
193
178
|
- **[TransformerConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.TransformerConv.html)** from Shi *et al.*: [Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification](https://arxiv.org/abs/2009.03509) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/unimp_arxiv.py)\]
|
194
|
-
- **[SAGEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SAGEConv.html)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/
|
179
|
+
- **[SAGEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SAGEConv.html)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup.py), [**Example4**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup_ppi.py)\]
|
195
180
|
- **[GraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GraphConv.html)** from, *e.g.*, Morris *et al.*: [Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks](https://arxiv.org/abs/1810.02244) (AAAI 2019)
|
196
181
|
- **[GatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GatedGraphConv.html)** from Li *et al.*: [Gated Graph Sequence Neural Networks](https://arxiv.org/abs/1511.05493) (ICLR 2016)
|
197
182
|
- **[ResGatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.ResGatedGraphConv.html)** from Bresson and Laurent: [Residual Gated Graph ConvNets](https://arxiv.org/abs/1711.07553) (CoRR 2017)
|
@@ -334,7 +319,7 @@ Such application is challenging since the entire graph, its associated features
|
|
334
319
|
Many state-of-the-art scalability approaches tackle this challenge by sampling neighborhoods for mini-batch training, graph clustering and partitioning, or by using simplified GNN models.
|
335
320
|
These approaches have been implemented in PyG, and can benefit from the above GNN layers, operators and models.
|
336
321
|
|
337
|
-
- **[NeighborLoader](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.NeighborLoader)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/
|
322
|
+
- **[NeighborLoader](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.NeighborLoader)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/to_hetero_mag.py)\]
|
338
323
|
- **[ClusterGCN](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.ClusterLoader)** from Chiang *et al.*: [Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks](https://arxiv.org/abs/1905.07953) (KDD 2019) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_ppi.py)\]
|
339
324
|
- **[GraphSAINT](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.GraphSAINTSampler)** from Zeng *et al.*: [GraphSAINT: Graph Sampling Based Inductive Learning Method](https://arxiv.org/abs/1907.04931) (ICLR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_saint.py)\]
|
340
325
|
|
@@ -349,7 +334,7 @@ These approaches have been implemented in PyG, and can benefit from the above GN
|
|
349
334
|
|
350
335
|
## Installation
|
351
336
|
|
352
|
-
PyG is available for Python 3.
|
337
|
+
PyG is available for Python 3.9 to Python 3.12.
|
353
338
|
|
354
339
|
### Anaconda
|
355
340
|
|
@@ -386,39 +371,39 @@ We recommend to start with a minimal installation, and install additional depend
|
|
386
371
|
|
387
372
|
For ease of installation of these extensions, we provide `pip` wheels for all major OS/PyTorch/CUDA combinations, see [here](https://data.pyg.org/whl).
|
388
373
|
|
389
|
-
#### PyTorch 2.
|
374
|
+
#### PyTorch 2.5
|
390
375
|
|
391
|
-
To install the binaries for PyTorch 2.
|
376
|
+
To install the binaries for PyTorch 2.5.0, simply run
|
392
377
|
|
393
378
|
```
|
394
|
-
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.
|
379
|
+
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
|
395
380
|
```
|
396
381
|
|
397
|
-
where `${CUDA}` should be replaced by either `cpu`, `cu118`, or `
|
382
|
+
where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu121`, or `cu124` depending on your PyTorch installation.
|
398
383
|
|
399
|
-
| | `cpu` | `cu118` | `cu121` |
|
400
|
-
| ----------- | ----- | ------- | ------- |
|
401
|
-
| **Linux** | ✅
|
402
|
-
| **Windows** | ✅
|
403
|
-
| **macOS** | ✅
|
384
|
+
| | `cpu` | `cu118` | `cu121` | `cu124` |
|
385
|
+
| ----------- | ----- | ------- | ------- | ------- |
|
386
|
+
| **Linux** | ✅ | ✅ | ✅ | ✅ |
|
387
|
+
| **Windows** | ✅ | ✅ | ✅ | ✅ |
|
388
|
+
| **macOS** | ✅ | | | |
|
404
389
|
|
405
|
-
#### PyTorch 2.
|
390
|
+
#### PyTorch 2.4
|
406
391
|
|
407
|
-
To install the binaries for PyTorch 2.
|
392
|
+
To install the binaries for PyTorch 2.4.0, simply run
|
408
393
|
|
409
394
|
```
|
410
|
-
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.
|
395
|
+
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
|
411
396
|
```
|
412
397
|
|
413
|
-
where `${CUDA}` should be replaced by either `cpu`, `cu118`, or `
|
398
|
+
where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu121`, or `cu124` depending on your PyTorch installation.
|
414
399
|
|
415
|
-
| | `cpu` | `cu118` | `cu121` |
|
416
|
-
| ----------- | ----- | ------- | ------- |
|
417
|
-
| **Linux** | ✅
|
418
|
-
| **Windows** | ✅
|
419
|
-
| **macOS** | ✅
|
400
|
+
| | `cpu` | `cu118` | `cu121` | `cu124` |
|
401
|
+
| ----------- | ----- | ------- | ------- | ------- |
|
402
|
+
| **Linux** | ✅ | ✅ | ✅ | ✅ |
|
403
|
+
| **Windows** | ✅ | ✅ | ✅ | ✅ |
|
404
|
+
| **macOS** | ✅ | | | |
|
420
405
|
|
421
|
-
**Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1, PyTorch 1.9.0, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 1.12.0/1.12.1, PyTorch 1.13.0/1.13.1,
|
406
|
+
**Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1, PyTorch 1.9.0, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 1.12.0/1.12.1, PyTorch 1.13.0/1.13.1, PyTorch 2.0.0/2.0.1, PyTorch 2.1.0/2.1.1/2.1.2, PyTorch 2.2.0/2.2.1/2.2.2, and PyTorch 2.3.0/2.3.1 (following the same procedure).
|
422
407
|
**For older versions, you might need to explicitly specify the latest supported version number** or install via `pip install --no-index` in order to prevent a manual installation from source.
|
423
408
|
You can look up the latest supported version number [here](https://data.pyg.org/whl).
|
424
409
|
|
@@ -4,13 +4,13 @@ build-backend="flit_core.buildapi"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name="pyg-nightly"
|
7
|
-
version="2.
|
7
|
+
version="2.7.0.dev20250114"
|
8
8
|
authors=[
|
9
9
|
{name="Matthias Fey", email="matthias@pyg.org"},
|
10
10
|
]
|
11
11
|
description="Graph Neural Network Library for PyTorch"
|
12
12
|
readme="README.md"
|
13
|
-
requires-python=">=3.
|
13
|
+
requires-python=">=3.9"
|
14
14
|
keywords=[
|
15
15
|
"deep-learning",
|
16
16
|
"pytorch",
|
@@ -22,7 +22,6 @@ classifiers=[
|
|
22
22
|
"Development Status :: 5 - Production/Stable",
|
23
23
|
"License :: OSI Approved :: MIT License",
|
24
24
|
"Programming Language :: Python",
|
25
|
-
"Programming Language :: Python :: 3.8",
|
26
25
|
"Programming Language :: Python :: 3.9",
|
27
26
|
"Programming Language :: Python :: 3.10",
|
28
27
|
"Programming Language :: Python :: 3.11",
|
@@ -37,15 +36,13 @@ dependencies=[
|
|
37
36
|
"psutil>=5.8.0",
|
38
37
|
"pyparsing",
|
39
38
|
"requests",
|
40
|
-
"scikit-learn",
|
41
|
-
"scipy",
|
42
39
|
"tqdm",
|
43
40
|
]
|
44
41
|
|
45
42
|
[project.optional-dependencies]
|
46
43
|
graphgym=[
|
47
44
|
"protobuf<4.21",
|
48
|
-
"pytorch-lightning",
|
45
|
+
"pytorch-lightning<2.3.0",
|
49
46
|
"yacs",
|
50
47
|
]
|
51
48
|
modelhub=[
|
@@ -71,13 +68,15 @@ dev=[
|
|
71
68
|
"torch_geometric[test]",
|
72
69
|
]
|
73
70
|
full = [
|
71
|
+
"scipy",
|
72
|
+
"scikit-learn",
|
74
73
|
"ase",
|
75
74
|
"captum<0.7.0",
|
76
75
|
"graphviz",
|
77
76
|
"h5py",
|
78
77
|
"matplotlib",
|
79
78
|
"networkx",
|
80
|
-
"numba",
|
79
|
+
"numba<0.60.0",
|
81
80
|
"opt_einsum",
|
82
81
|
"pandas",
|
83
82
|
"pgmpy",
|
@@ -140,6 +139,12 @@ include_trailing_comma = true
|
|
140
139
|
skip = [".gitignore", "__init__.py"]
|
141
140
|
|
142
141
|
[tool.ruff] # https://docs.astral.sh/ruff/rules
|
142
|
+
src = ["torch_geometric"]
|
143
|
+
line-length = 80
|
144
|
+
indent-width = 4
|
145
|
+
target-version = "py39"
|
146
|
+
|
147
|
+
[tool.ruff.lint]
|
143
148
|
select = [
|
144
149
|
"D", # pydocstyle
|
145
150
|
]
|
@@ -153,10 +158,9 @@ ignore = [
|
|
153
158
|
"D107", # Ignore "Missing docstring in __init__"
|
154
159
|
"D205", # Ignore "blank line required between summary line and description"
|
155
160
|
]
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
target-version = "py38"
|
161
|
+
|
162
|
+
[tool.ruff.format]
|
163
|
+
quote-style = "single"
|
160
164
|
|
161
165
|
[tool.ruff.lint.pydocstyle]
|
162
166
|
convention = "google"
|
@@ -203,3 +207,6 @@ exclude_lines = [
|
|
203
207
|
"register_parameter",
|
204
208
|
"torch.cuda.is_available",
|
205
209
|
]
|
210
|
+
|
211
|
+
[tool.setuptools]
|
212
|
+
py-modules = []
|
@@ -1,7 +1,15 @@
|
|
1
|
+
from collections import defaultdict
|
2
|
+
|
3
|
+
import torch
|
4
|
+
import torch_geometric.typing
|
5
|
+
|
1
6
|
from ._compile import compile, is_compiling
|
7
|
+
from ._onnx import is_in_onnx_export
|
8
|
+
from .index import Index
|
2
9
|
from .edge_index import EdgeIndex
|
3
10
|
from .seed import seed_everything
|
4
11
|
from .home import get_home_dir, set_home_dir
|
12
|
+
from .device import is_mps_available, is_xpu_available, device
|
5
13
|
from .isinstance import is_torch_instance
|
6
14
|
from .debug import is_debug_enabled, debug, set_debug
|
7
15
|
|
@@ -22,15 +30,20 @@ from .lazy_loader import LazyLoader
|
|
22
30
|
contrib = LazyLoader('contrib', globals(), 'torch_geometric.contrib')
|
23
31
|
graphgym = LazyLoader('graphgym', globals(), 'torch_geometric.graphgym')
|
24
32
|
|
25
|
-
__version__ = '2.
|
33
|
+
__version__ = '2.7.0.dev20250114'
|
26
34
|
|
27
35
|
__all__ = [
|
36
|
+
'Index',
|
28
37
|
'EdgeIndex',
|
29
38
|
'seed_everything',
|
30
39
|
'get_home_dir',
|
31
40
|
'set_home_dir',
|
32
41
|
'compile',
|
33
42
|
'is_compiling',
|
43
|
+
'is_in_onnx_export',
|
44
|
+
'is_mps_available',
|
45
|
+
'is_xpu_available',
|
46
|
+
'device',
|
34
47
|
'is_torch_instance',
|
35
48
|
'is_debug_enabled',
|
36
49
|
'debug',
|
@@ -41,3 +54,17 @@ __all__ = [
|
|
41
54
|
'torch_geometric',
|
42
55
|
'__version__',
|
43
56
|
]
|
57
|
+
|
58
|
+
# Serialization ###############################################################
|
59
|
+
|
60
|
+
if torch_geometric.typing.WITH_PT24:
|
61
|
+
torch.serialization.add_safe_globals([
|
62
|
+
dict,
|
63
|
+
list,
|
64
|
+
defaultdict,
|
65
|
+
Index,
|
66
|
+
torch_geometric.index.CatMetadata,
|
67
|
+
EdgeIndex,
|
68
|
+
torch_geometric.edge_index.SortOrder,
|
69
|
+
torch_geometric.edge_index.CatMetadata,
|
70
|
+
])
|
@@ -10,6 +10,8 @@ def is_compiling() -> bool:
|
|
10
10
|
r"""Returns :obj:`True` in case :pytorch:`PyTorch` is compiling via
|
11
11
|
:meth:`torch.compile`.
|
12
12
|
"""
|
13
|
+
if torch_geometric.typing.WITH_PT23:
|
14
|
+
return torch.compiler.is_compiling()
|
13
15
|
if torch_geometric.typing.WITH_PT21:
|
14
16
|
return torch._dynamo.is_compiling()
|
15
17
|
return False # pragma: no cover
|
@@ -25,10 +27,15 @@ def compile(
|
|
25
27
|
This function has the same signature as :meth:`torch.compile` (see
|
26
28
|
`here <https://pytorch.org/docs/stable/generated/torch.compile.html>`__).
|
27
29
|
|
30
|
+
Args:
|
31
|
+
model: The model to compile.
|
32
|
+
*args: Additional arguments of :meth:`torch.compile`.
|
33
|
+
**kwargs: Additional keyword arguments of :meth:`torch.compile`.
|
34
|
+
|
28
35
|
.. note::
|
29
36
|
:meth:`torch_geometric.compile` is deprecated in favor of
|
30
37
|
:meth:`torch.compile`.
|
31
38
|
"""
|
32
39
|
warnings.warn("'torch_geometric.compile' is deprecated in favor of "
|
33
40
|
"'torch.compile'")
|
34
|
-
return torch.compile(model, *args, **kwargs)
|
41
|
+
return torch.compile(model, *args, **kwargs) # type: ignore
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import torch
|
2
|
+
|
3
|
+
from torch_geometric import is_compiling
|
4
|
+
|
5
|
+
|
6
|
+
def is_in_onnx_export() -> bool:
|
7
|
+
r"""Returns :obj:`True` in case :pytorch:`PyTorch` is exporting to ONNX via
|
8
|
+
:meth:`torch.onnx.export`.
|
9
|
+
"""
|
10
|
+
if is_compiling():
|
11
|
+
return False
|
12
|
+
if torch.jit.is_scripting():
|
13
|
+
return False
|
14
|
+
return torch.onnx.is_in_onnx_export()
|
@@ -0,0 +1,113 @@
|
|
1
|
+
import inspect
|
2
|
+
from dataclasses import fields, is_dataclass
|
3
|
+
from importlib import import_module
|
4
|
+
from typing import Any, Dict
|
5
|
+
|
6
|
+
from torch_geometric.config_store import (
|
7
|
+
class_from_dataclass,
|
8
|
+
dataclass_from_class,
|
9
|
+
)
|
10
|
+
from torch_geometric.isinstance import is_torch_instance
|
11
|
+
|
12
|
+
|
13
|
+
class ConfigMixin:
|
14
|
+
r"""Enables a class to serialize/deserialize itself to a dataclass."""
|
15
|
+
def config(self) -> Any:
|
16
|
+
r"""Creates a serializable configuration of the class."""
|
17
|
+
data_cls = dataclass_from_class(self.__class__)
|
18
|
+
if data_cls is None:
|
19
|
+
raise ValueError(f"Could not find the configuration class that "
|
20
|
+
f"belongs to '{self.__class__.__name__}'. Please "
|
21
|
+
f"register it in the configuration store.")
|
22
|
+
|
23
|
+
kwargs: Dict[str, Any] = {}
|
24
|
+
for field in fields(data_cls):
|
25
|
+
if not hasattr(self, field.name):
|
26
|
+
continue
|
27
|
+
kwargs[field.name] = _recursive_config(getattr(self, field.name))
|
28
|
+
return data_cls(**kwargs)
|
29
|
+
|
30
|
+
@classmethod
|
31
|
+
def from_config(cls, cfg: Any, *args: Any, **kwargs: Any) -> Any:
|
32
|
+
r"""Instantiates the class from a serializable configuration."""
|
33
|
+
if getattr(cfg, '_target_', None):
|
34
|
+
cls = _locate_cls(cfg._target_)
|
35
|
+
elif isinstance(cfg, dict) and '_target_' in cfg:
|
36
|
+
cls = _locate_cls(cfg['_target_'])
|
37
|
+
|
38
|
+
data_cls = cfg.__class__
|
39
|
+
if not is_dataclass(data_cls):
|
40
|
+
data_cls = dataclass_from_class(cls)
|
41
|
+
if data_cls is None:
|
42
|
+
raise ValueError(f"Could not find the configuration class "
|
43
|
+
f"that belongs to '{cls.__name__}'. Please "
|
44
|
+
f"register it in the configuration store.")
|
45
|
+
|
46
|
+
field_names = {field.name for field in fields(data_cls)}
|
47
|
+
if isinstance(cfg, dict):
|
48
|
+
_kwargs = {k: v for k, v in cfg.items() if k in field_names}
|
49
|
+
cfg = data_cls(**_kwargs)
|
50
|
+
assert is_dataclass(cfg)
|
51
|
+
|
52
|
+
if len(args) > 0: # Convert `*args` to `**kwargs`:
|
53
|
+
param_names = list(inspect.signature(cls).parameters.keys())
|
54
|
+
if 'args' in param_names:
|
55
|
+
param_names.remove('args')
|
56
|
+
if 'kwargs' in param_names:
|
57
|
+
param_names.remove('kwargs')
|
58
|
+
|
59
|
+
for name, arg in zip(param_names, args):
|
60
|
+
kwargs[name] = arg
|
61
|
+
|
62
|
+
for key in field_names:
|
63
|
+
if key not in kwargs and key != '_target_':
|
64
|
+
kwargs[key] = _recursive_from_config(getattr(cfg, key))
|
65
|
+
|
66
|
+
return cls(**kwargs)
|
67
|
+
|
68
|
+
|
69
|
+
def _recursive_config(value: Any) -> Any:
|
70
|
+
if isinstance(value, ConfigMixin):
|
71
|
+
return value.config()
|
72
|
+
if is_torch_instance(value, ConfigMixin):
|
73
|
+
return value.config()
|
74
|
+
if isinstance(value, (tuple, list)):
|
75
|
+
return [_recursive_config(v) for v in value]
|
76
|
+
if isinstance(value, dict):
|
77
|
+
return {k: _recursive_config(v) for k, v in value.items()}
|
78
|
+
return value
|
79
|
+
|
80
|
+
|
81
|
+
def _recursive_from_config(value: Any) -> Any:
|
82
|
+
cls: Any = None
|
83
|
+
if is_dataclass(value):
|
84
|
+
if getattr(value, '_target_', None):
|
85
|
+
try:
|
86
|
+
cls = _locate_cls(value._target_) # type: ignore
|
87
|
+
except ImportError:
|
88
|
+
pass # Keep the dataclass as it is.
|
89
|
+
else:
|
90
|
+
cls = class_from_dataclass(value.__class__)
|
91
|
+
elif isinstance(value, dict) and '_target_' in value:
|
92
|
+
cls = _locate_cls(value['_target_'])
|
93
|
+
|
94
|
+
if cls is not None and issubclass(cls, ConfigMixin):
|
95
|
+
return cls.from_config(value)
|
96
|
+
if isinstance(value, (tuple, list)):
|
97
|
+
return [_recursive_from_config(v) for v in value]
|
98
|
+
if isinstance(value, dict):
|
99
|
+
return {k: _recursive_from_config(v) for k, v in value.items()}
|
100
|
+
return value
|
101
|
+
|
102
|
+
|
103
|
+
def _locate_cls(qualname: str) -> Any:
|
104
|
+
parts = qualname.split('.')
|
105
|
+
|
106
|
+
if len(parts) <= 1:
|
107
|
+
raise ValueError(f"Qualified name is missing a dot (got '{qualname}')")
|
108
|
+
|
109
|
+
if any([len(part) == 0 for part in parts]):
|
110
|
+
raise ValueError(f"Relative imports not supported (got '{qualname}')")
|
111
|
+
|
112
|
+
module_name, cls_name = '.'.join(parts[:-1]), parts[-1]
|
113
|
+
return getattr(import_module(module_name), cls_name)
|