René's URL Explorer Experiment


Title: Add Record and TableInfo typed return models by tpellissier-msft · Pull Request #115 · microsoft/PowerPlatform-DataverseClient-Python · GitHub

Open Graph Title: Add Record and TableInfo typed return models by tpellissier-msft · Pull Request #115 · microsoft/PowerPlatform-DataverseClient-Python

X Title: Add Record and TableInfo typed return models by tpellissier-msft · Pull Request #115 · microsoft/PowerPlatform-DataverseClient-Python

Description: Summary Introduces typed dataclass return models for record and table metadata operations, replacing raw Dict[str, Any] returns while maintaining full backward compatibility via dict-like access. New models Record — wraps OData record responses with id, table, data, etag fields. result["key"] still works via delegation to self.data. Factory from_api_response() strips @odata.* keys and extracts etag. TableInfo — wraps table metadata with legacy key mapping (result["table_schema_name"] maps to result.schema_name). Factories from_dict() and from_api_response(). ColumnInfo — typed column metadata with from_api_response() for PascalCase API responses. Changed return types Method Before After records.get(table, id) Dict[str, Any] Record records.get(table, filter=...) Iterable[List[Dict]] Iterable[List[Record]] query.sql(sql) List[Dict] List[Record] tables.create(...) Dict[str, Any] TableInfo tables.get(...) Optional[Dict] Optional[TableInfo] Backward compatibility result["key"] works on all models "key" in result works for k in result iterates keys result.get("key", default) works Legacy keys on TableInfo (table_schema_name) map to new attributes (schema_name) Test plan 188 unit tests passing (32 new model tests + updated operation/deprecation tests) Black formatting clean 🤖 Generated with Claude Code

Open Graph Description: Summary Introduces typed dataclass return models for record and table metadata operations, replacing raw Dict[str, Any] returns while maintaining full backward compatibility via dict-like access. N...

X Description: Summary Introduces typed dataclass return models for record and table metadata operations, replacing raw Dict[str, Any] returns while maintaining full backward compatibility via dict-like access. N...

Opengraph URL: https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:79fd0adc-17e3-eb1c-8453-54bf8f987a80
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9FB4:22A0B:4FEDF:6B338:6A4D2876
html-safe-nonceca95faca96475a8ed9066cc63cbc2ea4b65be422ac35756f45bc7034f9197d58
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RkI0OjIyQTBCOjRGRURGOjZCMzM4OjZBNEQyODc2IiwidmlzaXRvcl9pZCI6IjY5NDQ5ODcyOTIyMTg3NjMzODMiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac0c8f86a8f4ee0b3d08afd95a9aa0933d468304215466eaa57392eaaff7c9079f
hovercard-subject-tagpull_request:3317708850
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
twitter:imagehttps://avatars.githubusercontent.com/u/227695833?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/227695833?s=400&v=4
og:image:altSummary Introduces typed dataclass return models for record and table metadata operations, replacing raw Dict[str, Any] returns while maintaining full backward compatibility via dict-like access. N...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None92571a8944142227b7e19cd10918b1ddd06e5066c1ad5bc7e4769cf6140a87e6
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/microsoft/PowerPlatform-DataverseClient-Python git https://github.com/microsoft/PowerPlatform-DataverseClient-Python.git
octolytics-dimension-user_id6154722
octolytics-dimension-user_loginmicrosoft
octolytics-dimension-repository_id1042273116
octolytics-dimension-repository_nwomicrosoft/PowerPlatform-DataverseClient-Python
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1042273116
octolytics-dimension-repository_network_root_nwomicrosoft/PowerPlatform-DataverseClient-Python
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release93f17a978ee60bc4668e1d7b90e6bd2d622261fd
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fpull%2F115%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fpull%2F115%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=microsoft%2FPowerPlatform-DataverseClient-Python
Reloadhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
Reloadhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
Reloadhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
microsoft https://github.com/microsoft
PowerPlatform-DataverseClient-Pythonhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python
Notifications https://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python
Fork 22 https://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python
Star 56 https://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python
Code https://github.com/microsoft/PowerPlatform-DataverseClient-Python
Issues 6 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/issues
Pull requests 14 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulls
Actions https://github.com/microsoft/PowerPlatform-DataverseClient-Python/actions
Projects https://github.com/microsoft/PowerPlatform-DataverseClient-Python/projects
Models https://github.com/microsoft/PowerPlatform-DataverseClient-Python/models
Security and quality 0 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/security
Insights https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulse
Code https://github.com/microsoft/PowerPlatform-DataverseClient-Python
Issues https://github.com/microsoft/PowerPlatform-DataverseClient-Python/issues
Pull requests https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulls
Actions https://github.com/microsoft/PowerPlatform-DataverseClient-Python/actions
Projects https://github.com/microsoft/PowerPlatform-DataverseClient-Python/projects
Models https://github.com/microsoft/PowerPlatform-DataverseClient-Python/models
Security and quality https://github.com/microsoft/PowerPlatform-DataverseClient-Python/security
Insights https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fissues%2Fnew%2Fchoose
tpellissier-msfthttps://github.com/tpellissier-msft
mainhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/tree/main
feature/record-tableinfo-modelshttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/tree/feature/record-tableinfo-models
Conversation 7 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115
Commits 9 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits
Checks 9 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/checks
Files changed https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
Add Record and TableInfo typed return models https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#top
Show all changes 9 commits https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
d3ab4cf Add RelationshipInfo typed return model for relationship methods tpellissier Feb 23, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/d3ab4cfed9777d9e03f061207c4c963b885a4b5f
d60b4cf Add Record and TableInfo typed return models tpellissier Feb 23, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/d60b4cf327386cd7dbccda8bc5f91551ef985cf3
ec8945a Use shared OData type constants from common.constants instead of loca… tpellissier Feb 23, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/ec8945ad5482ba583500ca0de2a9fbbdd75c164a
a54c753 Merge remote-tracking branch 'origin/main' into feature/record-tablei… tpellissier Feb 23, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/a54c753cfd7982e417bd6bf2a7723d79df6c7140
d649c1b Merge branch 'feature/record-tableinfo-models' of https://github.com/… tpellissier Feb 23, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/d649c1b9408f2baefb450cb71a8400e175e013de
b1dd6de Merge remote-tracking branch 'origin/main' into feature/record-tablei… tpellissier Feb 23, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/b1dd6de58ad0ebdbe97d48b834d3fa063dc56744
e37f2bb Merge remote-tracking branch 'origin/main' into feature/record-tablei… tpellissier Feb 24, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/e37f2bb43a4ba2348279c8b183a34566d71f0cac
639cba7 Merge main into feature/record-tableinfo-models tpellissier Mar 3, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/639cba75a029ee9044adebfb7b34b45591ff7f26
35b62e7 Address review feedback: return type annotations and unused imports tpellissier Mar 5, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/commits/35b62e7bd8403a139a0b5c1a9f585dad6f675ae7
Clear filters https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
record.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-e13db26097fb34706da0a7a6b16b0c679845bf536e1a6c1ffa6ae2880550c255
table_info.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-76321090327a0f7592cf0bf822b869e0b5b02048d627543771fe71ab97fd88c2
query.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-40e01667628086fefd797228144823f2ff5889fe9c703937f547a66674f6a096
records.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-834472b33ecb5bfd2e00fd93b2f3dfe9b664eddf42080563256a9369cf755ad2
tables.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-7e3601f1a8bf8b9f8cd1cd4dc5f04969292f981795e9017923cc971041431ede
test_record.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-75e1a21ec074ce617990c96bbb0e21a711a393388a5e6726b4a267346fa5d12c
test_relationship_info.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-4adc6de745f42300f18fca86e62f9eabf379644941c6e11ccf68105f0707990b
test_table_info.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-7f7f24f5e0db94759ec6c77313a2d2a29fbba55896a1c367f12c138734a5cbc4
test_client.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-8a93cfa9211c8f1cfcf07190aae5a33542431e9906054bcab28e169d71ad133b
test_client_deprecations.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-10bdb60fd50bb3e2014e01894bed4eae052611e7d6bd24442a8fcc073e2b8e66
test_query_operations.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-318a0f9bfa11c91b805e465107fe9255a2d6f80e0c527e4488f475459471c4b4
test_records_operations.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-5625cdb57716819e23a4292d65c4ff50743487fca7a1433d6f9642cf995cade3
test_tables_operations.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-0d2f64f2ab1e3c4cba1398efd01e91f2d634237969848b9a97d37dd8fde62055
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/CODEOWNERS#L6
src/PowerPlatform/Dataverse/models/record.pyhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-e13db26097fb34706da0a7a6b16b0c679845bf536e1a6c1ffa6ae2880550c255
View file https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/35b62e7bd8403a139a0b5c1a9f585dad6f675ae7/src/PowerPlatform/Dataverse/models/record.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/{{ revealButtonHref }}
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/CODEOWNERS#L6
src/PowerPlatform/Dataverse/models/table_info.pyhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-76321090327a0f7592cf0bf822b869e0b5b02048d627543771fe71ab97fd88c2
View file https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/35b62e7bd8403a139a0b5c1a9f585dad6f675ae7/src/PowerPlatform/Dataverse/models/table_info.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/{{ revealButtonHref }}
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/CODEOWNERS#L6
src/PowerPlatform/Dataverse/operations/query.pyhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-40e01667628086fefd797228144823f2ff5889fe9c703937f547a66674f6a096
View file https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/35b62e7bd8403a139a0b5c1a9f585dad6f675ae7/src/PowerPlatform/Dataverse/operations/query.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/{{ revealButtonHref }}
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-40e01667628086fefd797228144823f2ff5889fe9c703937f547a66674f6a096
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-40e01667628086fefd797228144823f2ff5889fe9c703937f547a66674f6a096
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-40e01667628086fefd797228144823f2ff5889fe9c703937f547a66674f6a096
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-40e01667628086fefd797228144823f2ff5889fe9c703937f547a66674f6a096
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files#diff-40e01667628086fefd797228144823f2ff5889fe9c703937f547a66674f6a096
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/115/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.