    return connection.execute_sql('SELECT * from Users')
Here, we use Python's built-in id function, because the connection object is coming from the Streamlit cache via the get_database_conection function. This means that the same connection instance is passed around every time, and therefore it always has the same id. However, if you happened to have a second connection object around that pointed to an entirely different database, it would still be safe to pass it to get_users because its id is guaranteed to be different than the first id.
These design patterns apply any time you have an object that points to an external resource, such as a database connection or Tensorflow session.
Example 2: Turn off hashing for a specific type
You can turn off hashing entirely for a particular type by giving it a custom hash function that returns a constant. One reason that you might do this is to avoid hashing large, slow-to-hash objects that you know are not going to change. For example:
