Skip to content

Tag management semantics#801

Draft
cursor[bot] wants to merge 3 commits intomainfrom
LINTEST-345
Draft

Tag management semantics#801
cursor[bot] wants to merge 3 commits intomainfrom
LINTEST-345

Conversation

@cursor
Copy link

@cursor cursor bot commented Feb 4, 2026

✨ Description

This PR introduces support for in-bulk asset tag management using SaveSemantic in Pyatlan. It enhances the AtlanTag class with a semantic field, allowing users to specify APPEND, REPLACE, or REMOVE operations for tags. The synchronous and asynchronous save() methods have been updated to process these semantics, ensuring backward compatibility with existing functionality.

Jira link: LINTEST-345


🧩 Type of change

Select all that apply:

  • 🚀 New feature (non-breaking change that adds functionality)
  • 🐛 Bug fix (non-breaking change that fixes an issue) — please include tests! Refer testing-toolkit 🧪
  • 🔄 Refactor (code change that neither fixes a bug nor adds a feature)
  • 🧹 Maintenance (chores, cleanup, minor improvements)
  • 💥 Breaking change (fix or feature that may break existing functionality)
  • 📦 Dependency upgrade/downgrade
  • 📚 Documentation updates

✅ How has this been tested? (e.g. screenshots, logs, workflow links)

The changes were verified through a self-review of the implementation against the requirements outlined in the Linear issue. Linter checks were performed and passed. No specific unit tests or integration tests were generated by the agent during this session.


📋 Checklist

  • My code follows the project’s style guidelines
  • I’ve performed a self-review of my code
  • I’ve added comments in tricky or complex areas
  • I’ve updated the documentation as needed
  • There are no new warnings from my changes
  • I’ve added tests to cover my changes
  • All new and existing tests pass locally

Open in Cursor Open in Web

- Added semantic field to AtlanTag class with APPEND, REMOVE, and REPLACE support
- Updated AtlanTag.of() and AtlanTag.of_async() methods to accept semantic parameter
- Implemented tag semantic handling logic in Save.prepare_request() and prepare_request_async()
- Tags with APPEND semantic are added to add_or_update_classifications
- Tags with REMOVE semantic are added to remove_classifications
- Tags with REPLACE semantic or None (backward compatibility) remain in atlan_tags
- Query parameters are automatically set based on semantic usage
- Maintains full backward compatibility with existing functionality

Resolves LINTEST-345
@cursor
Copy link
Author

cursor bot commented Feb 4, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

- Remove trailing whitespace from docstrings and comments
- Split long line to meet 88 character limit
- Ensure proper blank line spacing per ruff format requirements
- Keep generator expression in any() on single line per ruff standards
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant