Add get_by_name to Users, Groups, and Schedules endpoints (unique-by-name types)
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
Research direction
Start with the UsersEndpoint, GroupsEndpoint, and SchedulesEndpoint implementations and compare them with the existing SitesEndpoint.get_by_name method. Add matching unique-name lookups that return the first result or None, then run the relevant endpoint tests and confirm the three methods follow the documented get_by_* behavior.
Written by the indexing model from the issue text.
Description
Sites already has get_by_name(site_name) -> SiteItem. Three other endpoints have server-enforced unique names and would benefit from the same shape:
- Users — usernames unique per site.
- Groups — group names unique per site.
- Schedules — server throws
ScheduleNameExistsExceptionon duplicate name.
Proposal:
# UsersEndpoint
def get_by_name(self, username: str) -> UserItem | None:
matches = list(self.filter(name=username))
return matches[0] if matches else None
This formalizes a naming pattern across the API surface:
get_by_*returns a single item (orNone/raises when not found). Use when the lookup key is unique on the server.filter(...)returns a lazyQuerySet[T]for chaining or when multiplicity is possible.
Callers with unique-name types get a natural T | None shape. Callers with multi-name endpoints (workbooks/datasources/views/flows/projects) continue to use .filter(name=name).
🤖 Generated with Claude Code
- Dominant language
- Python
- Stars
- 716
- Forks
- 446
- Avg merge
- 8d 8h
- Merged PRs (30d)
- 2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tableau/server-client-python
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
tableau/server-client-python#1865 ·
-
in-progress
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
tableau/server-client-python#1829 · 1 comment ·
-
enhancement gap needs investigation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tableau/server-client-python#1322 · 1 comment ·
-
[Type2] Allow Incremental Refresh type schedules to be added via `server.schedules.add_to_schedule` Openhelp wanted Server-Side Enhancement ui-exists
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tableau/server-client-python#1101 · 3 comments ·
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tableau/server-client-python#783 · 5 comments ·
All issues in tableau/server-client-python
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
zostera/django-bootstrap4#894 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
use-agent-os/agent-os#3276 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
zephyrproject-rtos/zephyr#119726 ·
-
area/auth bug comp/agent P3 platform/discord type/security
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
NousResearch/hermes-agent#117848 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
zilliztech/memsearch#759 ·