<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 WARNING
It is a non-public API. It may change with no previous notice
We are going to show how to work with the CARTO custom visualizations (aka Kuviz).
We are going to start creating tje Auth client and we will use it in every example.
You only need to complete the following cell
Step1:  Kuviz manager creation
Step2:  Create public Kuviz
Step3:  Create Kuviz protected by password
Step4:  Update a kuviz
Step5:  If you want to remove the password
Step6:  And if you want to add the password again
Step7:  Delete a kuviz
<ASSISTANT_TASK:>
Python Code:
USERNAME = ""
BASE_URL = "https://{u}.carto.com".format(u=USERNAME)
API_KEY = ""
from carto.auth import APIKeyAuthClient
auth_client = APIKeyAuthClient(api_key=API_KEY, base_url=BASE_URL)
Explanation: WARNING
It is a non-public API. It may change with no previous notice
We are going to show how to work with the CARTO custom visualizations (aka Kuviz).
We are going to start creating tje Auth client and we will use it in every example.
You only need to complete the following cell:
End of explanation
from carto.kuvizs import KuvizManager
km = KuvizManager(auth_client)
Explanation: Kuviz manager creation
End of explanation
html = "<html><body><h1>Working with CARTO Kuviz</h1></body></html>"
public_kuviz = km.create(html=html, name="kuviz-public-test")
print(public_kuviz.id)
print(public_kuviz.url)
print(public_kuviz.privacy)
Explanation: Create public Kuviz
End of explanation
html = "<html><body><h1>Working with CARTO Kuviz</h1></body></html>"
password_kuviz = km.create(html=html, name="kuviz-password-test", password="1234")
print(password_kuviz.id)
print(password_kuviz.url)
print(password_kuviz.privacy)
Explanation: Create Kuviz protected by password
End of explanation
new_html = "<html><body><h1>Another HTML</h1></body></html>"
password_kuviz.data = new_html
password_kuviz.save()
print(password_kuviz.id)
print(password_kuviz.url)
print(password_kuviz.privacy)
Explanation: Update a kuviz
End of explanation
password_kuviz.password = None
password_kuviz.save()
print(password_kuviz.id)
print(password_kuviz.url)
print(password_kuviz.privacy)
Explanation: If you want to remove the password:
End of explanation
password_kuviz.password = "1234"
password_kuviz.save()
print(password_kuviz.id)
print(password_kuviz.url)
print(password_kuviz.privacy)
Explanation: And if you want to add the password again:
End of explanation
password_kuviz.delete()
Explanation: Delete a kuviz
End of explanation
<END_TASK>