Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ scratch/
*.egg
examples/tensorflow/distributed_mnist/data
*.iml

# Sphinx documentation
docs/_build/
doc/_build
doc/_static
doc/_templates
Expand Down
24 changes: 24 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

version: 2

build:
os: ubuntu-22.04
tools:
python: "3.10"

sphinx:
configuration: docs/conf.py

formats:
- pdf
- epub

python:
install:
- requirements: docs/requirements.txt
- method: pip
path: .
extra_requirements:
- docs
12 changes: 12 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build

help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
174 changes: 174 additions & 0 deletions docs/_static/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
/* What's New Section Styling */
.whats-new-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
margin: 30px 0;
}

.new-feature-card {
background: var(--pst-color-surface);
border: 1px solid var(--pst-color-border);
border-radius: 12px;
padding: 25px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
transition: transform 0.2s ease, box-shadow 0.2s ease;
position: relative;
overflow: hidden;
color: var(--pst-color-text-base);
}

[data-theme="dark"] .new-feature-card {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.new-feature-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

[data-theme="dark"] .new-feature-card:hover {
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
}

.new-feature-card h3 {
margin-top: 0;
margin-bottom: 15px;
font-size: 1.3em;
font-weight: 600;
color: inherit;
}

.new-feature-card ul {
margin: 15px 0;
padding-left: 20px;
}

.new-feature-card li {
margin-bottom: 8px;
line-height: 1.5;
}

/* Feedback Component */
.feedback-container {
border-top: 1px solid var(--pst-color-border);
margin-top: 40px;
padding: 24px;
background-color: var(--pst-color-surface);
border-radius: 8px;
border: 1px solid var(--pst-color-border);
}

.feedback-question {
font-size: 20px;
font-weight: 500;
color: var(--pst-color-text-base);
margin-bottom: 20px;
text-align: left;
}

.feedback-buttons {
display: flex;
justify-content: flex-start;
gap: 12px;
}

.feedback-btn {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 16px;
border: 1px solid var(--pst-color-border);
border-radius: 6px;
background: var(--pst-color-surface);
color: var(--pst-color-text-muted);
font-size: 14px;
cursor: pointer;
transition: all 0.2s ease;
}

.feedback-btn:hover {
border-color: var(--pst-color-primary);
background: var(--pst-color-surface);
}

.feedback-btn.selected {
border-color: var(--pst-color-primary);
background: var(--pst-color-primary-bg);
color: var(--pst-color-primary);
}

.feedback-btn svg {
width: 16px;
height: 16px;
}

.feedback-thanks {
display: none;
color: #059669;
font-size: 14px;
text-align: center;
margin-top: 16px;
}

/* Feedback Options */
.feedback-options {
display: none;
margin-top: 20px;
}

.feedback-more {
display: flex;
flex-direction: column;
gap: 12px;
}

.feedback-github-link {
color: #0366d6;
text-decoration: none;
font-size: 14px;
padding: 10px 20px;
border: 1px solid #0366d6;
border-radius: 6px;
transition: all 0.2s;
font-weight: 500;
align-self: flex-start;
}

.feedback-github-link:hover {
background-color: #0366d6;
color: white;
text-decoration: none;
}

header {
background-color: white;

box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
position: sticky;
top: 0;
z-index: 50;
}

h1 {
font-size: 1.875rem;
font-weight: 700;
color: var(--pst-color-text-base);
}

h2 {
font-size: 1.5rem;
font-weight: 700;
color: var(--pst-color-text-base);
}

h3 {
font-size: 1.25rem;
font-weight: 500;
color: var(--pst-color-text-base);
}

p {
font-size: 1.0rem;
color: var(--pst-color-text-base);
}
71 changes: 71 additions & 0 deletions docs/_static/feedback.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// Feedback functionality
document.addEventListener('DOMContentLoaded', function() {
// Add feedback component to the very bottom of each page
const article = document.querySelector('article[role="main"]') || document.querySelector('.bd-article') || document.querySelector('main');
if (article) {
const feedbackHTML = `
<div class="feedback-container">
<div class="feedback-question">Was this page helpful?</div>
<div class="feedback-buttons">
<button class="feedback-btn" data-feedback="yes">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M7.493 18.75c-.425 0-.82-.236-.975-.632A7.48 7.48 0 016 15.375c0-1.75.599-3.358 1.602-4.634.151-.192.373-.309.6-.397.473-.183.89-.514 1.212-.924a9.042 9.042 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75 2.25 2.25 0 012.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558-.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H14.23c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23h-.777zM2.331 10.977a11.969 11.969 0 00-.831 4.398 12 12 0 00.52 3.507c.26.85 1.084 1.368 1.973 1.368H4.9c.445 0 .72-.498.523-.898a8.963 8.963 0 01-.924-3.977c0-1.708.476-3.305 1.302-4.666.245-.403-.028-.959-.5-.959H4.25c-.832 0-1.612.453-1.918 1.227z"/>
</svg>
Yes
</button>
<button class="feedback-btn" data-feedback="no">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M15.73 5.25h1.035A7.465 7.465 0 0118 9.375a7.465 7.465 0 01-1.235 4.125h-.148c-.806 0-1.534.446-2.031 1.08a9.04 9.04 0 01-2.861 2.4c-.723.384-1.35.956-1.653 1.715a4.498 4.498 0 00-.322 1.672V21a.75.75 0 01-.75.75 2.25 2.25 0 01-2.25-2.25c0-1.152.26-2.243.723-3.218C7.74 15.724 7.366 15 6.748 15H3.622c-1.026 0-1.945-.694-2.054-1.715A12.134 12.134 0 011.5 12c0-2.848.992-5.464 2.649-7.521C4.537 3.997 5.136 3.75 5.754 3.75H9.77a4.5 4.5 0 011.423.23l3.114 1.04a4.5 4.5 0 001.423.23zM21.669 14.023c.536-1.362.831-2.845.831-4.398 0-1.22-.182-2.398-.52-3.507-.26-.85-1.084-1.368-1.973-1.368H19.1c-.445 0-.72.498-.523.898.591 1.2.924 2.55.924 3.977a8.958 8.958 0 01-1.302 4.666c-.245.403.028.959.5.959h1.053c.832 0 1.612-.453 1.918-1.227z"/>
</svg>
No
</button>
</div>
<div class="feedback-options">
<div class="feedback-more">
<a href="https://github.com/aws/sagemaker-python-sdk/issues/new" target="_blank" class="feedback-github-link">
Create GitHub Issue
</a>
</div>
</div>
<div class="feedback-thanks">Thank you for your feedback!</div>
</div>
`;

article.insertAdjacentHTML('beforeend', feedbackHTML);

// Add click handlers
const feedbackBtns = document.querySelectorAll('.feedback-btn');
const thanksMessage = document.querySelector('.feedback-thanks');
const feedbackOptions = document.querySelector('.feedback-options');

feedbackBtns.forEach(btn => {
btn.addEventListener('click', function() {
const feedback = this.dataset.feedback;

// Remove selected class from all buttons
feedbackBtns.forEach(b => b.classList.remove('selected'));

// Add selected class to clicked button
this.classList.add('selected');

if (feedback === 'yes') {
// Hide options and show thanks
feedbackOptions.style.display = 'none';
thanksMessage.style.display = 'block';

// Send positive feedback
if (typeof gtag !== 'undefined') {
gtag('event', 'page_feedback', {
'feedback_value': 'positive',
'page_location': window.location.href
});
}
} else {
// Show GitHub link for negative feedback
feedbackOptions.style.display = 'block';
thanksMessage.style.display = 'none';
}
});
});
}
});
13 changes: 13 additions & 0 deletions docs/api/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
API Reference
=============

Complete API documentation for SageMaker Python SDK V3.

.. toctree::
:maxdepth: 2
:caption: API Reference

sagemaker_core
sagemaker_train
sagemaker_serve
sagemaker_mlops
60 changes: 60 additions & 0 deletions docs/api/sagemaker_core.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
SageMaker Core
==============

Core SageMaker resources and utilities for managing AWS SageMaker services.

.. currentmodule:: sagemaker.core

Core Resources
--------------

.. automodule:: sagemaker.core.resources
:members:
:undoc-members:
:show-inheritance:

Session Management
------------------

.. automodule:: sagemaker.core.session_settings
:members:
:undoc-members:

Configuration
-------------

.. automodule:: sagemaker.core.config_schema
:members:
:undoc-members:

Processing
----------

.. automodule:: sagemaker.core.processing
:members:
:undoc-members:

Transformers
------------

.. automodule:: sagemaker.core.transformer
:members:
:undoc-members:

Utilities
---------

.. automodule:: sagemaker.core.common_utils
:members:
:undoc-members:

.. automodule:: sagemaker.core.image_uris
:members:
:undoc-members:

Exceptions
----------

.. automodule:: sagemaker.core.exceptions
:members:
:undoc-members:
Loading
Loading