René's URL Explorer Experiment


Title: bpo-44863: In TypedDict allow inherit from Generic and preserve bases by sransara · Pull Request #27663 · python/cpython · GitHub

Open Graph Title: bpo-44863: In TypedDict allow inherit from Generic and preserve bases by sransara · Pull Request #27663 · python/cpython

X Title: bpo-44863: In TypedDict allow inherit from Generic and preserve bases by sransara · Pull Request #27663 · python/cpython

Description: Copied from: https://bugs.python.org/issue44863 TypedDict PEP-589 says: A TypedDict cannot inherit from both a TypedDict type and a non-TypedDict base class. So the current implementation has: if type(base) is not _TypedDictMeta: raise TypeError(...) This restricts the user from defining generic TypedDicts in the natural class based syntax: class Pager(TypedDict, Generic[T]): ... Although PEP 589 doesn't explicitly state generic support, I believe it is complete in covering the specification even if generics were involved (at least for the class based syntax). I have tried putting together a PEP from guidance of typing-sig https://github.com/sransara/py-generic-typeddict/blob/master/pep-9999.rst. There is not much new contributions by that draft, except for specifying the alternative syntax and being more explicit about Generics. So I'm wondering if it would be possible to relax the constraint: TypedDict inheritance to include Generic. In my point of view Generic is more of a mixin, so it doesn't go against the PEP 589. Or is this change big enough to warrant a PEP? https://bugs.python.org/issue44863

Open Graph Description: Copied from: https://bugs.python.org/issue44863 TypedDict PEP-589 says: A TypedDict cannot inherit from both a TypedDict type and a non-TypedDict base class. So the current implementation has: if t...

X Description: Copied from: https://bugs.python.org/issue44863 TypedDict PEP-589 says: A TypedDict cannot inherit from both a TypedDict type and a non-TypedDict base class. So the current implementation has: if t...

Opengraph URL: https://github.com/python/cpython/pull/27663

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:b4699f7e-9752-c938-8916-5ac9e0a2a9fc
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD9F6:22F696:45CDA4D:5CEFFE6:69959198
html-safe-nonce80db9198ed9739e47af1b40c35f1b29a3c79db72772c16fd9b132ca04dfbf150
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEOUY2OjIyRjY5Njo0NUNEQTREOjVDRUZGRTY6Njk5NTkxOTgiLCJ2aXNpdG9yX2lkIjoiNjQ5ODE0NzA4OTUyODQ5MjQ0MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmace90e45d7ca11b32518805b9976bb93d13bfe336b71b500908e120703db20bd69
hovercard-subject-tagpull_request:705933047
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/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
twitter:imagehttps://avatars.githubusercontent.com/u/379594?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/379594?s=400&v=4
og:image:altCopied from: https://bugs.python.org/issue44863 TypedDict PEP-589 says: A TypedDict cannot inherit from both a TypedDict type and a non-TypedDict base class. So the current implementation has: if t...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None4bd759bc5f83244e2a0de29b937365905c0fefd238b6f077c24a49830375b4df
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release84938599335a8dc49305d1a140adf6e19877540a
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F27663%2Fcommits%2F0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
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
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
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%2Fpython%2Fcpython%2Fpull%2F27663%2Fcommits%2F0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
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%2Fcommits&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
Reloadhttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
Reloadhttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 34.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.5k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security 0 https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
JelleZijlstrahttps://github.com/JelleZijlstra
python:mainhttps://github.com/python/cpython/tree/main
sransara:py-generic-typeddict-simplehttps://github.com/sransara/cpython/tree/py-generic-typeddict-simple
Conversation 62 https://github.com/python/cpython/pull/27663
Commits 40 https://github.com/python/cpython/pull/27663/commits
Checks 0 https://github.com/python/cpython/pull/27663/checks
Files changed https://github.com/python/cpython/pull/27663/files
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
bpo-44863: In TypedDict allow inherit from Generic and preserve bases https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#top
Show all changes 40 commits https://github.com/python/cpython/pull/27663/files
6cfdc5f Allow TypedDict to inherit from Generic sransara Aug 7, 2021 https://github.com/python/cpython/pull/27663/commits/6cfdc5feffced6ec957a00ff7a3a0b839d6e0401
c022e44 TypedDict preserve MRO sransara Aug 7, 2021 https://github.com/python/cpython/pull/27663/commits/c022e44bc52ade798f79d2be5b127a1be035d2d5
2fa00b8 Fix base classes to be just generic and dict sransara Sep 3, 2021 https://github.com/python/cpython/pull/27663/commits/2fa00b81ea4df893be75f0a77e250e859e5e282b
b829d8a Simplify addiotion of Generic base class sransara Sep 3, 2021 https://github.com/python/cpython/pull/27663/commits/b829d8aa1e5e4e4f5e7e80938be8fa562412c681
c5762df Fully proxy origin by using types.GenericAlias sransara Sep 3, 2021 https://github.com/python/cpython/pull/27663/commits/c5762dfe99f282e8bf6a397fb48423963a3a1dd6
4c5db0a Add NEWS blurb sransara Sep 3, 2021 https://github.com/python/cpython/pull/27663/commits/4c5db0a9de4adce90bd01fa924fae23522e418a0
34189dd Add better NEWS blurb sransara Sep 3, 2021 https://github.com/python/cpython/pull/27663/commits/34189dd70d156452c656e6ba82524362b3589e29
0cfd637 Add more testcases sransara Sep 3, 2021 https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
5e808af Add implicit any test case sransara Sep 4, 2021 https://github.com/python/cpython/pull/27663/commits/5e808af25517f876f993858ebc0affd6372936f3
a2482ff Fix issue with plain generic inheritance sransara Sep 4, 2021 https://github.com/python/cpython/pull/27663/commits/a2482ff8a2533c36fefdf4881671981fe012f301
071c1b6 Include bases assertion sransara Sep 4, 2021 https://github.com/python/cpython/pull/27663/commits/071c1b6a72b04b459747ca8976b5caa7111b7612
3ce517b Update NEWS blurb with better formatting sransara Sep 5, 2021 https://github.com/python/cpython/pull/27663/commits/3ce517bf0fb89ec841e56a7e46bcaa63df4d9533
2f003e0 Revert overriding of getitem and not proxy dunders sransara Sep 5, 2021 https://github.com/python/cpython/pull/27663/commits/2f003e01166eb88988f2860a94b0be54ab5a5ecd
964f7d3 Use alternative way to find if Generic base is needed sransara Sep 6, 2021 https://github.com/python/cpython/pull/27663/commits/964f7d3ca0a27fc354e35cbae64e24a0ec2eaa4a
c3c0e51 Make it clear when Generic base is included sransara Sep 6, 2021 https://github.com/python/cpython/pull/27663/commits/c3c0e51285db55330bcba5792f7a345750dd9ca4
d34c99e Add getitem:so TD is subscriptable only if Generic sransara Sep 6, 2021 https://github.com/python/cpython/pull/27663/commits/d34c99e0ffe04eae6a2a626b8f0e8243aafd627b
cea66c4 Fix test consistency for empty params sransara Sep 6, 2021 https://github.com/python/cpython/pull/27663/commits/cea66c4f94e5f5b9259b3a941204b1d17d1dd816
0ed4326 Test for adding new generic arg in child class sransara Sep 6, 2021 https://github.com/python/cpython/pull/27663/commits/0ed4326a4d6c01661ffd46752a863266ae9d1465
b1fcd16 Update Lib/typing.py sransara Apr 30, 2022 https://github.com/python/cpython/pull/27663/commits/b1fcd16f5c9a8a1a7fddf4d978818dcedaa8442a
2905f29 Merge branch 'main' into py-generic-typeddict-simple serhiy-storchaka Apr 30, 2022 https://github.com/python/cpython/pull/27663/commits/2905f29fb89518bc2f9495a1bc4ff37f86c924f5
afa5e51 Fix merge error. serhiy-storchaka Apr 30, 2022 https://github.com/python/cpython/pull/27663/commits/afa5e51e0e0939ab117e3564d74212607b9d526c
94138f6 Fix trailing spaces. serhiy-storchaka Apr 30, 2022 https://github.com/python/cpython/pull/27663/commits/94138f630a4a2e0a3776e83ca96beea76bc94ad6
2572930 Merge branch 'main' into py-generic-typeddict-simple serhiy-storchaka May 1, 2022 https://github.com/python/cpython/pull/27663/commits/2572930bb85514be9c6f1bb22e6e19d3dd203cf1
c2e1d8d Fix indentation sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/c2e1d8d1fb13874935b832e93317fbc8d54fade6
d3d9456 Remove trailing commas in tuples sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/d3d9456cf51d305c594061ee5f7fd28b2f680a0f
311852c Add test with flipped bases sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/311852c062c45033cfba842fba58c3e7fac4abb7
dc98753 Move implicit any test to on its own case sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/dc98753e634bfaa0ac1992e8e005beea1fd2e0f7
9bed1d4 Add checks for orig_bases and mro sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/9bed1d4f8ed955df0f564250e361302b888b3c96
6c152e7 Remove specialization from generic get_type_hints sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/6c152e7fa8f6a4443a3e9a8b46a0d96ad804e2fd
f88201b Check type hints of inherited generic typeddict sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/f88201be7e78230271c9e3bf833a93ea2b39bdec
6ea95df Remove unused statement sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/6ea95df4361cf59b82e9f529f777553427e0818f
80e9104 Add class method through the metaclass sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/80e9104f020fac2647ff158842c5dff6e5d96b88
dbbb707 Fix generic base when inherited from implicit any sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/dbbb7077460f68d9c3f66288ca01dd4cd7e15c19
56b69e0 Fix whitespacing with reindent.py sransara May 2, 2022 https://github.com/python/cpython/pull/27663/commits/56b69e0456d7137842ea4daf6d9f31b36621b16a
4a40825 fix tuple JelleZijlstra May 2, 2022 https://github.com/python/cpython/pull/27663/commits/4a408253553f941b56af76d8a28ff9867dfd85b0
4b50ae2 remove unnecessary __class_getitem__ override JelleZijlstra May 2, 2022 https://github.com/python/cpython/pull/27663/commits/4b50ae289c3ea5c3e8fd25eaebcc02e166df9527
ecc7726 Merge remote-tracking branch 'upstream/main' into py-generic-typeddic… JelleZijlstra May 2, 2022 https://github.com/python/cpython/pull/27663/commits/ecc772698dc8c60d48edbfd6dd534799895e7f61
5b5a983 docs JelleZijlstra May 2, 2022 https://github.com/python/cpython/pull/27663/commits/5b5a98340f9017c981aa7237bf3e0c3c869d6fe0
99a1430 Merge branch 'main' into py-generic-typeddict-simple JelleZijlstra May 2, 2022 https://github.com/python/cpython/pull/27663/commits/99a1430ed8161c9af0b2852af8e9fa54b68a05d7
79c2bb4 Merge branch 'main' into py-generic-typeddict-simple JelleZijlstra May 2, 2022 https://github.com/python/cpython/pull/27663/commits/79c2bb4b5ea1d55751470306022372cfb4820cea
Clear filters https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
_typed_dict_helper.py https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-acdc39ac4c6b11d23567a358f444472613caf427d45102f32829df2406f27989
test_typing.py https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-04d29c98076c2d6bb75921ea9becb26a862544d39b71db87b6e354c759b9305d
Prev https://github.com/python/cpython/pull/27663/commits/34189dd70d156452c656e6ba82524362b3589e29
Next https://github.com/python/cpython/pull/27663/commits/5e808af25517f876f993858ebc0affd6372936f3
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
https://github.com/sransara
sransarahttps://github.com/python/cpython/commits?author=sransara
Lib/test/_typed_dict_helper.pyhttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-acdc39ac4c6b11d23567a358f444472613caf427d45102f32829df2406f27989
View file https://github.com/sransara/cpython/blob/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4/Lib/test/_typed_dict_helper.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/27663/commits/{{ revealButtonHref }}
https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-acdc39ac4c6b11d23567a358f444472613caf427d45102f32829df2406f27989
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L607
Lib/test/test_typing.pyhttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-04d29c98076c2d6bb75921ea9becb26a862544d39b71db87b6e354c759b9305d
View file https://github.com/sransara/cpython/blob/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4/Lib/test/test_typing.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/27663/commits/{{ revealButtonHref }}
https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-04d29c98076c2d6bb75921ea9becb26a862544d39b71db87b6e354c759b9305d
https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-04d29c98076c2d6bb75921ea9becb26a862544d39b71db87b6e354c759b9305d
https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-04d29c98076c2d6bb75921ea9becb26a862544d39b71db87b6e354c759b9305d
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
Please reload this pagehttps://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4
https://github.com/python/cpython/pull/27663/commits/0cfd637d7b5fce9ddcbe9fa8e28ad903828ab9d4#diff-04d29c98076c2d6bb75921ea9becb26a862544d39b71db87b6e354c759b9305d
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.