Skip to content

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) - #179

Closed
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1
Closed

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177)#179
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1

Conversation

@Quantum0uasar

Copy link
Copy Markdown
Collaborator

Replace LBYL platform check with EAFP try/except AttributeError pattern.

os.getegid() and os.geteuid() are unavailable on Windows and other non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than checking the platform up front, wrap the assignments in a try/except block so group_access and user_access are simply omitted when the underlying OS calls are not available.

Closes#177

…d-custodian#177)
Replace LBYL platform check with EAFP try/except AttributeError pattern.
os.getegid() and os.geteuid() are unavailable on Windows and other
non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than
checking the platform up front, wrap the assignments in a try/except
block so group_access and user_access are simply omitted when the
underlying OS calls are not available.
Closescloud-custodian#177
@linux-foundation-easycla

linux-foundation-easyclaBot commented May 24, 2026

Copy link
Copy Markdown

CLA Not Signed

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

@kapilt

Copy link
Copy Markdown
Collaborator

@Quantum0uasar are you able to do the cncf cla per other pr comment? Direct link https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/14202841/272774581/179/#/?version=2

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

Good catch on the EAFP refactor — the try/except AttributeError approach is definitely the right call here over platform string checking. A couple of notes:

  1. The data dict used inside the try block — make sure it's initialized before this block so the except: pass path still returns a valid (partial) map without the access keys. Looks correct from the diff but worth confirming in context.
  2. It might be worth a brief comment above the try block explaining whyAttributeError is caught (i.e., non-POSIX platforms like Windows/WASI don't expose os.getegid/os.geteuid). Helps future readers avoid confusion.

Once the CLA is signed this should be good to go. Thanks for the contribution!

@slott56

Copy link
Copy Markdown
Collaborator

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

I will as soon as the CLA is completed.

@slott56slott56 mentioned this pull request Jul 2, 2026
@slott56

Copy link
Copy Markdown
Collaborator

Closed by #188

@slott56slott56 closed this Jul 2, 2026
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.

The __main__.py module breaks under Windows

3 participants

@Quantum0uasar@kapilt@slott56
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) by Quantum0uasar · Pull Request #179 · cloud-custodian/cel-python · GitHub
Skip to content

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) - #179

Closed
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1
Closed

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177)#179
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1

Conversation

@Quantum0uasar

Copy link
Copy Markdown
Collaborator

Replace LBYL platform check with EAFP try/except AttributeError pattern.

os.getegid() and os.geteuid() are unavailable on Windows and other non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than checking the platform up front, wrap the assignments in a try/except block so group_access and user_access are simply omitted when the underlying OS calls are not available.

Closes#177

…d-custodian#177)
Replace LBYL platform check with EAFP try/except AttributeError pattern.
os.getegid() and os.geteuid() are unavailable on Windows and other
non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than
checking the platform up front, wrap the assignments in a try/except
block so group_access and user_access are simply omitted when the
underlying OS calls are not available.
Closescloud-custodian#177
@linux-foundation-easycla

linux-foundation-easyclaBot commented May 24, 2026

Copy link
Copy Markdown

CLA Not Signed

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

@kapilt

Copy link
Copy Markdown
Collaborator

@Quantum0uasar are you able to do the cncf cla per other pr comment? Direct link https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/14202841/272774581/179/#/?version=2

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

Good catch on the EAFP refactor — the try/except AttributeError approach is definitely the right call here over platform string checking. A couple of notes:

  1. The data dict used inside the try block — make sure it's initialized before this block so the except: pass path still returns a valid (partial) map without the access keys. Looks correct from the diff but worth confirming in context.
  2. It might be worth a brief comment above the try block explaining whyAttributeError is caught (i.e., non-POSIX platforms like Windows/WASI don't expose os.getegid/os.geteuid). Helps future readers avoid confusion.

Once the CLA is signed this should be good to go. Thanks for the contribution!

@slott56

Copy link
Copy Markdown
Collaborator

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

I will as soon as the CLA is completed.

@slott56slott56 mentioned this pull request Jul 2, 2026
@slott56

Copy link
Copy Markdown
Collaborator

Closed by #188

@slott56slott56 closed this Jul 2, 2026
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.

The __main__.py module breaks under Windows

3 participants

@Quantum0uasar@kapilt@slott56
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) by Quantum0uasar · Pull Request #179 · cloud-custodian/cel-python · GitHub
Skip to content

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) - #179

Closed
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1
Closed

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177)#179
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1

Conversation

@Quantum0uasar

Copy link
Copy Markdown
Collaborator

Replace LBYL platform check with EAFP try/except AttributeError pattern.

os.getegid() and os.geteuid() are unavailable on Windows and other non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than checking the platform up front, wrap the assignments in a try/except block so group_access and user_access are simply omitted when the underlying OS calls are not available.

Closes#177

…d-custodian#177)
Replace LBYL platform check with EAFP try/except AttributeError pattern.
os.getegid() and os.geteuid() are unavailable on Windows and other
non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than
checking the platform up front, wrap the assignments in a try/except
block so group_access and user_access are simply omitted when the
underlying OS calls are not available.
Closescloud-custodian#177
@linux-foundation-easycla

linux-foundation-easyclaBot commented May 24, 2026

Copy link
Copy Markdown

CLA Not Signed

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

@kapilt

Copy link
Copy Markdown
Collaborator

@Quantum0uasar are you able to do the cncf cla per other pr comment? Direct link https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/14202841/272774581/179/#/?version=2

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

Good catch on the EAFP refactor — the try/except AttributeError approach is definitely the right call here over platform string checking. A couple of notes:

  1. The data dict used inside the try block — make sure it's initialized before this block so the except: pass path still returns a valid (partial) map without the access keys. Looks correct from the diff but worth confirming in context.
  2. It might be worth a brief comment above the try block explaining whyAttributeError is caught (i.e., non-POSIX platforms like Windows/WASI don't expose os.getegid/os.geteuid). Helps future readers avoid confusion.

Once the CLA is signed this should be good to go. Thanks for the contribution!

@slott56

Copy link
Copy Markdown
Collaborator

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

I will as soon as the CLA is completed.

@slott56slott56 mentioned this pull request Jul 2, 2026
@slott56

Copy link
Copy Markdown
Collaborator

Closed by #188

@slott56slott56 closed this Jul 2, 2026
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.

The __main__.py module breaks under Windows

3 participants

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

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) - #179

Closed
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1
Closed

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177)#179
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1

Conversation

@Quantum0uasar

Copy link
Copy Markdown
Collaborator

Replace LBYL platform check with EAFP try/except AttributeError pattern.

os.getegid() and os.geteuid() are unavailable on Windows and other non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than checking the platform up front, wrap the assignments in a try/except block so group_access and user_access are simply omitted when the underlying OS calls are not available.

Closes#177

…d-custodian#177)
Replace LBYL platform check with EAFP try/except AttributeError pattern.
os.getegid() and os.geteuid() are unavailable on Windows and other
non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than
checking the platform up front, wrap the assignments in a try/except
block so group_access and user_access are simply omitted when the
underlying OS calls are not available.
Closescloud-custodian#177
@linux-foundation-easycla

linux-foundation-easyclaBot commented May 24, 2026

Copy link
Copy Markdown

CLA Not Signed

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

@kapilt

Copy link
Copy Markdown
Collaborator

@Quantum0uasar are you able to do the cncf cla per other pr comment? Direct link https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/14202841/272774581/179/#/?version=2

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

Good catch on the EAFP refactor — the try/except AttributeError approach is definitely the right call here over platform string checking. A couple of notes:

  1. The data dict used inside the try block — make sure it's initialized before this block so the except: pass path still returns a valid (partial) map without the access keys. Looks correct from the diff but worth confirming in context.
  2. It might be worth a brief comment above the try block explaining whyAttributeError is caught (i.e., non-POSIX platforms like Windows/WASI don't expose os.getegid/os.geteuid). Helps future readers avoid confusion.

Once the CLA is signed this should be good to go. Thanks for the contribution!

@slott56

Copy link
Copy Markdown
Collaborator

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

I will as soon as the CLA is completed.

@slott56slott56 mentioned this pull request Jul 2, 2026
@slott56

Copy link
Copy Markdown
Collaborator

Closed by #188

@slott56slott56 closed this Jul 2, 2026
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.

The __main__.py module breaks under Windows

3 participants

@Quantum0uasar@kapilt@slott56
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) by Quantum0uasar · Pull Request #179 · cloud-custodian/cel-python · GitHub
Skip to content

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) - #179

Closed
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1
Closed

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177)#179
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1

Conversation

@Quantum0uasar

Copy link
Copy Markdown
Collaborator

Replace LBYL platform check with EAFP try/except AttributeError pattern.

os.getegid() and os.geteuid() are unavailable on Windows and other non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than checking the platform up front, wrap the assignments in a try/except block so group_access and user_access are simply omitted when the underlying OS calls are not available.

Closes#177

…d-custodian#177)
Replace LBYL platform check with EAFP try/except AttributeError pattern.
os.getegid() and os.geteuid() are unavailable on Windows and other
non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than
checking the platform up front, wrap the assignments in a try/except
block so group_access and user_access are simply omitted when the
underlying OS calls are not available.
Closescloud-custodian#177
@linux-foundation-easycla

linux-foundation-easyclaBot commented May 24, 2026

Copy link
Copy Markdown

CLA Not Signed

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

@kapilt

Copy link
Copy Markdown
Collaborator

@Quantum0uasar are you able to do the cncf cla per other pr comment? Direct link https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/14202841/272774581/179/#/?version=2

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

Good catch on the EAFP refactor — the try/except AttributeError approach is definitely the right call here over platform string checking. A couple of notes:

  1. The data dict used inside the try block — make sure it's initialized before this block so the except: pass path still returns a valid (partial) map without the access keys. Looks correct from the diff but worth confirming in context.
  2. It might be worth a brief comment above the try block explaining whyAttributeError is caught (i.e., non-POSIX platforms like Windows/WASI don't expose os.getegid/os.geteuid). Helps future readers avoid confusion.

Once the CLA is signed this should be good to go. Thanks for the contribution!

@slott56

Copy link
Copy Markdown
Collaborator

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

I will as soon as the CLA is completed.

@slott56slott56 mentioned this pull request Jul 2, 2026
@slott56

Copy link
Copy Markdown
Collaborator

Closed by #188

@slott56slott56 closed this Jul 2, 2026
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.

The __main__.py module breaks under Windows

3 participants

@Quantum0uasar@kapilt@slott56
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) by Quantum0uasar · Pull Request #179 · cloud-custodian/cel-python · GitHub
Skip to content

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) - #179

Closed
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1
Closed

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177)#179
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1

Conversation

@Quantum0uasar

Copy link
Copy Markdown
Collaborator

Replace LBYL platform check with EAFP try/except AttributeError pattern.

os.getegid() and os.geteuid() are unavailable on Windows and other non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than checking the platform up front, wrap the assignments in a try/except block so group_access and user_access are simply omitted when the underlying OS calls are not available.

Closes#177

…d-custodian#177)
Replace LBYL platform check with EAFP try/except AttributeError pattern.
os.getegid() and os.geteuid() are unavailable on Windows and other
non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than
checking the platform up front, wrap the assignments in a try/except
block so group_access and user_access are simply omitted when the
underlying OS calls are not available.
Closescloud-custodian#177
@linux-foundation-easycla

linux-foundation-easyclaBot commented May 24, 2026

Copy link
Copy Markdown

CLA Not Signed

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

@kapilt

Copy link
Copy Markdown
Collaborator

@Quantum0uasar are you able to do the cncf cla per other pr comment? Direct link https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/14202841/272774581/179/#/?version=2

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

Good catch on the EAFP refactor — the try/except AttributeError approach is definitely the right call here over platform string checking. A couple of notes:

  1. The data dict used inside the try block — make sure it's initialized before this block so the except: pass path still returns a valid (partial) map without the access keys. Looks correct from the diff but worth confirming in context.
  2. It might be worth a brief comment above the try block explaining whyAttributeError is caught (i.e., non-POSIX platforms like Windows/WASI don't expose os.getegid/os.geteuid). Helps future readers avoid confusion.

Once the CLA is signed this should be good to go. Thanks for the contribution!

@slott56

Copy link
Copy Markdown
Collaborator

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

I will as soon as the CLA is completed.

@slott56slott56 mentioned this pull request Jul 2, 2026
@slott56

Copy link
Copy Markdown
Collaborator

Closed by #188

@slott56slott56 closed this Jul 2, 2026
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.

The __main__.py module breaks under Windows

3 participants

@Quantum0uasar@kapilt@slott56
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) by Quantum0uasar · Pull Request #179 · cloud-custodian/cel-python · GitHub
Skip to content

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177) - #179

Closed
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1
Closed

fix: use EAFP try/except for os.getegid/geteuid in stat() (issue #177)#179
Quantum0uasar wants to merge 3 commits into
cloud-custodian:mainfrom
Quantum0uasar:patch-1

Conversation

@Quantum0uasar

Copy link
Copy Markdown
Collaborator

Replace LBYL platform check with EAFP try/except AttributeError pattern.

os.getegid() and os.geteuid() are unavailable on Windows and other non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than checking the platform up front, wrap the assignments in a try/except block so group_access and user_access are simply omitted when the underlying OS calls are not available.

Closes#177

…d-custodian#177)
Replace LBYL platform check with EAFP try/except AttributeError pattern.
os.getegid() and os.geteuid() are unavailable on Windows and other
non-POSIX platforms (e.g. WASI), raising AttributeError. Rather than
checking the platform up front, wrap the assignments in a try/except
block so group_access and user_access are simply omitted when the
underlying OS calls are not available.
Closescloud-custodian#177
@linux-foundation-easycla

linux-foundation-easyclaBot commented May 24, 2026

Copy link
Copy Markdown

CLA Not Signed

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

@kapilt

Copy link
Copy Markdown
Collaborator

@Quantum0uasar are you able to do the cncf cla per other pr comment? Direct link https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/14202841/272774581/179/#/?version=2

@Quantum0uasar

Copy link
Copy Markdown
CollaboratorAuthor

Good catch on the EAFP refactor — the try/except AttributeError approach is definitely the right call here over platform string checking. A couple of notes:

  1. The data dict used inside the try block — make sure it's initialized before this block so the except: pass path still returns a valid (partial) map without the access keys. Looks correct from the diff but worth confirming in context.
  2. It might be worth a brief comment above the try block explaining whyAttributeError is caught (i.e., non-POSIX platforms like Windows/WASI don't expose os.getegid/os.geteuid). Helps future readers avoid confusion.

Once the CLA is signed this should be good to go. Thanks for the contribution!

@slott56

Copy link
Copy Markdown
Collaborator

@slott56 Hi! Would you be able to take a look when you get a chance? All CI checks are passing — just needs a review to merge. Happy to make any changes if needed.

I will as soon as the CLA is completed.

@slott56slott56 mentioned this pull request Jul 2, 2026
@slott56

Copy link
Copy Markdown
Collaborator

Closed by #188

@slott56slott56 closed this Jul 2, 2026
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.

The __main__.py module breaks under Windows

3 participants

@Quantum0uasar@kapilt@slott56