<｜begin▁of▁sentence｜>### Instruction:
In the regulatory oversight of our software validation processes, we have identified a requirement to affirm the data-type integrity of inputs for functions that are critical to the network connectivity analysis. Could you detail how we might deploy the 'check_argument_types' utility from the Graspologic toolkit to validate that the input parameter adhering to such functions is strictly a NetworkX graph? This validation practice should align with our stringent code quality regulations and ensure robustness against data-type discrepancies at runtime.
### Response:
import networkx as nx
from graspologic.preconditions import check_argument_types

# Function that uses graspologic's check_argument_types

def receive_graph(graph):
    # Use check_argument_types to ensure the argument is a correct type
    check_argument_types(graph, nx.Graph, "'graph' argument must be a networkx.Graph instance.")
    # Now handle the graph knowing it's the correct type
    print('Graph has', graph.number_of_nodes(), 'nodes and', graph.number_of_edges(), 'edges.')


# Creating a simple graph using NetworkX
G = nx.Graph()
G.add_nodes_from([1, 2, 3])
G.add_edge(1, 2)

# Call the function with the graph
receive_graph(G)
<|EOT|>
