Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Use custom user agent string at all times - #1

Merged
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string
Dec 5, 2017
Merged

Use custom user agent string at all times#1
laurenyu merged 3 commits into
aws:masterfrom
laurenyu:laurenyu-fix-user-agent-string

Conversation

@laurenyu

Copy link
Copy Markdown
Contributor

The previous implementation allowed for our user agent string to be overridden if the user supplied a boto3 session, SageMaker client, or SageMaker runtime client.

@owen-towen-t left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user agent string construction should be in its own module. It's right to construct it at import time though.

The module could expose a function that returns the user agent string, built at line 84 and 85 of session.py in this PR.

Comment threadsrc/sagemaker/session.py Outdated
SDK_VERSION = pkg_resources.require('sagemaker')[0].version

SDK_VERSION = pkg_resources.require('sagemaker')[0].version
OS_NAME = platform.system()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no OS name can be resolved, platform.system() will return an empty string. Can this be something like:

OS_NAME = platform.system() or 'UnresolvedOS'

Same for OS_VERSION

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done. Also moved everything to a new module.

Comment threadsrc/sagemaker/session.py Outdated
botocore_session.user_agent_extra = 'Boto3/{} Botocore/{}'.format(boto3.__version__,
botocore_session.user_agent_version)
self.sagemaker_client = sagemaker_client or self.boto_session.client('sagemaker')
self.sagemaker_client._client_config.user_agent = user_agent_string

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we don't preserve the original user agent string as well. Why not just append the SageMaker string to the end?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default user agent string is 'Boto3/1.4.8 Python/3.6.3 Darwin/15.6.0 Botocore/1.8.6', which is why I just added the Boto and Botocore versions to the end. It needs to start with 'AWS-SageMaker' and be followed by 'language/version OS/version' for parsing. Appending the original user agent string here is a good call, though.

@laurenyu
laurenyu merged commit d8c62c4 into aws:masterDec 5, 2017
@laurenyu
laurenyu deleted the laurenyu-fix-user-agent-string branch December 5, 2017 21:41
laurenyu referenced this pull request in laurenyu/sagemaker-python-sdk May 31, 2018
Add Pytorch estimator and model
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
…ws#1)
* Added client libraries notebooks + kmeans notebooks
* Fixed delete endpoint cell in mxnet notebook
* Removed leftover debugging cells from kmeans high level
* Reset IOBytes buffer after writing in KMeans low-level
* kmeans lowlevel notebook fixes
* Move examples into im-python-sdk directory
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this pull request Nov 15, 2018
mchoi8739 pushed a commit to mchoi8739/sagemaker-python-sdk that referenced this pull request Jul 25, 2022
aviruthen added a commit that referenced this pull request Apr 10, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #3)
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 14, 2026
mohamedzeidan2021 pushed a commit that referenced this pull request Apr 14, 2026
…as nullable dtyp (5675) (#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 15, 2026
#5713)
* feature: Torch dependency in sagameker-core to be made optional (5457)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: use subprocess instead of importlib.reload to avoid breaking six.with_metaclass super()
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 15, 2026
sagemaker-bot added a commit to sagemaker-bot/sagemaker-python-sdk that referenced this pull request Apr 17, 2026
aviruthen added a commit that referenced this pull request Apr 17, 2026
…es (5613) (#5725)
* fix: ModelTrainer and HyperparameterTuner missing environment variables (5613)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…ead-only, breaki (5698) (#5733)
* fix: ModelBuilder with source_code + DJL LMI: /opt/ml/model becomes read-only, breaki (5698)
* fix: address review comments (iteration #1)
aviruthen added a commit that referenced this pull request Apr 17, 2026
…erving, preventi (5529) (#5734)
* fix: bug: ModelBuilder overwrites user-provided HF_MODEL_ID for DJL Serving, preventi (5529)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #1)
* fix: address review comments (iteration #2)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* Use custom user agent string even if there is a user-supplied boto session or SageMaker client
* Move user agent string construction to its own module
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
* fix: Support for docker compose > v2 (5739)
* Adding integ tests to verify docker compose version
* fix: address review comments (iteration aws#1)
* fix: address review comments (iteration aws#3)
Evan-W-ang added a commit to Evan-W-ang/sagemaker-python-sdk that referenced this pull request Jun 8, 2026
…as nullable dtyp (5675) (aws#5732)
* fix: load_feature_definitions_from_dataframe() doesn't recognize pandas nullable dtyp (5675)
* fix: address review comments (iteration aws#1)
Sign up for freeto 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.

3 participants

@laurenyu@owen-t@nadiaya