Skip to content

Commit 103e36c

Browse files
committed
Fix users creation from CSV section
1 parent cb8807a commit 103e36c

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

examples/01_users.ipynb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,16 @@
125125
},
126126
{
127127
"cell_type": "code",
128-
"source": "import csv\nimport string\nimport random\n\nfrom mergin.common import WorkspaceRole\n\npermissions = [WorkspaceRole.EDITOR,\n WorkspaceRole.READER,\n WorkspaceRole.WRITER]\n\n\ntry:\n with open('01_users_assets/users.csv', mode='r', newline='', encoding='utf-8') as csvfile:\n reader = csv.reader(csvfile)\n header = next(reader) # Skip header\n first_data_row = next(reader) # Get first data row\n if len(first_data_row) >= 2: # Check if there are at least two columns\n username = first_data_row[0]\n email = first_data_row[1]\n # add new mergin maps user\n client.create_user(username=username, password=random.choices(string.ascii_uppercase + string.digits, k=12), email=email, workspace_id=WORKSPACE, workspace_role=random.choice(permissions))\n print(f\"User '{username}' created successfully.\")\n else:\n print(\"First data row does not have enough columns.\")\nexcept FileNotFoundError:\n print(f\"File '{filename}' not found for processing example.\")\nexcept StopIteration:\n print(f\"File '{filename}' does not contain enough data rows for processing example.\")\nexcept Exception as e:\n print(f\"An error occurred during processing example: {e}\")\n",
128+
"source": "# First, let's get workspace ID\n\nfor w in client.workspaces_list():\n if w['name'] == WORKSPACE:\n WORKSPACE_ID = w['id']\n\nprint(f\"WORKSPACE_ID: {WORKSPACE_ID}\")",
129+
"metadata": {
130+
"trusted": true
131+
},
132+
"outputs": [],
133+
"execution_count": null
134+
},
135+
{
136+
"cell_type": "code",
137+
"source": "from os.path import join\nimport csv\nimport string\nimport random\n\nfrom mergin.common import WorkspaceRole\nfrom mergin.common import ClientError\n\npermissions = [WorkspaceRole.EDITOR,\n WorkspaceRole.READER,\n WorkspaceRole.WRITER]\n\n\nfilename = 'users.csv'\n\ntry:\n with open(filename, mode='r', newline='', encoding='utf-8') as csvfile:\n reader = csv.reader(csvfile)\n header = next(reader) # Skip header\n for row in reader:\n username = row[0]\n email = row[1]\n # add new mergin maps user\n password = ''.join(random.choices(string.ascii_uppercase + string.digits + string.ascii_lowercase, k=12))\n print (f\"Password for {username} is {password}\")\n try:\n client.create_user(username=username, password=password, email=email, workspace_id=WORKSPACE_ID, workspace_role=random.choice(permissions))\n print(f\"User '{username}' created successfully.\")\n except ClientError as e:\n if e.http_error == 400 and 'exists' in e.detail :\n print(f\"User '{username}' already exists.\") \nexcept FileNotFoundError:\n print(f\"File '{filename}' not found for processing example.\")\nexcept StopIteration:\n print(f\"File '{filename}' does not contain enough data rows for processing example.\")\nexcept Exception as e:\n print(f\"An error occurred during processing example: {e}\")\n",
129138
"metadata": {
130139
"id": "Lp351dFYquVs"
131140
},

0 commit comments

Comments
 (0)