create_user#
- teamworksams.user_main.create_user(user_df: pandas.DataFrame, url: str, username: str | None = None, password: str | None = None, option: UserOption | None = None, client: AMSClient | None = None) pandas.DataFrame [source]#
Create new users in an AMS instance.
Creates new user accounts using the AMS API’s
/api/v2/person/save
endpoint. The function processes a DataFrame with required fields (e.g., ‘first_name’, ‘last_name’, ‘username’, ‘email’, ‘dob’, ‘password’, ‘active’) and optional fields (e.g., ‘uuid’, ‘sex’), validates the data, and applies the creations. Returns a DataFrame of failed creations with reasons. Supports interactive feedback and caching. See User and Group Management for user account workflows.- Parameters:
user_df (pandas.DataFrame) – DataFrame with user data. Required columns are ‘first_name’, ‘last_name’, ‘username’, ‘email’, ‘dob’, ‘password’, ‘active’. Optional columns include ‘uuid’, ‘known_as’, ‘middle_names’, ‘language’, ‘sidebar_width’, ‘sex’. Must not be empty.
url (str) – AMS instance URL (e.g., ‘https://example.smartabase.com/site’). Must include a valid site name.
username (Optional[str]) – Username for authentication. If None, uses AMS_USERNAME environment variable or keyring credentials. Defaults to None.
password (Optional[str]) – Password for authentication. If None, uses AMS_PASSWORD environment variable or keyring credentials. Defaults to None.
option (UserOption, optional) – Configuration options, including interactive_mode to print status messages and cache to reuse a client. Defaults to None (uses default UserOption).
client (AMSClient, optional) – Pre-authenticated client from teamworksams.utils.get_client. If None, a new client is created. Defaults to None.
- Returns:
DataFrame of failed creations with columns ‘user_key’ (username that failed) and ‘reason’ (failure reason). Empty if all creations succeed.
- Return type:
pandas.DataFrame
- Raises:
AMSError – If user_df is invalid, authentication fails, or the API request fails.
ValueError – If user_df is empty or contains invalid data.
Examples
>>> import pandas as pd >>> from teamworksams import create_user, UserOption >>> user_df = pd.DataFrame({ ... "first_name": ["John", "Jane"], ... "last_name": ["Doe", "Smith"], ... "username": ["john.doe", "jane.smith"], ... "email": ["john.doe@example.com", "jane.smith@example.com"], ... "dob": ["1980-01-01", "12/02/1985"], ... "password": ["secure123", "secure456"], ... "sex": ["Male", "Female"], ... "uuid": ["025380", "024854"], ... "active": [True, False] ... }) >>> failed_df = create_user( ... user_df = user_df, ... url = "https://example.smartabase.com/site", ... username = "user", ... password = "pass", ... option = UserOption(interactive_mode = True) ... ) ℹ Creating 2 users... ✔ Successfully created 2 users.
Additional Notes#
The
user_df
must include required columns (‘first_name’, ‘last_name’, ‘username’, ‘email’, ‘dob’, ‘password’, ‘active’) to avoidValueError
. Optional columns like ‘uuid’ or ‘sex’ enhance user profiles.Check the returned DataFrame for failed creations, which lists reasons like “Invalid data” or “API request failed.”
Use
option.interactive_mode=True
to track progress withtqdm
progress bars for multiple users.
See Also#
UserOption(): Configuration options for user operations.
edit_user(): For updating existing users.
User and Group Management: User creation workflows.