René's URL Explorer Experiment


Title: Use zero-argument super() by EliahKagan · Pull Request #1726 · gitpython-developers/GitPython · GitHub

Open Graph Title: Use zero-argument super() by EliahKagan · Pull Request #1726 · gitpython-developers/GitPython

X Title: Use zero-argument super() by EliahKagan · Pull Request #1726 · gitpython-developers/GitPython

Description: This replaces 2-argument super(...) calls with the zero-argument super() form everywhere applicable: All uses of two-argument super in the code are replaced. All but one mention of two-argument super in comments are replaced. I had omitted this from #1725 because it may require more technical attention to fully check than other code changes there, and that PR was mostly for comments and docstrings. Exactly when super() can be used Since super is in practice one of the most confusing features of Python, I've included this section to help in verifying the changes here, and also so that they could be reverified later. However, this section is optional. As noted in output of help(super) (which is from this code, though the other documentation can be useful): super() -> same as super(__class__, ) __class__ is actually literal there--though the static __class__ cell should not be confused with the dynamic __class__ attribute--but it can also be thought of as standing for the name of the enclosing class (or narrowest enclosing class in the case of nested classes), which is actually what one typically writes in the two-argument form of super. When the expression passed in place of __class__ refers to the (narrowest enclosing) class, and the expression passed in place of is the name of the first parameter of the method (typically self in instance methods, or cls in class methods or __new__), the zero-argument form super() can be used instead with the same meaning. The one place I couldn't replace it The above-described situation applied everywhere in GitPython where super was actually used. However, there are also comments in some places describing how something else could be done or how what was done could be done differently. In those, most showings of multiple-argument super were replaceable with super without changing what the code would mean and do if used in the place the comment pertained to. But then there is this, in git.objects.util.TraversableIterableObj: GitPython/git/objects/util.py Lines 625 to 658 in 6cef9c0 def traverse( self: T_TIobj, predicate: Callable[[Union[T_TIobj, TIobj_tuple], int], bool] = lambda i, d: True, prune: Callable[[Union[T_TIobj, TIobj_tuple], int], bool] = lambda i, d: False, depth: int = -1, branch_first: bool = True, visit_once: bool = True, ignore_self: int = 1, as_edge: bool = False, ) -> Union[Iterator[T_TIobj], Iterator[Tuple[T_TIobj, T_TIobj]], Iterator[TIobj_tuple]]: """For documentation, see util.Traversable._traverse()""" """ # To typecheck instead of using cast. import itertools from git.types import TypeGuard def is_commit_traversed(inp: Tuple) -> TypeGuard[Tuple[Iterator[Tuple['Commit', 'Commit']]]]: for x in inp[1]: if not isinstance(x, tuple) and len(x) != 2: if all(isinstance(inner, Commit) for inner in x): continue return True ret = super(Commit, self).traverse(predicate, prune, depth, branch_first, visit_once, ignore_self, as_edge) ret_tup = itertools.tee(ret, 2) assert is_commit_traversed(ret_tup), f"{[type(x) for x in list(ret_tup[0])]}" return ret_tup[0] """ return cast( Union[Iterator[T_TIobj], Iterator[Tuple[Union[None, T_TIobj], T_TIobj]]], super(TraversableIterableObj, self)._traverse( predicate, prune, depth, branch_first, visit_once, ignore_self, as_edge # type: ignore ), ) The actual super call in the code there is replaceable, and I replaced it, with zero-argument super(). But the comment--or, more precisely, the string being used as a comment--shows a call with Commit as the class name. I'm not sure if that's intended or not. If it is intended, maybe it represents code that would be written somewhere else. So I haven't changed that, though I'm willing to do so if the matter is clarified. It could be changed either in a new commit in this PR, or in a subsequent PR. Other changes There's some proofreading of the kind done in #1725 that I missed there and took care of here. More significantly, TestBigRepoR.setUp contains: GitPython/test/performance/lib.py Lines 35 to 38 in 6cef9c0 try: super(TestBigRepoR, self).setUp() except AttributeError: pass And TestBigRepoRW.setUp analogously contains: GitPython/test/performance/lib.py Lines 67 to 70 in 6cef9c0 try: super(TestBigRepoRW, self).setUp() except AttributeError: pass In addition to replacing those two-argument super calls with zero-argument super(), I also removed the logic to catch and swallow AttributeError. As covered in more detail in the 9113177 commit message, this is unnecessary because unittest.TestCase defines an empty setUp method to allow this kind of special casing to be avoided, and it may be brittle because AttributeError could be raised from the actual code of a setUp method, due to the specific way the code to swallow it is written. However, if that latter effect, which would usually be strongly unwanted, is actually the goal, then this should be undone and a suitable comment and/or clarifying refactoring done. What isn't included It's unclear whether super calls in test classes' setUp and tearDown methods are always made in the places they are made because that is where superclass and sibling-class fixture acquisition and release behavior should occur. For example, usually, if setUp delegates via super to another class's setUp method at the beginning, and in a case where the corresponding tearDown method needs delegate via super to another class's tearDown method, then that tearDown call should be at the end, so that resource acquisition and release more often occurs in a temporally nested way that is easier to reason about and more often correct. However, sometimes doing it differently is deliberate. Furthermore, setUp and tearDown methods are inherently weird, because, if a subclass's setUp calls a superclass's setUp and then fails with an exception, then tearDown won't run. (Also, in situations where tearDown does run, an exception in one tearDown method may still prevent other MRO classes' tearDown methods from running. Unlike the first issue, for this there isn't really any perfect thing to do. But I think the framework still makes it somewhat harder than necessary to reason about when the tearDown calls are manually written rather than arranged and implied by the setUp logic.) For this reason, I am unsure if it is really worthwhile to try to improve ordering. If improvements are to be made, it might be best to have only setUp methods and have them register cleanup logic by calling addCleanup--or, perhaps better where applicable, enterContext, though a backport of it for Python <3.11 would be needed. Unlike tearDown methods, cleanup scheduled with addCleanup, either directly or through enterContext, is deterministically performed, in the opposite of the order it was added, even if setUp failed with an exception after the addCleanup call.

Open Graph Description: This replaces 2-argument super(...) calls with the zero-argument super() form everywhere applicable: All uses of two-argument super in the code are replaced. All but one mention of two-argument su...

X Description: This replaces 2-argument super(...) calls with the zero-argument super() form everywhere applicable: All uses of two-argument super in the code are replaced. All but one mention of two-argument su...

Opengraph URL: https://github.com/gitpython-developers/GitPython/pull/1726

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:872a18d7-b6b4-b635-cd9f-e8f6c25132fb
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idEABE:1A4860:20F2DE0:2E1A222:69693BA2
html-safe-noncee175884acfaf6fcf89ed9e754846f485b5dda39aefe43ecf184f6b728a83a3fd
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFQUJFOjFBNDg2MDoyMEYyREUwOjJFMUEyMjI6Njk2OTNCQTIiLCJ2aXNpdG9yX2lkIjoiOTE2NTg1MjM3MjAxMTQwMDA5OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac7a815a7319c69c6299091aa7ad888c0a5b56e775d74ba0b2453622835876400c
hovercard-subject-tagpull_request:1584866435
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/gitpython-developers/GitPython/pull/1726/files
twitter:imagehttps://avatars.githubusercontent.com/u/1771172?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1771172?s=400&v=4
og:image:altThis replaces 2-argument super(...) calls with the zero-argument super() form everywhere applicable: All uses of two-argument super in the code are replaced. All but one mention of two-argument su...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None54182691a21263b584d2e600b758e081b0ff1d10ffc0d2eefa51cf754b43b51d
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/gitpython-developers/GitPython git https://github.com/gitpython-developers/GitPython.git
octolytics-dimension-user_id503709
octolytics-dimension-user_logingitpython-developers
octolytics-dimension-repository_id1126087
octolytics-dimension-repository_nwogitpython-developers/GitPython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1126087
octolytics-dimension-repository_network_root_nwogitpython-developers/GitPython
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
released69ac0477df0f87da03b8b06cebd187012d7a930
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/gitpython-developers/GitPython/pull/1726/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgitpython-developers%2FGitPython%2Fpull%2F1726%2Ffiles
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%2Fgitpython-developers%2FGitPython%2Fpull%2F1726%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=gitpython-developers%2FGitPython
Reloadhttps://github.com/gitpython-developers/GitPython/pull/1726/files
Reloadhttps://github.com/gitpython-developers/GitPython/pull/1726/files
Reloadhttps://github.com/gitpython-developers/GitPython/pull/1726/files
gitpython-developers https://github.com/gitpython-developers
GitPythonhttps://github.com/gitpython-developers/GitPython
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1726/files
Notifications https://github.com/login?return_to=%2Fgitpython-developers%2FGitPython
Fork 964 https://github.com/login?return_to=%2Fgitpython-developers%2FGitPython
Star 5k https://github.com/login?return_to=%2Fgitpython-developers%2FGitPython
Code https://github.com/gitpython-developers/GitPython
Issues 169 https://github.com/gitpython-developers/GitPython/issues
Pull requests 8 https://github.com/gitpython-developers/GitPython/pulls
Discussions https://github.com/gitpython-developers/GitPython/discussions
Actions https://github.com/gitpython-developers/GitPython/actions
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/gitpython-developers/GitPython/security
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1726/files
Insights https://github.com/gitpython-developers/GitPython/pulse
Code https://github.com/gitpython-developers/GitPython
Issues https://github.com/gitpython-developers/GitPython/issues
Pull requests https://github.com/gitpython-developers/GitPython/pulls
Discussions https://github.com/gitpython-developers/GitPython/discussions
Actions https://github.com/gitpython-developers/GitPython/actions
Security https://github.com/gitpython-developers/GitPython/security
Insights https://github.com/gitpython-developers/GitPython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fgitpython-developers%2FGitPython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fgitpython-developers%2FGitPython%2Fissues%2Fnew%2Fchoose
Byronhttps://github.com/Byron
gitpython-developers:mainhttps://github.com/gitpython-developers/GitPython/tree/main
EliahKagan:superhttps://github.com/EliahKagan/GitPython/tree/super
Conversation 3 https://github.com/gitpython-developers/GitPython/pull/1726
Commits 3 https://github.com/gitpython-developers/GitPython/pull/1726/commits
Checks 0 https://github.com/gitpython-developers/GitPython/pull/1726/checks
Files changed https://github.com/gitpython-developers/GitPython/pull/1726/files
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1726/files
Use zero-argument super() https://github.com/gitpython-developers/GitPython/pull/1726/files#top
Show all changes 3 commits https://github.com/gitpython-developers/GitPython/pull/1726/files
36a3b76 Revise some comments and strings EliahKagan Nov 2, 2023 https://github.com/gitpython-developers/GitPython/pull/1726/commits/36a3b7618479f200e0d4ad0fca38dab217db7dc5
a47e46d Use zero-argument super() where applicable EliahKagan Nov 2, 2023 https://github.com/gitpython-developers/GitPython/pull/1726/commits/a47e46d7512c595dc230b2caeedb4ba615fadfa9
9113177 Don't swallow AttributeError from super().setUp() EliahKagan Nov 2, 2023 https://github.com/gitpython-developers/GitPython/pull/1726/commits/91131770eb0e932b9bc0918fe8374875ecbbd816
Clear filters https://github.com/gitpython-developers/GitPython/pull/1726/files
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1726/files
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1726/files
cmd.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-35a18a749eb4d6efad45e56e78a9554926be5526e2ba2159b44311e718450e88
config.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
db.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2c464f9c2a67eaec11758bfe4d275393bd7478c9315028ee3f158cf8587e5fb2
exc.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-1eee00ab107f6bfb1dedb97cf16cbd369028c3382cd80deb8e0c902fff9536b0
base.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-56d167dc0ca4d51682e56b5e602c096f3f264fd1ebb61cc03bbb6c409c866eeb
base.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
commit.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-88141770c3f374c9bacdef629c161e7bc75e7a1585827f5a35671b89df14291f
base.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
root.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-7df742abf80356d1e22c392ee26cd2d87f89158b9f70bff6fb936eaf4c7e7faf
util.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-367e208359050dc30b27c910ac04d326217fcedb92adc5242a2456aceb1d5b77
tag.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2526bf3fc6f6f4689c5b99b122e3954143bbf5997e3b81a6e7a0a7409fb61ac1
tree.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
util.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-c91a265ba9028bfac459e1cfb58e2b609d346437e45de5c6c458732b6e1716e4
head.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-79302e4aa7752927c17b41ff1d8f51292daf92f3798b95d3c37264bf09b7955e
log.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-06a8205a3aebe461db012c34e9753d67272695696206fa0ab0c0e0a5ec1170bf
reference.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-d487c8c0e0bc8b6d15753074e1ce753b11b61961c3ce23b378261d897e3cf5ac
remote.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-b8020d2185188d5a8e5ab969bb80d2e710c0160c3a80c4346f99ad01e29ae3d6
symbolic.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-72d42177f0e8535634711b5de0390d5bc81dbedab1fbac6547e5b9ab3b03eb9a
remote.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-498082829601479324d7f95e72bd35bafafe74be1b0d8e1b7a42e181b08f3639
util.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-cb13395ac36dd593e722ec548880a091f39732af5c934880144d1a95de67944e
lib.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-62c270efb9dfef7e53af835281290afdaa632d19f3585c9a1229fa5caf12acd9
test_commit.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-3c31ae447cf005d000406f21d8ba228d2313390175fbac5be1e21736aaa7fcb0
test_git.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-84c4b72d5c62026240fad69041a453efc37f7336a89035b69672cce0e8beaca1
test_index.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-21c27b991511d3d0e3a14b4dfb56017689de2fa114c3edf11c577bd1ce744b72
test_remote.py https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-8f71eea0871a97cc5c7757598e3ffaeacb8cd38f6f5f1742e21fd07364d3a698
git/cmd.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-35a18a749eb4d6efad45e56e78a9554926be5526e2ba2159b44311e718450e88
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/cmd.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-35a18a749eb4d6efad45e56e78a9554926be5526e2ba2159b44311e718450e88
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-35a18a749eb4d6efad45e56e78a9554926be5526e2ba2159b44311e718450e88
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-35a18a749eb4d6efad45e56e78a9554926be5526e2ba2159b44311e718450e88
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-35a18a749eb4d6efad45e56e78a9554926be5526e2ba2159b44311e718450e88
git/config.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/config.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-dd51b67c435dfba6f72cc0d08f99456393556623a0f098ac2808d1a7cb78d53a
git/db.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2c464f9c2a67eaec11758bfe4d275393bd7478c9315028ee3f158cf8587e5fb2
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/db.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2c464f9c2a67eaec11758bfe4d275393bd7478c9315028ee3f158cf8587e5fb2
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2c464f9c2a67eaec11758bfe4d275393bd7478c9315028ee3f158cf8587e5fb2
git/exc.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-1eee00ab107f6bfb1dedb97cf16cbd369028c3382cd80deb8e0c902fff9536b0
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/exc.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-1eee00ab107f6bfb1dedb97cf16cbd369028c3382cd80deb8e0c902fff9536b0
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-1eee00ab107f6bfb1dedb97cf16cbd369028c3382cd80deb8e0c902fff9536b0
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-1eee00ab107f6bfb1dedb97cf16cbd369028c3382cd80deb8e0c902fff9536b0
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-1eee00ab107f6bfb1dedb97cf16cbd369028c3382cd80deb8e0c902fff9536b0
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-1eee00ab107f6bfb1dedb97cf16cbd369028c3382cd80deb8e0c902fff9536b0
git/index/base.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-56d167dc0ca4d51682e56b5e602c096f3f264fd1ebb61cc03bbb6c409c866eeb
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/index/base.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-56d167dc0ca4d51682e56b5e602c096f3f264fd1ebb61cc03bbb6c409c866eeb
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-56d167dc0ca4d51682e56b5e602c096f3f264fd1ebb61cc03bbb6c409c866eeb
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-56d167dc0ca4d51682e56b5e602c096f3f264fd1ebb61cc03bbb6c409c866eeb
git/objects/base.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/base.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-4fcf911ecd03484eb6c89186dde3ebaa272e9925d4c0da8a5dd358770aa9d21e
git/objects/commit.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-88141770c3f374c9bacdef629c161e7bc75e7a1585827f5a35671b89df14291f
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/commit.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-88141770c3f374c9bacdef629c161e7bc75e7a1585827f5a35671b89df14291f
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-88141770c3f374c9bacdef629c161e7bc75e7a1585827f5a35671b89df14291f
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-88141770c3f374c9bacdef629c161e7bc75e7a1585827f5a35671b89df14291f
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-88141770c3f374c9bacdef629c161e7bc75e7a1585827f5a35671b89df14291f
git/objects/submodule/base.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/submodule/base.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-44dc32942e129beb7f738ff7d487bfbddb0a7802a91d43c9b8b8952a4d0806bc
git/objects/submodule/root.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-7df742abf80356d1e22c392ee26cd2d87f89158b9f70bff6fb936eaf4c7e7faf
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/submodule/root.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-7df742abf80356d1e22c392ee26cd2d87f89158b9f70bff6fb936eaf4c7e7faf
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-7df742abf80356d1e22c392ee26cd2d87f89158b9f70bff6fb936eaf4c7e7faf
git/objects/submodule/util.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-367e208359050dc30b27c910ac04d326217fcedb92adc5242a2456aceb1d5b77
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/submodule/util.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-367e208359050dc30b27c910ac04d326217fcedb92adc5242a2456aceb1d5b77
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-367e208359050dc30b27c910ac04d326217fcedb92adc5242a2456aceb1d5b77
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-367e208359050dc30b27c910ac04d326217fcedb92adc5242a2456aceb1d5b77
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-367e208359050dc30b27c910ac04d326217fcedb92adc5242a2456aceb1d5b77
git/objects/tag.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2526bf3fc6f6f4689c5b99b122e3954143bbf5997e3b81a6e7a0a7409fb61ac1
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/tag.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2526bf3fc6f6f4689c5b99b122e3954143bbf5997e3b81a6e7a0a7409fb61ac1
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2526bf3fc6f6f4689c5b99b122e3954143bbf5997e3b81a6e7a0a7409fb61ac1
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-2526bf3fc6f6f4689c5b99b122e3954143bbf5997e3b81a6e7a0a7409fb61ac1
git/objects/tree.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/tree.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-5ca1e907ced91070e5b2b7136778f5a609b66f5bdbca65498662e99f86b23b3b
git/objects/util.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-c91a265ba9028bfac459e1cfb58e2b609d346437e45de5c6c458732b6e1716e4
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/objects/util.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-c91a265ba9028bfac459e1cfb58e2b609d346437e45de5c6c458732b6e1716e4
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-c91a265ba9028bfac459e1cfb58e2b609d346437e45de5c6c458732b6e1716e4
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-c91a265ba9028bfac459e1cfb58e2b609d346437e45de5c6c458732b6e1716e4
git/refs/head.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-79302e4aa7752927c17b41ff1d8f51292daf92f3798b95d3c37264bf09b7955e
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/refs/head.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-79302e4aa7752927c17b41ff1d8f51292daf92f3798b95d3c37264bf09b7955e
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-79302e4aa7752927c17b41ff1d8f51292daf92f3798b95d3c37264bf09b7955e
git/refs/log.pyhttps://github.com/gitpython-developers/GitPython/pull/1726/files#diff-06a8205a3aebe461db012c34e9753d67272695696206fa0ab0c0e0a5ec1170bf
View file https://github.com/EliahKagan/GitPython/blob/91131770eb0e932b9bc0918fe8374875ecbbd816/git/refs/log.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/gitpython-developers/GitPython/pull/1726/{{ revealButtonHref }}
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-06a8205a3aebe461db012c34e9753d67272695696206fa0ab0c0e0a5ec1170bf
https://github.com/gitpython-developers/GitPython/pull/1726/files#diff-06a8205a3aebe461db012c34e9753d67272695696206fa0ab0c0e0a5ec1170bf
Please reload this pagehttps://github.com/gitpython-developers/GitPython/pull/1726/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.