From 57e6effea8a1b7068f882b604162bd23f69884a7 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Wed, 23 Jul 2025 16:32:06 +0100 Subject: [PATCH 1/6] DOC-546: WIP adding client content --- docs/modules/clients/pages/python.adoc | 126 +++++++++++++++++++++++-- 1 file changed, 119 insertions(+), 7 deletions(-) diff --git a/docs/modules/clients/pages/python.adoc b/docs/modules/clients/pages/python.adoc index f9cce37b6..d4aa9ddf1 100644 --- a/docs/modules/clients/pages/python.adoc +++ b/docs/modules/clients/pages/python.adoc @@ -1,20 +1,132 @@ = Python Client :page-api-reference: https://hazelcast.readthedocs.io/en/v{page-latest-supported-python-client}/index.html -TIP: For the latest Python API documentation, see https://hazelcast.readthedocs.io/en/v{page-latest-supported-python-client}/index.html[Hazelcast Python Client docs]. +== Overview + +This section provides information about the Python client for Hazelcast, and explains how to install and use the client. + +TIP: To learn how to get started quickly with the Hazelcast Python client, follow our simple xref:clients:python-client-getting-started.adoc[Get started with Python] tutorial. The Hazelcast native Python client is an official library that allows Python applications to connect to and interact with Hazelcast clusters. It is implemented using the Hazelcast Open Binary Client Protocol. The key features and benefits include: -* Distributed Data Structures: the client provides access to Hazelcast's distributed data structures such as maps, queues, topics, lists, sets, and more -* SQL Support: it offers the ability to query Map data using standard SQL syntax -* JSON Object Support: it allows using and querying JSON objects -* Compact Serialization: the client supports Compact serialization, which provides efficient serialization for objects -* DBAPI Support: it implements the DBAPI interface on top of the SQL service, making it compatible with various libraries and tools -* Near Cache: the client supports the Near Cache feature for faster read speeds on frequently accessed data +* Distributed data structures: the client provides access to Hazelcast's distributed data structures such as maps, queues, topics, lists, sets, and more +* SQL support: it offers the ability to query Map data using standard SQL syntax +* JSON object support: it allows using and querying JSON objects +* Compact serialization: the client supports compact serialization, which provides efficient serialization for objects +* DBAPI support: it implements the DBAPI interface on top of the SQL service, making it compatible with various libraries and tools +* Near cache: the client supports the near cache feature for faster read speeds on frequently accessed data * Integration with Jupyter Notebook: the client can be used in Jupyter Notebook environments, enabling interactive data analysis and visualization These features make the Hazelcast Python Client a powerful tool for Python applications requiring distributed computing, in-memory data processing, and real-time analytics capabilities. +TIP: For the latest Python API documentation, see https://hazelcast.readthedocs.io/en/v{page-latest-supported-python-client}/index.html[Hazelcast Python Client docs]. + +== Install the Python client + +(Author's note - continue from here onwards:) + +This section explains how to set up a Hazelcast cluster and install the Hazelcast Python client. + +=== Set up a Hazelcast cluster + +The Hazelcast Python client requires a working Hazelcast cluster to run. The cluster handles storage and manipulation of the user data. Clients are a way to connect to the Hazelcast cluster and access the data. + +The quickest way to start a single member cluster for development +purposes is to use our https://hub.docker.com/r/hazelcast/hazelcast/[Docker images]. + +```bash +docker run -p 5701:5701 hazelcast/hazelcast:5.3.0 +``` + +Alternatively, you can use our https://hazelcast.com/open-source-projects/downloads/[ZIP or TAR distributions]. +After downloading, start the Hazelcast member using the ``bin/hz-start`` script. + +For more information on setting up a Hazelcast cluster, see the https://hazelcast.readthedocs.io/en/latest/getting_started.html[Python client documntation]. + +== Install the client + +// Author's note - what does the following do? I'm not sure why it's entitled 'client'? + +installs the Hazelcast Python Client library from PyPI (the Python Package Index) onto your system. This library allows your Python applications to connect to and interact with a Hazelcast cluster, enabling you to use distributed data structures and other Hazelcast features in your Python code + +```bash +pip install hazelcast-python-client +``` + +Overview +-------- + +Usage +~~~~~ + +.. code:: python + + import hazelcast + + # Connect to Hazelcast cluster. + client = hazelcast.HazelcastClient() + + # Get or create the "distributed-map" on the cluster. + distributed_map = client.get_map("distributed-map") + + # Put "key", "value" pair into the "distributed-map" and wait for + # the request to complete. + distributed_map.set("key", "value").result() + + # Try to get the value associated with the given key from the cluster + # and attach a callback to be executed once the response for the + # get request is received. Note that, the set request above was + # blocking since it calls ".result()" on the returned Future, whereas + # the get request below is non-blocking. + get_future = distributed_map.get("key") + get_future.add_done_callback(lambda future: print(future.result())) + + # Do other operations. The operations below won't wait for + # the get request above to complete. + + print("Map size:", distributed_map.size().result()) + + # Shutdown the client. + client.shutdown() + + +If you are using Hazelcast and the Python client on the same machine, +the default configuration should work out-of-the-box. However, +you may need to configure the client to connect to cluster nodes that +are running on different machines or to customize client properties. + +== Configuration + +.. code:: python + + import hazelcast + + client = hazelcast.HazelcastClient( + cluster_name="cluster-name", + cluster_members=[ + "10.90.0.2:5701", + "10.90.0.3:5701", + ], + lifecycle_listeners=[ + lambda state: print("Lifecycle event >>>", state), + ] + ) + + print("Connected to cluster") + client.shutdown() + + +To learn more about supported configuration options, refer to the documentation . + +== Get help + +You can use the following channels for your questions and development or usage issues: + +- GitHub repository +- Documentation +- Slack + + == Next steps For more information, see the Hazelcast Python client GitHub https://github.com/hazelcast/hazelcast-python-client[repo^] From 95efe9569d1ec04847c4df8ae32f4c9992f9cbbf Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Thu, 24 Jul 2025 12:22:05 +0100 Subject: [PATCH 2/6] DOC-546: include config from readme and docs --- docs/modules/clients/pages/python.adoc | 64 +++++++++++++------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/docs/modules/clients/pages/python.adoc b/docs/modules/clients/pages/python.adoc index d4aa9ddf1..b42ae0ba2 100644 --- a/docs/modules/clients/pages/python.adoc +++ b/docs/modules/clients/pages/python.adoc @@ -23,8 +23,6 @@ TIP: For the latest Python API documentation, see https://hazelcast.readthedocs. == Install the Python client -(Author's note - continue from here onwards:) - This section explains how to set up a Hazelcast cluster and install the Hazelcast Python client. === Set up a Hazelcast cluster @@ -38,29 +36,32 @@ purposes is to use our https://hub.docker.com/r/hazelcast/hazelcast/[Docker imag docker run -p 5701:5701 hazelcast/hazelcast:5.3.0 ``` -Alternatively, you can use our https://hazelcast.com/open-source-projects/downloads/[ZIP or TAR distributions]. -After downloading, start the Hazelcast member using the ``bin/hz-start`` script. +Alternatively, you can run standalone members by downloading and running distribution files from the Hazelcast website as follows: + +. Go to the download page and choose either the https://hazelcast.com/open-source-projects/downloads/[ZIP or TAR distribution] of Hazelcast. +. Decompress the contents into the directory that you want to run members from. +. Change into this directory and then into the bin directory. +. Start the Hazelcast member using the ``bin/hz-start`` script. + +The Hazelcast log appears in the terminal showing that your 1-member cluster is ready to be used. -For more information on setting up a Hazelcast cluster, see the https://hazelcast.readthedocs.io/en/latest/getting_started.html[Python client documntation]. +For more information on setting up a Hazelcast cluster, see the https://hazelcast.readthedocs.io/en/latest/getting_started.html[Python client documentation]. -== Install the client +=== Download and install the client -// Author's note - what does the following do? I'm not sure why it's entitled 'client'? +You can download and install the Python client from PyPI (the Python Package Index) using pip. This library allows your Python applications to connect to and interact with a Hazelcast cluster, enabling you to use distributed data structures and other Hazelcast features in your Python code. -installs the Hazelcast Python Client library from PyPI (the Python Package Index) onto your system. This library allows your Python applications to connect to and interact with a Hazelcast cluster, enabling you to use distributed data structures and other Hazelcast features in your Python code +To download and install the client, run: ```bash pip install hazelcast-python-client ``` -Overview --------- +== Use the client -Usage -~~~~~ - -.. code:: python +This section shows how to connect to a Hazelcast cluster and perform some basic operations using the client. +```python import hazelcast # Connect to Hazelcast cluster. @@ -88,17 +89,18 @@ Usage # Shutdown the client. client.shutdown() +``` +For more code samples, see the https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[Hazelcast Python examples]. +== Configure the client -If you are using Hazelcast and the Python client on the same machine, -the default configuration should work out-of-the-box. However, -you may need to configure the client to connect to cluster nodes that -are running on different machines or to customize client properties. - -== Configuration +If you are running Hazelcast and the Python client on the same machine, the default configuration should work out-of-the-box. +However, if you run the client on a different computer to that of the cluster members, you may need to do some simple configuration, such as specifying member addresses, or customizing client properties. -.. code:: python +This section describes some basic configuration settings. For more detailed configuration, see the +https://hazelcast.readthedocs.io/en/latest/configuration_overview.html#configuration-overview[Configuration overview]. +```python import hazelcast client = hazelcast.HazelcastClient( @@ -114,20 +116,20 @@ are running on different machines or to customize client properties. print("Connected to cluster") client.shutdown() +``` +For more supported configuration options, see the https://hazelcast.readthedocs.io[Python client documentation]. -To learn more about supported configuration options, refer to the documentation . - -== Get help - -You can use the following channels for your questions and development or usage issues: +== Get support -- GitHub repository -- Documentation -- Slack +Join us in the https://hazelcastcommunity.slack.com/channels/python-client[Python client channel]. +Raise an issue in the https://github.com/hazelcast/hazelcast-python-client/issues/new[GitHub repository]. == Next steps -For more information, see the Hazelcast Python client GitHub https://github.com/hazelcast/hazelcast-python-client[repo^] -and https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[code samples^]. +For more information: + +- Read the https://hazelcast.readthedocs.io[Python client documentation] +- See the Hazelcast Python Client GitHub https://github.com/hazelcast/hazelcast-python-client[repo^] +- Find https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[code samples^] From 7658bd6cc5ce4fb0998b42e523277aecbba57d85 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Thu, 24 Jul 2025 14:12:41 +0100 Subject: [PATCH 3/6] DOC-546: minor tweaks --- docs/modules/clients/pages/python.adoc | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/docs/modules/clients/pages/python.adoc b/docs/modules/clients/pages/python.adoc index b42ae0ba2..e29b91e48 100644 --- a/docs/modules/clients/pages/python.adoc +++ b/docs/modules/clients/pages/python.adoc @@ -9,13 +9,13 @@ TIP: To learn how to get started quickly with the Hazelcast Python client, follo The Hazelcast native Python client is an official library that allows Python applications to connect to and interact with Hazelcast clusters. It is implemented using the Hazelcast Open Binary Client Protocol. The key features and benefits include: -* Distributed data structures: the client provides access to Hazelcast's distributed data structures such as maps, queues, topics, lists, sets, and more -* SQL support: it offers the ability to query Map data using standard SQL syntax -* JSON object support: it allows using and querying JSON objects -* Compact serialization: the client supports compact serialization, which provides efficient serialization for objects -* DBAPI support: it implements the DBAPI interface on top of the SQL service, making it compatible with various libraries and tools -* Near cache: the client supports the near cache feature for faster read speeds on frequently accessed data -* Integration with Jupyter Notebook: the client can be used in Jupyter Notebook environments, enabling interactive data analysis and visualization +* Distributed data structures: the client provides access to Hazelcast's distributed data structures such as maps, queues, topics, lists, sets, and more. +* SQL support: it offers the ability to query Map data using standard SQL syntax. +* JSON object support: it allows using and querying JSON objects. +* Compact serialization: the client supports compact serialization, which provides efficient serialization for objects. +* DBAPI support: it implements the DBAPI interface on top of the SQL service, making it compatible with various libraries and tools. +* Near cache: the client supports the near cache feature for faster read speeds on frequently accessed data. +* Integration with Jupyter Notebook: the client can be used in Jupyter Notebook environments, enabling interactive data analysis and visualization. These features make the Hazelcast Python Client a powerful tool for Python applications requiring distributed computing, in-memory data processing, and real-time analytics capabilities. @@ -31,6 +31,7 @@ The Hazelcast Python client requires a working Hazelcast cluster to run. The clu The quickest way to start a single member cluster for development purposes is to use our https://hub.docker.com/r/hazelcast/hazelcast/[Docker images]. +Launch a Hazelcast Docker Container by running the following command: ```bash docker run -p 5701:5701 hazelcast/hazelcast:5.3.0 @@ -40,8 +41,7 @@ Alternatively, you can run standalone members by downloading and running distrib . Go to the download page and choose either the https://hazelcast.com/open-source-projects/downloads/[ZIP or TAR distribution] of Hazelcast. . Decompress the contents into the directory that you want to run members from. -. Change into this directory and then into the bin directory. -. Start the Hazelcast member using the ``bin/hz-start`` script. +. Change into this directory and then start the Hazelcast member using the ``bin/hz-start`` script. The Hazelcast log appears in the terminal showing that your 1-member cluster is ready to be used. @@ -61,6 +61,10 @@ pip install hazelcast-python-client This section shows how to connect to a Hazelcast cluster and perform some basic operations using the client. +// Author's question: Yuce - to aid cutting/pasting, are we better to separate these commands +// into discreet chunks which will allow developers to cut and paste without the comments? +// Or is this section OK as it is? + ```python import hazelcast @@ -97,8 +101,7 @@ For more code samples, see the https://github.com/hazelcast/hazelcast-python-cli If you are running Hazelcast and the Python client on the same machine, the default configuration should work out-of-the-box. However, if you run the client on a different computer to that of the cluster members, you may need to do some simple configuration, such as specifying member addresses, or customizing client properties. -This section describes some basic configuration settings. For more detailed configuration, see the -https://hazelcast.readthedocs.io/en/latest/configuration_overview.html#configuration-overview[Configuration overview]. +The following shows some basic configuration settings: ```python import hazelcast @@ -118,7 +121,9 @@ https://hazelcast.readthedocs.io/en/latest/configuration_overview.html#configura client.shutdown() ``` -For more supported configuration options, see the https://hazelcast.readthedocs.io[Python client documentation]. +For detailed network configurations and additional features of Hazelcast Python client configuration, see the +https://hazelcast.readthedocs.io/en/latest/configuration_overview.html#configuration-overview[Configuration overview] +and https://hazelcast.readthedocs.io/en/latest/getting_started.html#configuring-hazelcast-python-client[Configuring Hazelcast Python client]. == Get support @@ -130,6 +135,6 @@ Raise an issue in the https://github.com/hazelcast/hazelcast-python-client/issue For more information: -- Read the https://hazelcast.readthedocs.io[Python client documentation] +// - Read the https://hazelcast.readthedocs.io[Python client documentation] Does this offer anything more? - See the Hazelcast Python Client GitHub https://github.com/hazelcast/hazelcast-python-client[repo^] - Find https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[code samples^] From d701018dd452357414c0cc4266214fc67ac617b8 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Mon, 28 Jul 2025 12:04:24 +0100 Subject: [PATCH 4/6] DOC-546: updates from feedback --- docs/modules/clients/pages/python.adoc | 65 ++++++++++++++++---------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/docs/modules/clients/pages/python.adoc b/docs/modules/clients/pages/python.adoc index e29b91e48..e7b57276c 100644 --- a/docs/modules/clients/pages/python.adoc +++ b/docs/modules/clients/pages/python.adoc @@ -12,10 +12,9 @@ The Hazelcast native Python client is an official library that allows Python app * Distributed data structures: the client provides access to Hazelcast's distributed data structures such as maps, queues, topics, lists, sets, and more. * SQL support: it offers the ability to query Map data using standard SQL syntax. * JSON object support: it allows using and querying JSON objects. -* Compact serialization: the client supports compact serialization, which provides efficient serialization for objects. +* Compact serialization: the client supports compact serialization, which provides efficient serialization of objects. * DBAPI support: it implements the DBAPI interface on top of the SQL service, making it compatible with various libraries and tools. -* Near cache: the client supports the near cache feature for faster read speeds on frequently accessed data. -* Integration with Jupyter Notebook: the client can be used in Jupyter Notebook environments, enabling interactive data analysis and visualization. +* Near cache: the client supports the near cache feature for faster reads on frequently accessed data. These features make the Hazelcast Python Client a powerful tool for Python applications requiring distributed computing, in-memory data processing, and real-time analytics capabilities. @@ -29,13 +28,14 @@ This section explains how to set up a Hazelcast cluster and install the Hazelcas The Hazelcast Python client requires a working Hazelcast cluster to run. The cluster handles storage and manipulation of the user data. Clients are a way to connect to the Hazelcast cluster and access the data. -The quickest way to start a single member cluster for development -purposes is to use our https://hub.docker.com/r/hazelcast/hazelcast/[Docker images]. +The quickest way to start a single member cluster for development purposes is to use our https://hub.docker.com/r/hazelcast/hazelcast/[Docker images]. + Launch a Hazelcast Docker Container by running the following command: ```bash docker run -p 5701:5701 hazelcast/hazelcast:5.3.0 ``` +TIP: For a step-by-step guide, see the https://docs.hazelcast.com/hazelcast/latest/getting-started/get-started-docker[Start a local cluster in Docker] and https://docs.hazelcast.com/hazelcast/latest/getting-started/enterprise-overview[Get Started with Hazelcast Enterprise Edition] tutorials. Alternatively, you can run standalone members by downloading and running distribution files from the Hazelcast website as follows: @@ -61,39 +61,56 @@ pip install hazelcast-python-client This section shows how to connect to a Hazelcast cluster and perform some basic operations using the client. -// Author's question: Yuce - to aid cutting/pasting, are we better to separate these commands -// into discreet chunks which will allow developers to cut and paste without the comments? -// Or is this section OK as it is? +// Author's question: Yuce - after chunking into sections, do I need to repeat the 'import hazelcast' line in each example? + +Example: Connect to Hazelcast cluster: ```python import hazelcast - # Connect to Hazelcast cluster. client = hazelcast.HazelcastClient() +``` + +Example: Get or create the "distributed-map" on the cluster: + +```python + import hazelcast - # Get or create the "distributed-map" on the cluster. distributed_map = client.get_map("distributed-map") +``` + +Example: Put "key", "value" pair into the "distributed-map" and wait for the request to complete: + +```python + import hazelcast - # Put "key", "value" pair into the "distributed-map" and wait for - # the request to complete. distributed_map.set("key", "value").result() +``` + +Example: Get the value associated with the given key from the cluster: + +Below, you will attach a callback to be executed once the response for the get request is received. +Note that, the set request above is blocking since it calls ".result()" on the returned Future, +whereas the get request below is non-blocking. + +```python + import hazelcast - # Try to get the value associated with the given key from the cluster - # and attach a callback to be executed once the response for the - # get request is received. Note that, the set request above was - # blocking since it calls ".result()" on the returned Future, whereas - # the get request below is non-blocking. get_future = distributed_map.get("key") get_future.add_done_callback(lambda future: print(future.result())) +``` + +Note that further operations will not wait for the get request above to complete. - # Do other operations. The operations below won't wait for - # the get request above to complete. +Example: Print the map and shutdown the client: - print("Map size:", distributed_map.size().result()) +```python + import hazelcast - # Shutdown the client. + print("Map size:", distributed_map.size().result()) client.shutdown() ``` + For more code samples, see the https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[Hazelcast Python examples]. == Configure the client @@ -127,14 +144,14 @@ and https://hazelcast.readthedocs.io/en/latest/getting_started.html#configuring- == Get support -Join us in the https://hazelcastcommunity.slack.com/channels/python-client[Python client channel]. +Join us in the https://hazelcastcommunity.slack.com/channels/python-client[Python client channel]. +Get an invite via https://slack.hazelcast.com/[Slack]. -Raise an issue in the https://github.com/hazelcast/hazelcast-python-client/issues/new[GitHub repository]. +Raise an issue in the https://github.com/hazelcast/hazelcast-python-client/issues[GitHub repository]. == Next steps For more information: -// - Read the https://hazelcast.readthedocs.io[Python client documentation] Does this offer anything more? - See the Hazelcast Python Client GitHub https://github.com/hazelcast/hazelcast-python-client[repo^] - Find https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[code samples^] From 124828285e8998a9c7218cffd1ad2be28665e9ea Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Mon, 28 Jul 2025 13:56:20 +0100 Subject: [PATCH 5/6] DOC-546:tweaked code snippets --- docs/modules/clients/pages/python.adoc | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/docs/modules/clients/pages/python.adoc b/docs/modules/clients/pages/python.adoc index e7b57276c..f704684e8 100644 --- a/docs/modules/clients/pages/python.adoc +++ b/docs/modules/clients/pages/python.adoc @@ -63,7 +63,7 @@ This section shows how to connect to a Hazelcast cluster and perform some basic // Author's question: Yuce - after chunking into sections, do I need to repeat the 'import hazelcast' line in each example? -Example: Connect to Hazelcast cluster: +*Example: Connect to Hazelcast cluster* ```python import hazelcast @@ -71,42 +71,36 @@ Example: Connect to Hazelcast cluster: client = hazelcast.HazelcastClient() ``` -Example: Get or create the "distributed-map" on the cluster: +*Example: Get or create the "distributed-map" on the cluster* ```python - import hazelcast - distributed_map = client.get_map("distributed-map") ``` -Example: Put "key", "value" pair into the "distributed-map" and wait for the request to complete: +*Example: Put "key", "value" pair into the "distributed-map"* -```python - import hazelcast +In this example, you will wait for the request to complete. +```python distributed_map.set("key", "value").result() ``` -Example: Get the value associated with the given key from the cluster: +*Example: Get the value associated with the given key from the cluster* -Below, you will attach a callback to be executed once the response for the get request is received. +In this example, you will attach a callback to be executed once the response for the get request is received. Note that, the set request above is blocking since it calls ".result()" on the returned Future, whereas the get request below is non-blocking. ```python - import hazelcast - get_future = distributed_map.get("key") get_future.add_done_callback(lambda future: print(future.result())) ``` Note that further operations will not wait for the get request above to complete. -Example: Print the map and shutdown the client: +*Example: Print the map and shutdown the client* ```python - import hazelcast - print("Map size:", distributed_map.size().result()) client.shutdown() ``` From e91b59cb0cdad047efe656790a3a617eb1439956 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Mon, 28 Jul 2025 14:59:36 +0100 Subject: [PATCH 6/6] DOC-546: remove authors note --- docs/modules/clients/pages/python.adoc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/modules/clients/pages/python.adoc b/docs/modules/clients/pages/python.adoc index f704684e8..0478e8776 100644 --- a/docs/modules/clients/pages/python.adoc +++ b/docs/modules/clients/pages/python.adoc @@ -61,9 +61,7 @@ pip install hazelcast-python-client This section shows how to connect to a Hazelcast cluster and perform some basic operations using the client. -// Author's question: Yuce - after chunking into sections, do I need to repeat the 'import hazelcast' line in each example? - -*Example: Connect to Hazelcast cluster* +*Example: Connect to a Hazelcast cluster* ```python import hazelcast @@ -79,7 +77,7 @@ This section shows how to connect to a Hazelcast cluster and perform some basic *Example: Put "key", "value" pair into the "distributed-map"* -In this example, you will wait for the request to complete. +In this example, you will have to wait for the request to complete. ```python distributed_map.set("key", "value").result() @@ -98,7 +96,7 @@ whereas the get request below is non-blocking. Note that further operations will not wait for the get request above to complete. -*Example: Print the map and shutdown the client* +*Example: Print the map and shut down the client* ```python print("Map size:", distributed_map.size().result())