8000 BLDX-689 | Fixed docs, generator and dependencies updates by Aryamanz29 · Pull Request #825 · atlanhq/atlan-python · GitHub
[go: up one dir, main page]

Skip to content

BLDX-689 | Fixed docs, generator and dependencies updates#825

Merged
Aryamanz29 merged 19 commits intomainfrom
BLDX-689
Mar 6, 2026
Merged

BLDX-689 | Fixed docs, generator and dependencies updates#825
Aryamanz29 merged 19 commits intomainfrom
BLDX-689

Conversation

@Aryamanz29
Copy link
Member

No description provided.

Aryamanz29 and others added 17 commits March 6, 2026 14:50
Python dependencies (pyproject.toml + uv.lock):
- pydantic: 2.12.4 -> 2.12.5
- pytz: 2025.2 -> 2026.1.post1
- httpx-retries: 0.4.5 -> 0.4.6
- mypy: 1.18.0 -> 1.19.0
- ruff: 0.14.5 -> 0.15.5
- types-setuptools: 80.9.0 -> 81.0.0.20260209
- types-Authlib: 1.6.5 -> 1.6.7.20260208
- filelock: 3.20.3 -> 3.25.0 (Python >=3.10)
- virtualenv: 20.36.1 -> 21.1.0
- pytest-sugar: 1.0.0 -> 1.1.1
- furo: 2025.9.25 -> 2025.12.19
Skipped (Python 3.9 constraint): pytest 9.x, vcrpy 8.x, sphinx 8.x,
tenacity 9.1.4, pre-commit 4.4+, pytest-asyncio 1.3, networkx 3.3+

GitHub Actions:
- astral-sh/setup-uv: v6 -> v7
- aquasecurity/trivy-action: 0.33.1 -> 0.34.2
- docker/build-push-action: v6 -> v7
- docker/login-action: v3 -> v4
- docker/setup-buildx-action: v3 -> v4
- ruff pre-commit rev: v0.12.8 -> v0.15.5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a project-level Claude Code slash command that automates upgrading
Python dependencies (with Python 3.9 compatibility checks) and GitHub
Actions versions, regenerating the lockfile, running tests, and committing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace sphinx/furo/sphinx-autoapi with mkdocs, mkdocs-material, and
  mkdocstrings in the docs dependency group
- Add mkdocs.yml with Material theme and mkdocstrings plugin
- Add docs/index.md landing page and api/ reference pages
- Remove all Sphinx .rst files (conf.py, index.rst, Makefile, hundreds
  of manual asset stubs)
- Update GitHub Actions workflow to use mkdocs build + deploy site/

Build time is now ~4s vs minutes with sphinx-autoapi.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix cache.md to reference individual cache classes (AtlanTagCache,
  CustomMetadataCache, EnumCache, GroupCache, RoleCache, UserCache,
  ConnectionCache, SourceTagCache) instead of empty package directive
- Fix events.md to reference AtlanEventHandler class directly
- Add assets.md with core base classes, SQL, Glossary, BI, Data Mesh,
  Access Control, and Resource asset types
- Add Asset Models page to mkdocs.yml nav

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Generate 26 per-category pages covering all assets in __PYATLAN_ASSETS__:
  Core, Glossary, Access Control, SQL, Snowflake, Databricks, NoSQL,
  Streaming, Cloud Storage, dbt, Orchestration, Microsoft BI, Tableau,
  Looker, Other BI Tools, Data Quality, Data Mesh, AI/ML, API,
  Data Modeling & Semantic, SAP, Salesforce, Cognite, AWS SageMaker,
  Other Connectors, Other
- Add generate_asset_docs.py script for future regeneration
- Update mkdocs.yml nav with top-level "Asset Models" section
- Build time: ~21s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace render_sphinx_docs() with render_mkdocs_docs() in Generator
  class; now generates docs/api/assets/*.md grouped pages (26 categories)
  instead of individual per-class .rst files
- Uses AssetInfo.module_name and is_core_asset to determine the correct
  module path for each ::: directive, mirroring __PYATLAN_ASSETS__
- Remove sphinx_asset.jinja2 and sphinx_asset_index.jinja2 templates
  (no longer needed)
- Remove standalone generate_asset_docs.py (logic now in generator)
- Rename SPHINX_DIR constant to MKDOCS_ASSETS_DIR pointing at
  docs/api/assets/

Running class_generator.py will now regenerate docs/api/assets/ pages
automatically alongside the Python asset source files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch all API reference pages from class-level to module-level :::
directives so any new class/function added to an existing module is
automatically included in the docs without manual edits:

- client.md: one ::: per .py file in pyatlan/client/ (24 modules)
- cache.md: one ::: per .py file in pyatlan/cache/ (10 modules)
- events.md: one ::: per .py file in pyatlan/events/ (2 modules)
- model.md: expanded to cover all 30+ pyatlan/model/*.py modules

utils.md and errors.md already used module-level directives.
Asset pages remain class-level (generated by class_generator.py).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update mkdocs.yml with deep purple theme, sticky tabs, footer nav,
  toc.follow, search sharing, code annotations, and pymdownx extensions
  (admonition, superfences, tabbed, highlight, emoji, attr_list)
- Add edit_uri for GitHub edit links
- Enable merge_init_into_class and show_signature_annotations for richer
  API docs
- Rewrite docs/index.md as a rich homepage with:
  - Logo + badge header with CTA buttons
  - Tabbed installation (pip / uv / dev)
  - Quick start code example
  - Feature grid (Material cards)
  - Module overview table
  - Contributing section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace broken GitHub user-attachments URLs with local assets.
Add pyatlan logo (PNG) and configure homepage link on logo click.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove white background from logo PNG (make transparent)
- Add custom CSS to hide redundant site name text from header
- Increase logo height for better visibility
- Wire extra_css into mkdocs.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace broken GitHub CDN URL with local assets/logo.png in index.md
- Remove duplicate '# pyatlan' heading (logo already contains the name)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove dark border artifact from bottom of screenshot
- Flood-fill background removal with tight content crop
- 2x LANCZOS upscale for sharper rendering in header and homepage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Switch primary color to custom Atlan blue (#1B4F6A) matching logo text
- Remove 'Home' nav entry (homepage still served at root, no redundant tab/title)
- Reprocess logo with smooth alpha matting for clean transparent edges
- Accent color set to light blue matching logo's dot elements

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
MkDocs renders a <h1>Home</h1> when no H1 exists in the markdown.
Use CSS :has(.homepage-hero) to target and hide it only on the homepage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Tabs: active/hover → full white opacity (was 75% dimmed)
- Sidebar nav: hover/active → light blue (#5DD4F5) accent
- TOC links: same light blue accent on hover/active

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Active nav items now use light blue (#5DD4F5) instead of white
- Dark mode: logo gets matching header background (#1B4F6A) to hide white edge artifacts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…s, add DynamoDB/Iceberg/SageMaker creators

Generator fixes:
- Fix circular import chains in core/__init__.py:
  - Add SQL → DbtTest skip in imports_for_referenced_assets (breaks SQL→DbtTest→DbtModelColumn→Column→SQL)
  - Add # isort: skip to all priority module imports so ruff/isort doesn't re-sort them
  - Priority order: referenceable, atlan_app, atlan_app_tool, atlan_app_workflow
- Remove CustomRatings (non-existent) from imports.jinja2
- Move AppWorkflowRun and AtlanApp to core/ via _CORE_INIT_PRIORITY_MODULES
- Add DynamoDBAttribute.creator() via Jinja2 templates (asset + attribute level)
- Add DynamoDBTable.creator() override raising NotImplementedError

New structs & enums:
- Structs: IcebergPartition, AtlanAppErrorHandling
- Enums: AtlanAppWorkflowStatus, AtlanAppWorkflowOwnership, DynamoDBStatus

Regenerated assets:
- New: Iceberg, IcebergCatalog, IcebergColumn, IcebergNamespace, IcebergTable
- New: SageMaker, SageMakerFeature, SageMakerFeatureGroup, SageMakerModel, SageMakerModelDeployment, SageMakerModelGroup
- New: AtlanApp, AtlanAppTool, AtlanAppWorkflow, AppWorkflowRun (moved to core/)
- Removed: PartialV01, PartialV01Field, PartialV02, PartialV02Field, PartialV02Object (consolidated)
- Updated: DynamoDBAttribute (full creator() impl), DynamoDBTable, DynamoDBSecondaryIndex

Misc:
- pre-commit: exclude mkdocs.yml from yaml check

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Aryamanz29 Aryamanz29 self-assigned this Mar 6, 2026
@Aryamanz29 Aryamanz29 added dependencies Pull requests that update a dependency file change Pyatlan change pull request breaking-change labels Mar 6, 2026
@greptile-apps
Copy link
greptile-apps bot commented Mar 6, 2026

Too many files changed for review. (589 files found, 500 file limit)

Aryamanz29 and others added 2 commits March 6, 2026 17:11
…f/mypy

The SQL → DbtTest circular import skip removed the bottom import of DbtTest
from s_q_l.py, leaving DbtTest undefined for type annotations. Added SQL to
_ASSETS_REQUIRE_TYPE_CHECKING and a TYPE_CHECKING guard in module.jinja2 to
import DbtTest at type-check time only, matching the DataQualityRule → Column
pattern.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Aryamanz29 Aryamanz29 merged commit fae3714 into main Mar 6, 2026
13 of 14 checks passed
@Aryamanz29 Aryamanz29 deleted the BLDX-689 branch March 6, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change change Pyatlan change pull request dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0