Skip to main content

GraphScope: A One-Stop Large-Scale Graph Computing System from Alibaba

Project description

graphscope-logo

A One-Stop Large-Scale Graph Computing System from Alibaba

GraphScope CI Coverage Playground Open in Colab Artifact HUB Docs-en FAQ-en Docs-zh FAQ-zh README-zh

GraphScope is a unified distributed graph computing platform that provides a one-stop environment for performing diverse graph operations on a cluster of computers through a user-friendly Python interface. GraphScope makes multi-staged processing of large-scale graph data on compute clusters simply by combining several important pieces of Alibaba technology: including GRAPE, MaxGraph, and Graph-Learn (GL) for analytics, interactive, and graph neural networks (GNN) computation, respectively, and the Vineyard store that offers efficient in-memory data transfers.

Visit our website at graphscope.io to learn more.

Table of Contents

Getting Started

We provide a Playground with a managed JupyterLab. Try GraphScope straight away in your browser!

GraphScope supports running in standalone mode or on clusters managed by Kubernetes within containers. For quickly getting started, let's begin with the standalone mode.

Installation for Standalone Mode

GraphScope pre-compiled package is distributed as a python package and can be easily installed with pip.

pip3 install graphscope

Note that graphscope requires Python >= 3.8 and pip >= 19.3. The package is built for and tested on the most popular Linux (Ubuntu 20.04+ / CentOS 7+) and macOS 11+ (Intel) / macOS 12+ (Apple silicon) distributions. For Windows users, you may want to install Ubuntu on WSL2 to use this package.

Next, we will walk you through a concrete example to illustrate how GraphScope can be used by data scientists to effectively analyze large graphs.

Demo: Node Classification on Citation Network

ogbn-mag is a heterogeneous network composed of a subset of the Microsoft Academic Graph. It contains 4 types of entities(i.e., papers, authors, institutions, and fields of study), as well as four types of directed relations connecting two entities.

Given the heterogeneous ogbn-mag data, the task is to predict the class of each paper. Node classification can identify papers in multiple venues, which represent different groups of scientific work on different topics. We apply both the attribute and structural information to classify papers. In the graph, each paper node contains a 128-dimensional word2vec vector representing its content, which is obtained by averaging the embeddings of words in its title and abstract. The embeddings of individual words are pre-trained. The structural information is computed on-the-fly.

Loading a graph

GraphScope models graph data as property graph, in which the edges/vertices are labeled and have many properties. Taking ogbn-mag as example, the figure below shows the model of the property graph.

sample-of-property-graph

This graph has four kinds of vertices, labeled as paper, author, institution and field_of_study. There are four kinds of edges connecting them, each kind of edges has a label and specifies the vertex labels for its two ends. For example, cites edges connect two vertices labeled paper. Another example is writes, it requires the source vertex is labeled author and the destination is a paper vertex. All the vertices and edges may have properties. e.g., paper vertices have properties like features, publish year, subject label, etc.

To load this graph to GraphScope with our retrieval module, please use these code:

import graphscope
from graphscope.dataset import load_ogbn_mag

g = load_ogbn_mag()

We provide a set of functions to load graph datasets from ogb and snap for convenience. Please find all the available graphs here. If you want to use your own graph data, please refer this doc to load vertices and edges by labels.

Interactive query

Interactive queries allow users to directly explore, examine, and present graph data in an exploratory manner in order to locate specific or in-depth information in time. GraphScope adopts a high-level language called Gremlin for graph traversal, and provides efficient execution at scale.

In this example, we use graph traversal to count the number of papers two given authors have co-authored. To simplify the query, we assume the authors can be uniquely identified by ID 2 and 4307, respectively.

# get the endpoint for submitting Gremlin queries on graph g.
interactive = graphscope.gremlin(g)

# count the number of papers two authors (with id 2 and 4307) have co-authored
papers = interactive.execute("g.V().has('author', 'id', 2).out('writes').where(__.in('writes').has('id', 4307)).count()").one()

Graph analytics

Graph analytics is widely used in real world. Many algorithms, like community detection, paths and connectivity, centrality are proven to be very useful in various businesses. GraphScope ships with a set of built-in algorithms, enables users easily analysis their graph data.

Continuing our example, below we first derive a subgraph by extracting publications in specific time out of the entire graph (using Gremlin!), and then run k-core decomposition and triangle counting to generate the structural features of each paper node.

Please note that many algorithms may only work on homogeneous graphs, and therefore, to evaluate these algorithms over a property graph, we need to project it into a simple graph at first.

# extract a subgraph of publication within a time range
sub_graph = interactive.subgraph("g.V().has('year', gte(2014).and(lte(2020))).outE('cites')")

# project the projected graph to simple graph.
simple_g = sub_graph.project(vertices={"paper": []}, edges={"cites": []})

ret1 = graphscope.k_core(simple_g, k=5)
ret2 = graphscope.triangles(simple_g)

# add the results as new columns to the citation graph
sub_graph = sub_graph.add_column(ret1, {"kcore": "r"})
sub_graph = sub_graph.add_column(ret2, {"tc": "r"})

In addition, users can write their own algorithms in GraphScope. Currently, GraphScope supports users to write their own algorithms in Pregel model and PIE model.

Graph neural networks (GNNs)

Graph neural networks (GNNs) combines superiority of both graph analytics and machine learning. GNN algorithms can compress both structural and attribute information in a graph into low-dimensional embedding vectors on each node. These embeddings can be further fed into downstream machine learning tasks.

In our example, we train a GCN model to classify the nodes (papers) into 349 categories, each of which represents a venue (e.g. pre-print and conference). To achieve this, first we launch a learning engine and build a graph with features following the last step.

# define the features for learning
paper_features = [f"feat_{i}" for i in range(128)]

paper_features.append("kcore")
paper_features.append("tc")

# launch a learning engine.
lg = graphscope.graphlearn(sub_graph, nodes=[("paper", paper_features)],
                  edges=[("paper", "cites", "paper")],
                  gen_labels=[
                      ("train", "paper", 100, (0, 75)),
                      ("val", "paper", 100, (75, 85)),
                      ("test", "paper", 100, (85, 100))
                  ])

Then we define the training process, and run it.

# Note: Here we use tensorflow as NN backend to train GNN model. so please
# install tensorflow.
try:
    # https://www.tensorflow.org/guide/migrate
    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
except ImportError:
    import tensorflow as tf

import graphscope.learning
from graphscope.learning.examples import EgoGraphSAGE
from graphscope.learning.examples import EgoSAGESupervisedDataLoader
from graphscope.learning.examples.tf.trainer import LocalTrainer

# supervised GCN.
def train_gcn(graph, node_type, edge_type, class_num, features_num,
              hops_num=2, nbrs_num=[25, 10], epochs=2,
              hidden_dim=256, in_drop_rate=0.5, learning_rate=0.01,
):
    graphscope.learning.reset_default_tf_graph()

    dimensions = [features_num] + [hidden_dim] * (hops_num - 1) + [class_num]
    model = EgoGraphSAGE(dimensions, act_func=tf.nn.relu, dropout=in_drop_rate)

    # prepare train dataset
    train_data = EgoSAGESupervisedDataLoader(
        graph, graphscope.learning.Mask.TRAIN,
        node_type=node_type, edge_type=edge_type, nbrs_num=nbrs_num, hops_num=hops_num,
    )
    train_embedding = model.forward(train_data.src_ego)
    train_labels = train_data.src_ego.src.labels
    loss = tf.reduce_mean(
        tf.nn.sparse_softmax_cross_entropy_with_logits(
            labels=train_labels, logits=train_embedding,
        )
    )
    optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)

    # prepare test dataset
    test_data = EgoSAGESupervisedDataLoader(
        graph, graphscope.learning.Mask.TEST,
        node_type=node_type, edge_type=edge_type, nbrs_num=nbrs_num, hops_num=hops_num,
    )
    test_embedding = model.forward(test_data.src_ego)
    test_labels = test_data.src_ego.src.labels
    test_indices = tf.math.argmax(test_embedding, 1, output_type=tf.int32)
    test_acc = tf.div(
        tf.reduce_sum(tf.cast(tf.math.equal(test_indices, test_labels), tf.float32)),
        tf.cast(tf.shape(test_labels)[0], tf.float32),
    )

    # train and test
    trainer = LocalTrainer()
    trainer.train(train_data.iterator, loss, optimizer, epochs=epochs)
    trainer.test(test_data.iterator, test_acc)

train_gcn(lg, node_type="paper", edge_type="cites",
          class_num=349,  # output dimension
          features_num=130,  # input dimension, 128 + kcore + triangle count
)

A Python script with the entire process is available here, you may try it out by yourself.

Processing Large Graph on Kubernetes Cluster

GraphScope is designed for processing large graphs, which are usually hard to fit in the memory of a single machine. With Vineyard as the distributed in-memory data manager, GraphScope supports running on a cluster managed by Kubernetes(k8s).

To continue this tutorial, please ensure that you have a k8s-managed cluster and know the credentials for the cluster. (e.g., address of k8s API server, usually stored a ~/.kube/config file.)

Alternatively, you can set up a local k8s cluster for testing with Kind. We provide a script for setup this environment.

# for usage, type -h
./scripts/install_deps.sh --k8s

If you did not install the graphscope package in the above step, you can install a subset of the whole package with client functions only.

pip3 install graphscope-client

Next, let's revisit the example by running on a cluster instead.

how-it-works

The figure shows the flow of execution in the cluster mode. When users run code in the python client, it will:

  • Step 1. Create a session or workspace in GraphScope.
  • Step 2 - Step 5. Load a graph, query, analysis and run learning task on this graph via Python interface. These steps are the same to local mode, thus users process huge graphs in a distributed setting just like analysis a small graph on a single machine.(Note that graphscope.gremlin and graphscope.graphlearn need to be changed to sess.gremlin and sess.graphlearn, respectively. sess is the name of the Session instance user created.)
  • Step 6. Close the session.

Creating a session

To use GraphScope in a distributed setting, we need to establish a session in a python interpreter.

For convenience, we provide several demo datasets, and an option with_dataset to mount the dataset in the graphscope cluster. The datasets will be mounted to /dataset in the pods. If you want to use your own data on k8s cluster, please refer to this.

import graphscope

sess = graphscope.session(with_dataset=True)

For macOS, the session needs to establish with the LoadBalancer service type (which is NodePort by default).

import graphscope

sess = graphscope.session(with_dataset=True, k8s_service_type="LoadBalancer")

A session tries to launch a coordinator, which is the entry for the back-end engines. The coordinator manages a cluster of resources (k8s pods), and the interactive/analytical/learning engines ran on them. For each pod in the cluster, there is a vineyard instance at service for distributed data in memory.

Loading a graph and processing computation tasks

Similar to the standalone mode, we can still use the functions to load a graph easily.

from graphscope.dataset import load_ogbn_mag

# Note we have mounted the demo datasets to /dataset,
# There are several datasets including ogbn_mag_small,
# User can attach to the engine container and explore the directory.
g = load_ogbn_mag(sess, "/dataset/ogbn_mag_small/")

Here, the g is loaded in parallel via vineyard and stored in vineyard instances in the cluster managed by the session.

Next, we can conduct graph queries with Gremlin, invoke various graph algorithms, or run graph-based neural network tasks like we did in the standalone mode. We do not repeat code here, but a .ipynb processing the classification task on k8s is available on the Playground.

Closing the session

Another additional step in the distribution is session close. We close the session after processing all graph tasks.

sess.close()

This operation will notify the backend engines and vineyard to safely unload graphs and their applications, Then, the coordinator will release all the applied resources in the k8s cluster.

Please note that we have not hardened this release for production use and it lacks important security features such as authentication and encryption, and therefore it is NOT recommended for production use (yet)!

Development

Building on local

To build graphscope Python package and the engine binaries, you need to install some dependencies and build tools.

./gs install-deps dev

# With argument --cn to speed up the download if you are in China.
./gs install-deps dev --cn

Then you can build GraphScope with pre-configured make commands.

# to make graphscope whole package, including python package + engine binaries.
sudo make install

# or make the engine components
# make interactive
# make analytical
# make learning

Building Docker images

GraphScope ships with a Dockerfile that can build docker images for releasing. The images are built on a builder image with all dependencies installed and copied to a runtime-base image. To build images with latest version of GraphScope, go to the k8s/internal directory under root directory and run this command.

# by default, the built image is tagged as graphscope/graphscope:SHORTSHA
# cd k8s
make graphscope

Building client library

GraphScope python interface is separate with the engines image. If you are developing python client and not modifying the protobuf files, the engines image doesn't require to be rebuilt.

You may want to re-install the python client on local.

make client

Note that the learning engine client has C/C++ extensions modules and setting up the build environment is a bit tedious. By default the locally-built client library doesn't include the support for learning engine. If you want to build client library with learning engine enabled, please refer Build Python Wheels.

Testing

To verify the correctness of your developed features, your code changes should pass our tests.

You may run the whole test suite with commands:

make test

Documentation

Documentation can be generated using Sphinx. Users can build the documentation using:

# build the docs
make graphscope-docs

# to open preview on local
open docs/_build/latest/html/index.html

The latest version of online documentation can be found at https://graphscope.io/docs

License

GraphScope is released under Apache License 2.0. Please note that third-party libraries may not have the same license as GraphScope.

Publications

  • Wenfei Fan, Tao He, Longbin Lai, Xue Li, Yong Li, Zhao Li, Zhengping Qian, Chao Tian, Lei Wang, Jingbo Xu, Youyang Yao, Qiang Yin, Wenyuan Yu, Jingren Zhou, Diwen Zhu, Rong Zhu. GraphScope: A Unified Engine For Big Graph Processing. The 47th International Conference on Very Large Data Bases (VLDB), industry, 2021.
  • Jingbo Xu, Zhanning Bai, Wenfei Fan, Longbin Lai, Xue Li, Zhao Li, Zhengping Qian, Lei Wang, Yanyan Wang, Wenyuan Yu, Jingren Zhou. GraphScope: A One-Stop Large Graph Processing System. The 47th International Conference on Very Large Data Bases (VLDB), demo, 2021

Contributing

Any contributions you make are greatly appreciated!

  • Join in the Slack channel for discussion.
  • Please report bugs by submitting a GitHub issue.
  • Please submit contributions using pull requests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

graphscope_client-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

graphscope_client-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (61.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

graphscope_client-0.22.0-cp311-cp311-macosx_12_0_arm64.whl (21.7 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

graphscope_client-0.22.0-cp311-cp311-macosx_11_0_x86_64.whl (24.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

graphscope_client-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

graphscope_client-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (61.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

graphscope_client-0.22.0-cp310-cp310-macosx_12_0_arm64.whl (21.7 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

graphscope_client-0.22.0-cp310-cp310-macosx_11_0_x86_64.whl (24.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

graphscope_client-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

graphscope_client-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (61.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

graphscope_client-0.22.0-cp39-cp39-macosx_12_0_arm64.whl (21.7 MB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

graphscope_client-0.22.0-cp39-cp39-macosx_11_0_x86_64.whl (24.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

graphscope_client-0.22.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

graphscope_client-0.22.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (61.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

graphscope_client-0.22.0-cp38-cp38-macosx_12_0_arm64.whl (21.7 MB view details)

Uploaded CPython 3.8macOS 12.0+ ARM64

graphscope_client-0.22.0-cp38-cp38-macosx_11_0_x86_64.whl (24.3 MB view details)

Uploaded CPython 3.8macOS 11.0+ x86-64

graphscope_client-0.22.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.4 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

graphscope_client-0.22.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (61.5 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

File details

Details for the file graphscope_client-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e767ef83bf0c13f1540a72134344aabecc5bd0e8f7537aff9234eb995ed62a7
MD5 a42b325c79b13fa3fd86a4e58885f981
BLAKE2b-256 138b6f3350623fbb69f0a95a5d2e90bb963c7eed47bf4b69a9391fca7fea5d6e

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7ff9589f0c88fb20fb7629e74633b1edc21c35b11b65e0d9ed4ffdd9cec9ed38
MD5 406a7825e9746b4acebea25312893116
BLAKE2b-256 e76efe5bad4751c5ff0a524d0f932dd8469c743d1712d6356147a2faf8ac89fa

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 0ba9781859e68e4c629dead7ee24e9afccd7812db4b7c4f3e9fb85ae63b75cb7
MD5 d6620bc6028f0d11184d909e14ea3019
BLAKE2b-256 36f1a182835034e5651e9b29954860fd335ac1673e91068824be648d427a464a

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d5ae11f31c46eb0b3a58e138349027cb41b2e13dd979dbb988a6cc912548f8d5
MD5 571a12326414a878650a7c1ab7a3b8b0
BLAKE2b-256 d673d267c117e38c50a0813ffb8243d043b944fd25390b794f5873951d69ef9e

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 750b47d5f317e31599cb038d768c8def55b16b7adc3567ca5eaac90957274c2f
MD5 515b7dfe521f726dbfc406ff26816688
BLAKE2b-256 0e79edbd0540e1f6bdb3392a33fdd769de888b7904dae6a5795e4646df705f7c

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0e36d5bcb76189576c382afcf2ad173d0c9f55aab5210c8015448ebdaf906230
MD5 fbdc03f2f11bc0c6cf347048fd076959
BLAKE2b-256 d59503e620df630dedd74cdc1325009930b6ddbaf5d176f6e2cb939c1f26b0e0

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 7591d2f85381e2e390a5a763fe31714c6938168bbfb77f0d1d2dc6b0b6c51875
MD5 44f9970636f2610d21b8a3500b65929c
BLAKE2b-256 d91b785322f20f670a2f792af754534b0f5d796d65320dc4b2a07caaf1897caa

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2395298a54a8728b37155e4b1dae281c11bd22cc6b4bb074b2c98c646a3ddefc
MD5 e6c475d30a1bb5a9f13f83d85b400e61
BLAKE2b-256 85e7b248ca2506c716ac6a2c8d52089f8173878b70babde7091c1e57d97ac5c4

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c4f8df405500705b4d0c95f533850169dd183ea258cbf29c0578f1240cbda87
MD5 c43f3be3538c693dccff1ee263cc3d5b
BLAKE2b-256 a40274bcfa4c7b085b19bb79949d9f2553382601965701c5ff72b49f64db7edb

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9dbe58cea04c52a15da24ab1c11b530861268a1d57a8cd1a3585d91a5c2493ea
MD5 4ec5dd50e46b19dba788bafff35b3a71
BLAKE2b-256 657d12376c12155a63bb9d51ed549cd7aba8cbcf311dc6fc1c4cbbc64a55ca82

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 7fe7f3d15185c3d703edb6b6829ba4bdc603473e0327319df09ccf336dffe9d4
MD5 ac1d95ce67c6479b129d54d6b0a5b921
BLAKE2b-256 d8efe5d214926633fc86386e49c3201c1a7cbd05cb7ad28cb77433da6874158f

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 04236de83a8c2baf86200a08de442c65d73705ddf0b95b31cb2ebb151349c2ca
MD5 0e51686b8a39f206b895ba52f186806c
BLAKE2b-256 59f63f2eff3a7d2c132b6a6acf478dd3449fe875ec2be1922e2a8fc00ee94523

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b3d69ff476091f35f07bed6c18cd4c4d5e1a539a6d96d680754237655fe0cc05
MD5 52fa6da4e520f91a4d0c9ca768bdbb8d
BLAKE2b-256 e3557f48a38b4fcc386080a4c4ce634a712f50a0b19e3efad0f0bb7dc7067507

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3c6bb843f9fe0ce17a43a8a54bbbeaed2d6817f2e730ef3a45a4d2b5326c15b0
MD5 e7bce053431c0377da5a65dbdcf25f1c
BLAKE2b-256 daed0b968eda3541f9abf1e5fd0797c7bce43ba67994047aaa381837a09544aa

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp38-cp38-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp38-cp38-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 b0dff09ebe02cfed9d5620f1be652731c2f374a0806c7643f321894f331c98a8
MD5 dedfa02bf50016f82772701fb2189983
BLAKE2b-256 3903f3207a3e44369f2744bdf8dac9a6606899d68d0f81bdcbdfc9138ed78b8a

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 94c723323da9a5e2780dc35d39087950f3d7550a62c2bbbec23c2b1b206ce2e1
MD5 e6631cb2ab865e44ad635da9880d7af8
BLAKE2b-256 7fd60394f4f2346b2ac703cec9a216459e9c86d8b715621303bea8bc03335960

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b40692adf1b209d53734ced904528346f5ca77a87e7cc824eb8331012e0f3eb
MD5 5f561d5714502d5bcbed6bb540831d0f
BLAKE2b-256 3a471181b1a4ce434b6a93006617aa64adc7bbd3e0f0cd8d32c15f1c5c1c7676

See more details on using hashes here.

File details

Details for the file graphscope_client-0.22.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graphscope_client-0.22.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 73420fed6dca53b3443809d49874d4b78344ea837b3e72a6d67a629b947db8e8
MD5 3d344ad141ab7790cc9f2648fd19e49e
BLAKE2b-256 429e4a56d9e8b4a81760d1a31e54407b818e761207dea9284749e073234aa3fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page