<prompt> Andika hati ya Python inayotumia hifadhidata ya Cassandra kuhifadhi na kurejesha maelezo ya mtumiaji jina, barua pepe, umri na ukaguzi ufaao wa uthibitishaji wa data. Hati inapaswa kutoa chaguzi za kuongeza watumiaji wapya, kusasisha maelezo yaliyopo ya mtumiaji, na kufuta watumiaji.PLINFORMAT  <response>: kutoka cassandra.cluster import Clusterkutoka kwa cassandra.auth agiza PlainTextAuthProviderkuagiza upya Unganisha kwenye nguzo ya Cassandradef connect_to_cassandra: auth_provider PlainTextAuthProviderjina la mtumiajicassandra, passwordcassandra nguzo Nguzo127.0.0.1, bandari9042, auth_providerauth_provider kikao cluster.connect kikao cha kurudi Unda nafasi muhimu na jedwali ikiwa hazipodef create_keyspace_na_meza kikao: session.executeUNDA NAFASI YA KIFUNGU IWAPO HAIPO user_info NA replication darasa: SimpleStrategy, replication_factor: 1; session.set_keyspacemaelezo_ya_ya_mtumiaji session.execute TUNZA JEDWALI IKIWA HAIPO watumiaji maandishi ya jina PRIMARY KEY, maandishi ya barua pepe, umri int ; Thibitisha data ya mtumiajidef validate_user_datajina, barua pepe, umri: ikiwa sio mfanojina, str au lenname.strip 0: raise ValueErrorJina lazima liwe kamba isiyo tupu. ikiwa sivyo barua pepe: kuongeza ValueErrorAnwani ya barua pepe si sahihi. ikiwa sio mfanoumri, int au umri 1: raise ValueErrorUmri lazima uwe nambari chanya. Ongeza mtumiaji mpyadef add_new_userkipindi, jina, barua pepe, umri: thibitisha_data_ya_mtumiajijina, barua pepe, umri session.tekeleza WEKA NDANI ya watumiaji jina, barua pepe, umri THAMANI s, s, s;, jina, barua pepe, umri Sasisha maelezo yaliyopo ya mtumiajidef update_user_detailskikao, jina, barua pepeHakuna, umriHakuna: ikiwa barua pepe ni Hakuna na umri sio: raise ValueErrorAngalau barua pepe au umri mmoja unapaswa kutolewa kwa sasisho. ikiwa barua pepe sio Hakuna: thibitisha_data_ya_mtumiajijina, barua pepe, 1 session.tekeleza SASISHA watumiaji WEKA barua pepe s WAPI jina s;, barua pepe, jina ikiwa umri sio Hakuna: thibitisha_data_ya_mtumiajijina, , umri session.tekeleza SASISHA watumiaji WEKA umri s WAPI jina s;, umri, jina Futa mtumiajidef delete_userkipindi, jina: session.executeFUTA KUTOKA KWA watumiaji WAPI jina s;, jina, Pata watumiaji wotedef get_all_userskikao: safu session.executeCHAGUA KUTOKA KWA watumiaji; orodha ya kurudi safukama __name__ __main__: kikao connect_to_cassandra create_keyspace_na_mezakikao Ongeza watumiaji wapya add_new_userkipindi, John Doe, 30 add_new_userkipindi, Jane Smith, 25 Sasisha maelezo yaliyopo ya mtumiaji update_user_detailskipindi, John Doe, sasisha_maelezo_ya_mtumiajikipindi, Jane Smith, umri26 Futa mtumiaji delete_userkipindi, John Doe Chapisha watumiaji wote chapishapata_watumiaji_wotekipindi 